ModellingMatrixControl
- 
class HPS::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. 
 - Public Static Attributes - 
static const HPS::Type staticType = HPS::Type::ModellingMatrixControl
 
- 
ModellingMatrixControl &Adjoint()
