ModellingMatrixControl
-
class
ModellingMatrixControl
: public HPS::Control The ModellingMatrixControl class is a smart pointer that is tied to a database object. This control gives you access to a segment’s modelling matrix. You can set an entire matrix or individual elements. Additionally, this class provides a small set of utility methods for all the basic transformations, as well as getting the matrix adjoint and determinant. Elements of modelling matrices are in row-major order.
Public Functions
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl
(ModellingMatrixControl &&in_that) The move constructor creates a ModellingMatrixControl by transferring the underlying impl of the rvalue reference to this ModellingMatrixControl thereby avoiding a copy and allocation.
Parameters: in_that – An rvalue reference to a ModellingMatrixControl to take the impl from.
-
ModellingMatrixControl
(ModellingMatrixControl const &in_that) Initializes a control tied to the same object as in_that.
-
explicit
ModellingMatrixControl
(ReferenceKey const &in_ref) Initializes a control tied to the geometry reference in_ref.
-
explicit
ModellingMatrixControl
(SegmentKey const &in_seg) Initializes a control tied to the segment in_seg.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
operator=
(ModellingMatrixControl &&in_that) The move assignment operator transfers the underlying impl of the rvalue reference to this ModellingMatrixControl thereby avoiding a copy.
Parameters: in_that – An rvalue reference to a ModellingMatrixControl to take the impl from. Returns: A reference to this ModellingMatrixControl.
-
ModellingMatrixControl &
operator=
(ModellingMatrixControl const &in_that) Share the underlying smart-pointer of the ModellingMatrixControl source.
Parameters: in_that – The ModellingMatrixControl source of the assignment. Returns: A reference to this ModellingMatrixControl.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
Set
(MatrixKit const &in_matrix) Copies all settings from the source MatrixKit into this object.
Parameters: in_matrix – The source MatrixKit to copy.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
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.
-
ModellingMatrixControl &
Translate
(Vector const &in_translation) Concatenates a translation matrix to this matrix that moves geometry.
Parameters: in_translation – A vector distance to translate by. Returns: A reference to this object.
-
ModellingMatrixControl &
UnsetEverything
() Removes all settings from this object.
Returns: A reference to this object.
-
~ModellingMatrixControl
() Releases a reference to the database object this control is tied to.
-
ModellingMatrixControl &