REFERENCE MANUAL
#include <hps.h>
Public Member Functions | |
MatrixKit & | Adjoint () |
MatrixKit & | Concatenate (MatrixKit const &in_kit) |
bool | Empty () const |
bool | Equals (MatrixKit const &in_kit) const |
MatrixKit & | Invert () |
MatrixKit () | |
MatrixKit (MatrixKit const &in_kit) | |
MatrixKit (MatrixKit &&in_that) | |
MatrixKit (FloatArray const &in_matrix_source) | |
MatrixKit (float const in_matrix_source[]) | |
MatrixKit (Quaternion const &in_quaternion) | |
MatrixKit | Multiply (MatrixKit const &in_right) const |
MatrixKit | Multiply (float in_scalar) const |
MatrixKit const & | MultiplyAndAssign (MatrixKit const &in_right) |
MatrixKit const & | MultiplyAndAssign (float in_scalar) |
MatrixKit & | Normalize () |
Type | ObjectType () const |
bool | operator!= (MatrixKit const &in_kit) const |
MatrixKit | operator* (MatrixKit const &in_right) const |
MatrixKit | operator* (float in_scalar) const |
MatrixKit const & | operator*= (MatrixKit const &in_right) |
MatrixKit const & | operator*= (float in_scalar) |
MatrixKit & | operator= (MatrixKit &&in_that) |
MatrixKit & | operator= (MatrixKit const &in_kit) |
bool | operator== (MatrixKit const &in_kit) const |
MatrixKit & | Rotate (float in_x, float in_y, float in_z) |
MatrixKit & | RotateOffAxis (Vector const &in_vector, float in_theta) |
MatrixKit & | Scale (float in_x, float in_y, float in_z) |
void | Set (MatrixKit const &in_kit) |
MatrixKit & | SetElement (size_t in_row, size_t in_column, float in_value) |
MatrixKit & | SetElement (size_t in_ordinal_zero_to_fifteen, float in_value) |
MatrixKit & | SetElements (FloatArray const &in_matrix) |
MatrixKit & | SetElements (size_t in_value_count, float const in_values[]) |
void | Show (MatrixKit &out_kit) const |
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 |
Point | Transform (Point const &in_source) const |
PointArray | Transform (PointArray const &in_source) const |
PointArray | Transform (size_t in_count, Point const in_source[]) const |
Vector | Transform (Vector const &in_source) const |
VectorArray | Transform (VectorArray const &in_source) const |
VectorArray | Transform (size_t in_count, Vector const in_source[]) const |
Plane | Transform (Plane const &in_source) const |
PlaneArray | Transform (PlaneArray const &in_source) const |
PlaneArray | Transform (size_t in_count, Plane const in_source[]) const |
MatrixKit & | Translate (float in_x, float in_y, float in_z) |
MatrixKit & | UnsetEverything () |
virtual | ~MatrixKit () |
![]() | |
intptr_t | GetClassID () const |
intptr_t | GetInstanceID () const |
bool | HasType (Type in_mask) const |
Object (Object &&in_that) | |
Object & | operator= (Object const &other_object) |
Object & | operator= (Object &&in_that) |
virtual void | Reset () |
Type | Type () const |
Static Public Member Functions | |
static MatrixKit | GetDefault () |
![]() | |
template<typename T > | |
static intptr_t | ClassID () |
The MatrixKit class is a user space object, useful for carrying a group attribute settings.
MatrixKit::MatrixKit | ( | ) |
Initializes an identity matrix.
MatrixKit::MatrixKit | ( | MatrixKit const & | in_kit | ) |
The copy constructor creates a new MatrixKit object that contains the same settings as the source object.
in_kit | The source object to copy. |
MatrixKit::MatrixKit | ( | MatrixKit && | in_that | ) |
MatrixKit::MatrixKit | ( | FloatArray const & | in_matrix_source | ) |
This constructor allows implicit construction from an array of floats.
in_matrix_source | An array of floats that will be used to construct a new matrix. If this array is not at least 16 elements in length, only the valid members will be used, leaving the remainder initialized as the identity matrix. |
MatrixKit::MatrixKit | ( | float const | in_matrix_source[] | ) |
This constructor allows implicit construction from an array of floats.
in_matrix_source | An array of floats that will be used to construct a new matrix. This array is assumed to be at least 16 elements in length. If it is not, the behavior is undefined. |
MatrixKit::MatrixKit | ( | Quaternion const & | in_quaternion | ) |
This constructor allows implicit construction from a quaternion.
in_quaternion | A quaternion used to construct a new matrix. |
|
virtual |
Destroy this kit.
MatrixKit& MatrixKit::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.
Replaces this matrix with the matrix product of itself multiplied by another matrix.
in_kit | the right side operand of the matrix multiplication. |
|
virtual |
Indicates whether this object has any values set on it.
Reimplemented from Object.
bool MatrixKit::Equals | ( | MatrixKit const & | in_kit | ) | const |
|
static |
MatrixKit& MatrixKit::Invert | ( | ) |
Replaces this matrix with it's matrix inverse. If this matrix is singular (determinant = 0), it will be unchanged.
Performs a matrix multiplication with this object as the left operand.
in_right | A matrix used as the right operand of a matrix multiplication. |
MatrixKit MatrixKit::Multiply | ( | float | in_scalar | ) | const |
Performs a scalar multiplication of this matrix.
in_scalar | A scalar to multiply this object by. |
Performs a matrix multiplication with this object as the left operand and then assigns it to this object.
in_right | A matrix used as the right operand of a matrix multiplication. |
MatrixKit const& MatrixKit::MultiplyAndAssign | ( | float | in_scalar | ) |
Performs a scalar multiplication of this matrix and then assigns it to this object.
in_scalar | A scalar to multiply this object by. |
MatrixKit& MatrixKit::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 Object.
bool MatrixKit::operator!= | ( | MatrixKit const & | in_kit | ) | const |
Performs a matrix multiplication with this object as the left operand.
in_right | A matrix used as the right operand of a matrix multiplication. |
MatrixKit MatrixKit::operator* | ( | float | in_scalar | ) | const |
Performs a scalar multiplication of this matrix.
in_scalar | A scalar to multiply this object by. |
Performs a matrix multiplication with this object as the left operand and then assigns it to this object.
in_right | A matrix used as the right operand of a matrix multiplication. |
MatrixKit const& MatrixKit::operator*= | ( | float | in_scalar | ) |
Performs a scalar multiplication of this matrix and then assigns it to this object.
in_scalar | A scalar to multiply this object by. |
bool MatrixKit::operator== | ( | MatrixKit const & | in_kit | ) | const |
MatrixKit& MatrixKit::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. |
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 |
MatrixKit& MatrixKit::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. |
void MatrixKit::Set | ( | MatrixKit const & | in_kit | ) |
MatrixKit& MatrixKit::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. |
MatrixKit& MatrixKit::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. |
MatrixKit& MatrixKit::SetElements | ( | FloatArray const & | in_matrix | ) |
Sets some or all elements in the matrix from an array, starting with the first element.
in_matrix | An array of float values in row-major order that should replace the values in the matrix. |
MatrixKit& MatrixKit::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. |
void MatrixKit::Show | ( | MatrixKit & | out_kit | ) | const |
bool MatrixKit::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 MatrixKit::ShowDeterminant | ( | float & | out_determinant | ) | const |
Computes the matrix determinant of this matrix.
out_determinant | The matrix determinant. |
bool MatrixKit::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 MatrixKit::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 MatrixKit::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 MatrixKit::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. |
Transform a point through this matrix.
in_source | The point to apply a transformation to. |
PointArray MatrixKit::Transform | ( | PointArray const & | in_source | ) | const |
Transform an array of points through this matrix.
in_source | An array of points to apply a transformation to. |
PointArray MatrixKit::Transform | ( | size_t | in_count, |
Point const | in_source[] | ||
) | const |
Transform an array of points through this matrix.
in_count | The number of elements in the source array. |
in_source | An array of points to apply a transformation to. |
Transform a vector through this matrix.
in_source | The vector to apply a transformation to. |
VectorArray MatrixKit::Transform | ( | VectorArray const & | in_source | ) | const |
Transform an array of vectors through this matrix.
in_source | An array of vectors to apply a transformation to. |
VectorArray MatrixKit::Transform | ( | size_t | in_count, |
Vector const | in_source[] | ||
) | const |
Transform an array of vectors through this matrix.
in_count | The number of elements in the source array. |
in_source | An array of vectors to apply a transformation to. |
Transform a plane through this matrix.
in_source | The plane to apply a transformation to. |
PlaneArray MatrixKit::Transform | ( | PlaneArray const & | in_source | ) | const |
Transform an array of planes through this matrix.
in_source | An array of planes to apply a transformation to. |
PlaneArray MatrixKit::Transform | ( | size_t | in_count, |
Plane const | in_source[] | ||
) | const |
Transform an array of planes through this matrix.
in_count | The number of elements in the source array. |
in_source | An array of planes to apply a transformation to. |
MatrixKit& MatrixKit::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. |
MatrixKit& MatrixKit::UnsetEverything | ( | ) |
Sets this kit to an identity matrix.