TextureMatrixControl
-
class TextureMatrixControl : public HPS::Control
The TextureMatrixControl class is a smart pointer that is tied to a database object. It controls the various attributes related to texture matrices.
Public Functions
-
TextureMatrixControl &Adjoint()
Replaces this matrix with it’s matrix adjoint. The adjoint is similar to the inverse but is always guaranteed to exist, even for singular matrices.
- Returns:
A reference to this object.
-
TextureMatrixControl &Concatenate(MatrixKit const &in_kit)
Replaces this matrix with the matrix product of itself multiplied by another matrix.
- Parameters:
in_kit – the right side operand of the matrix multiplication.
- Returns:
A reference to this object.
-
TextureMatrixControl &Invert()
Replaces this matrix with it’s matrix inverse. If this matrix is singular (determinant = 0), it will be unchanged.
- Returns:
A reference to this object.
-
TextureMatrixControl &Normalize()
Divides this matrix by its determinant. If this matrix is singular (determinant = 0), it will be unchanged.
- Returns:
A reference to this object.
-
inline virtual HPS::Type ObjectType() const
This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).
- Returns:
The declared type of the object in question, which may differ from the true, underlying type.
-
TextureMatrixControl &operator=(TextureMatrixControl &&in_that)
The move assignment operator transfers the underlying impl of the rvalue reference to this TextureMatrixControl thereby avoiding a copy.
- Parameters:
in_that – An rvalue reference to a TextureMatrixControl to take the impl from.
- Returns:
A reference to this TextureMatrixControl.
-
TextureMatrixControl &operator=(TextureMatrixControl const &in_that)
Share the underlying smart-pointer of the TextureMatrixControl source.
- Parameters:
in_that – The TextureMatrixControl source of the assignment.
- Returns:
A reference to this TextureMatrixControl.
-
TextureMatrixControl &Rotate(float in_x, float in_y, float in_z)
Concatenates a rotation matrix to this matrix with rotation around the primary axes.
- Parameters:
in_x – The number of degrees to rotate around the x-axis.
in_y – The number of degrees to rotate around the y-axis.
in_z – The number of degrees to rotate around the z-axis.
- Returns:
A reference to this object.
-
TextureMatrixControl &RotateOffAxis(Vector const &in_vector, float in_theta)
Concatenates a rotation matrix to this matrix with rotation around an arbitrary vector.
- Parameters:
in_vector – The vector to rotate around.
in_theta – the number of degrees to rotate around the specified vector
- Returns:
A reference to this object.
-
TextureMatrixControl &Scale(float in_x, float in_y, float in_z)
Concatenates a scale matrix to this matrix that represents a uniform scaling of the scene.
- Parameters:
in_x – The scale multiplier along the x-axis.
in_y – The scale multiplier along the y-axis.
in_z – The scale multiplier along the z-axis.
- Returns:
A reference to this object.
-
TextureMatrixControl &Set(MatrixKit const &in_matrix)
Copies all settings from the source MatrixKit into this object.
- Parameters:
in_matrix – The source MatrixKit to copy.
-
TextureMatrixControl &SetElement(size_t in_ordinal_zero_to_fifteen, float in_value)
Sets a single matrix element, indexed as a linear array in row-major order.
- Parameters:
in_ordinal_zero_to_fifteen – The offset into the matrix. Valid range is [0, 15].
in_value – The matrix element.
- Returns:
A reference to this object.
-
TextureMatrixControl &SetElement(size_t in_row, size_t in_column, float in_value)
Sets a single matrix element.
- Parameters:
in_row – The row index. Valid range is [0, 3].
in_column – The column index. Valid range is [0, 3].
in_value – The matrix element.
- Returns:
A reference to this object.
-
TextureMatrixControl &SetElements(FloatArray const &in_values)
Sets some or all elements in the matrix from an array, starting with the first element.
- Parameters:
in_values – An array of float values in row-major order that should replace the values in the matrix.
- Returns:
A reference to this object.
-
TextureMatrixControl &SetElements(size_t in_value_count, float const in_values[])
Sets some or all elements in the matrix from an array, starting with the first element.
- Parameters:
in_value_count – the number of elements in the input array. Valid range is [0, 16].
in_values – An array of float values in row-major order that should replace the values in the matrix.
- Returns:
A reference to this object.
-
bool Show(MatrixKit &out_matrix) const
Copies all settings from this control into the given MatrixKit.
- Parameters:
out_matrix – The MatrixKit to populate with the contents of this object.
-
bool ShowAdjoint(MatrixKit &out_matrix) const
Computes the matrix adjoint of this matrix. The adjoint is similar to the inverse but is always guaranteed to exist, even for singular matrices.
- Parameters:
out_matrix – The matrix adjoint of this matrix.
- Returns:
true if the setting is valid, false otherwise.
-
bool ShowDeterminant(float &out_determinant) const
Computes the matrix determinant of this matrix.
- Parameters:
out_determinant – The matrix determinant.
- Returns:
true if the setting is valid, false otherwise.
-
bool ShowElement(size_t in_ordinal_zero_to_fifteen, float &out_value) const
Shows a single matrix element, indexed as a linear array in row-major order.
- Parameters:
in_ordinal_zero_to_fifteen – The offset into the matrix. Valid range is [0, 15].
out_value – The matrix element.
- Returns:
true if the setting is valid, false otherwise.
-
bool ShowElement(size_t in_row, size_t in_column, float &out_value) const
Shows a single matrix element.
- Parameters:
in_row – The row index. Valid range is [0, 3].
in_column – The column index. Valid range is [0, 3].
out_value – The matrix element.
- Returns:
true if the setting is valid, false otherwise.
-
bool ShowElements(FloatArray &out_matrix) const
Shows all elements of this matrix as an array.
- Parameters:
out_matrix – The contents of the matrix arranged as a linear array in row-major order.
- Returns:
true if the setting is valid, false otherwise.
-
bool ShowInverse(MatrixKit &out_matrix) const
Computes the matrix inverse of this matrix. Fails if this matrix is singular (determinant = 0).
- Parameters:
out_matrix – The matrix inverse of this matrix.
- Returns:
true if the setting is valid, false otherwise.
-
explicit TextureMatrixControl(SegmentKey &in_seg)
Initializes a control tied to the segment in_seg.
-
TextureMatrixControl(TextureMatrixControl &&in_that)
The move constructor creates a TextureMatrixControl by transferring the underlying impl of the rvalue reference to this TextureMatrixControl thereby avoiding a copy and allocation.
- Parameters:
in_that – An rvalue reference to a TextureMatrixControl to take the impl from.
-
TextureMatrixControl(TextureMatrixControl const &in_that)
Initializes a control tied to the same object as in_that.
-
TextureMatrixControl &Translate(float in_x, float in_y, float in_z)
Concatenates a translation matrix to this matrix that moves geometry.
- Parameters:
in_x – The number of units to translate along the x-axis.
in_y – The number of units to translate along the y-axis.
in_z – The number of units to translate along the z-axis.
- Returns:
A reference to this object.
-
TextureMatrixControl &UnsetEverything()
Removes all settings from this object.
- Returns:
A reference to this object.
-
~TextureMatrixControl()
Releases a reference to the database object this control is tied to.
-
TextureMatrixControl &Adjoint()