#include <hps.h>
Public Member Functions | |
ModellingMatrixControl & | Adjoint () |
ModellingMatrixControl & | Concatenate (MatrixKit const &in_kit) |
ModellingMatrixControl & | Invert () |
ModellingMatrixControl (SegmentKey const &in_seg) | |
ModellingMatrixControl (ReferenceKey const &in_ref) | |
ModellingMatrixControl (ModellingMatrixControl const &in_that) | |
ModellingMatrixControl (ModellingMatrixControl &&in_that) | |
ModellingMatrixControl & | Normalize () |
HPS::Type | ObjectType () const |
ModellingMatrixControl & | operator= (ModellingMatrixControl &&in_that) |
ModellingMatrixControl & | operator= (ModellingMatrixControl const &in_that) |
ModellingMatrixControl & | Rotate (float in_x, float in_y, float in_z) |
ModellingMatrixControl & | RotateOffAxis (Vector const &in_vector, float in_theta) |
ModellingMatrixControl & | Scale (float in_x, float in_y, float in_z) |
ModellingMatrixControl & | SetElement (size_t in_row, size_t in_column, float in_value) |
ModellingMatrixControl & | SetElement (size_t in_ordinal_zero_to_fifteen, float in_value) |
ModellingMatrixControl & | SetElements (FloatArray const &in_values) |
ModellingMatrixControl & | SetElements (size_t in_value_count, float const in_values[]) |
bool | ShowAdjoint (MatrixKit &out_matrix) const |
bool | ShowDeterminant (float &out_determinant) const |
bool | ShowElement (size_t in_row, size_t in_column, float &out_value) const |
bool | ShowElement (size_t in_ordinal_zero_to_fifteen, float &out_value) const |
bool | ShowElements (FloatArray &out_matrix) const |
bool | ShowInverse (MatrixKit &out_matrix) const |
ModellingMatrixControl & | Translate (float in_x, float in_y, float in_z) |
ModellingMatrixControl & | UnsetEverything () |
~ModellingMatrixControl () | |
![]() | |
Control (Control const &in_that)=default | |
![]() | |
virtual bool | Empty () const |
intptr_t | GetClassID () const |
intptr_t | GetInstanceID () const |
bool | HasType (HPS::Type in_mask) const |
Object (Object const &that) | |
Object (Object &&in_that) | |
Object & | operator= (Object const &other_object) |
Object & | operator= (Object &&in_that) |
virtual void | Reset () |
HPS::Type | Type () const |
Additional Inherited Members | |
![]() | |
template<typename T > | |
static intptr_t | ClassID () |
![]() | |
Control (Control &&in_that) | |
Control & | operator= (Control &&in_that) |
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.
|
explicit |
Initializes a control tied to the segment in_seg.
|
explicit |
Initializes a control tied to the geometry reference in_ref.
HPS::ModellingMatrixControl::ModellingMatrixControl | ( | ModellingMatrixControl const & | in_that | ) |
Initializes a control tied to the same object as in_that.
HPS::ModellingMatrixControl::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.
in_that | An rvalue reference to a ModellingMatrixControl to take the impl from. |
HPS::ModellingMatrixControl::~ModellingMatrixControl | ( | ) |
Releases a reference to the database object this control is tied to.
ModellingMatrixControl& HPS::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.
ModellingMatrixControl& HPS::ModellingMatrixControl::Concatenate | ( | MatrixKit const & | in_kit | ) |
Replaces this matrix with the matrix product of itself multiplied by another matrix.
in_kit | the right side operand of the matrix multiplication. |
ModellingMatrixControl& HPS::ModellingMatrixControl::Invert | ( | ) |
Replaces this matrix with it's matrix inverse. If this matrix is singular (determinant = 0), it will be unchanged.
ModellingMatrixControl& HPS::ModellingMatrixControl::Normalize | ( | ) |
Divides this matrix by its determinant. If this matrix is singular (determinant = 0), it will be unchanged.
|
inlinevirtual |
This function returns the type the object, as declared. This does not necessarily give the true type of the underlying object.
Reimplemented from HPS::Control.
ModellingMatrixControl& HPS::ModellingMatrixControl::operator= | ( | ModellingMatrixControl && | in_that | ) |
The move assignment operator transfers the underlying impl of the rvalue reference to this ModellingMatrixControl thereby avoiding a copy.
in_that | An rvalue reference to a ModellingMatrixControl to take the impl from. |
ModellingMatrixControl& HPS::ModellingMatrixControl::operator= | ( | ModellingMatrixControl const & | in_that | ) |
Share the underlying smart-pointer of the ModellingMatrixControl source.
in_that | The ModellingMatrixControl source of the assignment. |
ModellingMatrixControl& HPS::ModellingMatrixControl::Rotate | ( | float | in_x, |
float | in_y, | ||
float | in_z | ||
) |
Concatenates a rotation matrix to this matrix with rotation around the primary axes.
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. |
ModellingMatrixControl& HPS::ModellingMatrixControl::RotateOffAxis | ( | Vector const & | in_vector, |
float | in_theta | ||
) |
Concatenates a rotation matrix to this matrix with rotation around an arbitrary vector.
in_vector | The vector to rotate around. |
in_theta | the number of degrees to rotate around the specified vector |
ModellingMatrixControl& HPS::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.
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. |
ModellingMatrixControl& HPS::ModellingMatrixControl::SetElement | ( | size_t | in_row, |
size_t | in_column, | ||
float | in_value | ||
) |
Sets a single matrix element.
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. |
ModellingMatrixControl& HPS::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.
in_ordinal_zero_to_fifteen | The offset into the matrix. Valid range is [0, 15]. |
in_value | The matrix element. |
ModellingMatrixControl& HPS::ModellingMatrixControl::SetElements | ( | FloatArray const & | in_values | ) |
Sets some or all elements in the matrix from an array, starting with the first element.
in_values | An array of float values in row-major order that should replace the values in the matrix. |
ModellingMatrixControl& HPS::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.
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. |
bool HPS::ModellingMatrixControl::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.
out_matrix | The matrix adjoint of this matrix. |
bool HPS::ModellingMatrixControl::ShowDeterminant | ( | float & | out_determinant | ) | const |
Computes the matrix determinant of this matrix.
out_determinant | The matrix determinant. |
bool HPS::ModellingMatrixControl::ShowElement | ( | size_t | in_row, |
size_t | in_column, | ||
float & | out_value | ||
) | const |
Shows a single matrix element.
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. |
bool HPS::ModellingMatrixControl::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.
in_ordinal_zero_to_fifteen | The offset into the matrix. Valid range is [0, 15]. |
out_value | The matrix element. |
bool HPS::ModellingMatrixControl::ShowElements | ( | FloatArray & | out_matrix | ) | const |
Shows all elements of this matrix as an array.
out_matrix | The contents of the matrix arranged as a linear array in row-major order. |
bool HPS::ModellingMatrixControl::ShowInverse | ( | MatrixKit & | out_matrix | ) | const |
Computes the matrix inverse of this matrix. Fails if this matrix is singular (determinant = 0).
out_matrix | The matrix inverse of this matrix. |
ModellingMatrixControl& HPS::ModellingMatrixControl::Translate | ( | float | in_x, |
float | in_y, | ||
float | in_z | ||
) |
Concatenates a translation matrix to this matrix that moves geometry.
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. |
ModellingMatrixControl& HPS::ModellingMatrixControl::UnsetEverything | ( | ) |
Removes all settings from this object.