#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 () |
bool | IsIdentity () const |
MatrixKit () | |
MatrixKit (MatrixKit const &in_other) | |
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 & | MultiplyAndAssign (MatrixKit const &in_right) |
MatrixKit & | MultiplyAndAssign (float in_scalar) |
MatrixKit & | Normalize () |
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 const &in_kit) |
bool | operator== (MatrixKit const &in_kit) const |
void | Reset () |
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 &other) |
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_values) |
MatrixKit & | 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 | ShowElements (float 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 |
SimpleCuboid | Transform (SimpleCuboid const &in_source) const |
SimpleSphere | Transform (SimpleSphere const &in_source) const |
MatrixKit & | Translate (float in_x, float in_y, float in_z) |
MatrixKit & | Translate (Vector const &in_translation) |
MatrixKit & | UnsetEverything () |
virtual | ~MatrixKit () |
Static Public Member Functions | |
static MatrixKit | GetDefault () |
Public Attributes | |
float | data [16] |
Detailed Description
The MatrixKit class is a user space object, useful for carrying a group attribute settings.
Constructor & Destructor Documentation
◆ MatrixKit() [1/5]
HPS::MatrixKit::MatrixKit | ( | ) |
Initializes an identity matrix.
◆ MatrixKit() [2/5]
HPS::MatrixKit::MatrixKit | ( | MatrixKit const & | in_other | ) |
The copy constructor creates a new MatrixKit object that contains the same settings as the source object.
- Parameters
-
in_kit The source object to copy.
◆ MatrixKit() [3/5]
HPS::MatrixKit::MatrixKit | ( | FloatArray const & | in_matrix_source | ) |
This constructor allows implicit construction from an array of floats.
- Parameters
-
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() [4/5]
HPS::MatrixKit::MatrixKit | ( | float const | in_matrix_source[] | ) |
This constructor allows implicit construction from an array of floats.
- Parameters
-
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() [5/5]
HPS::MatrixKit::MatrixKit | ( | Quaternion const & | in_quaternion | ) |
This constructor allows implicit construction from a quaternion.
- Parameters
-
in_quaternion A quaternion used to construct a new matrix.
◆ ~MatrixKit()
|
virtual |
Destroy this kit.
Member Function Documentation
◆ Adjoint()
MatrixKit& HPS::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.
- Returns
- A reference to this object.
◆ Concatenate()
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.
◆ Empty()
bool HPS::MatrixKit::Empty | ( | ) | const |
Indicates whether this object has any values set on it.
- Returns
- true if no values are set on this object, false otherwise.
- Deprecated:
- This function exists for compatibility and will always return false.
◆ Equals()
bool HPS::MatrixKit::Equals | ( | MatrixKit const & | in_kit | ) | const |
◆ GetDefault()
|
static |
◆ Invert()
MatrixKit& HPS::MatrixKit::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.
◆ IsIdentity()
bool HPS::MatrixKit::IsIdentity | ( | ) | const |
Indicates whether or not this matrix is an identity matrix
- Returns
- Whether this matrix is an identity matrix.
◆ Multiply() [1/2]
Performs a matrix multiplication with this object as the left operand.
- Parameters
-
in_right A matrix used as the right operand of a matrix multiplication.
- Returns
- A new MatrixKit representing the product.
◆ Multiply() [2/2]
MatrixKit HPS::MatrixKit::Multiply | ( | float | in_scalar | ) | const |
Performs a scalar multiplication of this matrix.
- Parameters
-
in_scalar A scalar to multiply this object by.
- Returns
- A new MatrixKit representing the product.
◆ MultiplyAndAssign() [1/2]
Performs a matrix multiplication with this object as the left operand and then assigns it to this object.
- Parameters
-
in_right A matrix used as the right operand of a matrix multiplication.
- Returns
- A reference to this object after the multiplication.
◆ MultiplyAndAssign() [2/2]
MatrixKit& HPS::MatrixKit::MultiplyAndAssign | ( | float | in_scalar | ) |
Performs a scalar multiplication of this matrix and then assigns it to this object.
- Parameters
-
in_scalar A scalar to multiply this object by.
- Returns
- A reference to this object after the multiplication.
◆ Normalize()
MatrixKit& HPS::MatrixKit::Normalize | ( | ) |
Divides this matrix by its determinant. If this matrix is singular (determinant = 0), it will be unchanged.
- Returns
- A reference to this object.
◆ operator!=()
bool HPS::MatrixKit::operator!= | ( | MatrixKit const & | in_kit | ) | const |
◆ operator*() [1/2]
Performs a matrix multiplication with this object as the left operand.
- Parameters
-
in_right A matrix used as the right operand of a matrix multiplication.
- Returns
- A new MatrixKit representing the product.
◆ operator*() [2/2]
MatrixKit HPS::MatrixKit::operator* | ( | float | in_scalar | ) | const |
Performs a scalar multiplication of this matrix.
- Parameters
-
in_scalar A scalar to multiply this object by.
- Returns
- A new MatrixKit representing the product.
◆ operator*=() [1/2]
Performs a matrix multiplication with this object as the left operand and then assigns it to this object.
- Parameters
-
in_right A matrix used as the right operand of a matrix multiplication.
- Returns
- A reference to this object after the multiplication.
◆ operator*=() [2/2]
MatrixKit const& HPS::MatrixKit::operator*= | ( | float | in_scalar | ) |
Performs a scalar multiplication of this matrix and then assigns it to this object.
- Parameters
-
in_scalar A scalar to multiply this object by.
- Returns
- A reference to this object after the multiplication.
◆ operator=()
◆ operator==()
bool HPS::MatrixKit::operator== | ( | MatrixKit const & | in_kit | ) | const |
◆ Reset()
void HPS::MatrixKit::Reset | ( | ) |
Sets this kit to an identity matrix.
◆ Rotate()
MatrixKit& HPS::MatrixKit::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.
◆ RotateOffAxis()
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.
◆ Scale()
MatrixKit& HPS::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.
- 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.
◆ Set()
void HPS::MatrixKit::Set | ( | MatrixKit const & | other | ) |
◆ SetElement() [1/2]
MatrixKit& HPS::MatrixKit::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.
◆ SetElement() [2/2]
MatrixKit& HPS::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.
- 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.
◆ SetElements() [1/2]
MatrixKit& HPS::MatrixKit::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.
◆ SetElements() [2/2]
MatrixKit& HPS::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.
- 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.
◆ ShowAdjoint()
bool HPS::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.
- Parameters
-
out_matrix The matrix adjoint of this matrix.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowDeterminant()
bool HPS::MatrixKit::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.
◆ ShowElement() [1/2]
bool HPS::MatrixKit::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.
◆ ShowElement() [2/2]
bool HPS::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.
- 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.
◆ ShowElements() [1/2]
bool HPS::MatrixKit::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.
◆ ShowElements() [2/2]
bool HPS::MatrixKit::ShowElements | ( | float | 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.
◆ ShowInverse()
bool HPS::MatrixKit::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.
◆ Transform() [1/11]
Transform a point through this matrix.
- Parameters
-
in_source The point to apply a transformation to.
- Returns
- A new point representing the transformed point.
◆ Transform() [2/11]
PointArray HPS::MatrixKit::Transform | ( | PointArray const & | in_source | ) | const |
Transform an array of points through this matrix.
- Parameters
-
in_source An array of points to apply a transformation to.
- Returns
- A new point array representing the transformed points.
◆ Transform() [3/11]
PointArray HPS::MatrixKit::Transform | ( | size_t | in_count, |
Point const | in_source[] | ||
) | const |
Transform an array of points through this matrix.
- Parameters
-
in_count The number of elements in the source array. in_source An array of points to apply a transformation to.
- Returns
- A new point array representing the transformed points.
◆ Transform() [4/11]
Transform a vector through this matrix.
- Parameters
-
in_source The vector to apply a transformation to.
- Returns
- A new vector representing the transformed vector.
◆ Transform() [5/11]
VectorArray HPS::MatrixKit::Transform | ( | VectorArray const & | in_source | ) | const |
Transform an array of vectors through this matrix.
- Parameters
-
in_source An array of vectors to apply a transformation to.
- Returns
- A new vector array representing the transformed vectors.
◆ Transform() [6/11]
VectorArray HPS::MatrixKit::Transform | ( | size_t | in_count, |
Vector const | in_source[] | ||
) | const |
Transform an array of vectors through this matrix.
- Parameters
-
in_count The number of elements in the source array. in_source An array of vectors to apply a transformation to.
- Returns
- A new vector array representing the transformed vectors.
◆ Transform() [7/11]
Transform a plane through this matrix.
- Parameters
-
in_source The plane to apply a transformation to.
- Returns
- A new plane representing the transformed plane.
◆ Transform() [8/11]
PlaneArray HPS::MatrixKit::Transform | ( | PlaneArray const & | in_source | ) | const |
Transform an array of planes through this matrix.
- Parameters
-
in_source An array of planes to apply a transformation to.
- Returns
- A new plane array representing the transformed planes.
◆ Transform() [9/11]
PlaneArray HPS::MatrixKit::Transform | ( | size_t | in_count, |
Plane const | in_source[] | ||
) | const |
Transform an array of planes through this matrix.
- Parameters
-
in_count The number of elements in the source array. in_source An array of planes to apply a transformation to.
- Returns
- A new plane array representing the transformed planes.
◆ Transform() [10/11]
SimpleCuboid HPS::MatrixKit::Transform | ( | SimpleCuboid const & | in_source | ) | const |
Transform a SimpleCuboid through this matrix.
- Parameters
-
in_source The cuboid to apply a transformation to.
- Returns
- A new SimpleCuboid representing the transformed cuboid.
◆ Transform() [11/11]
SimpleSphere HPS::MatrixKit::Transform | ( | SimpleSphere const & | in_source | ) | const |
Transform a SimpleSphere through this matrix.
- Parameters
-
in_source The sphere to apply a transformation to.
- Returns
- A new SimpleSphere representing the transformed sphere.
◆ Translate() [1/2]
MatrixKit& HPS::MatrixKit::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.
◆ Translate() [2/2]
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.
◆ UnsetEverything()
MatrixKit& HPS::MatrixKit::UnsetEverything | ( | ) |
Sets this kit to an identity matrix.
- Returns
- A reference to this kit.
- Deprecated:
- This function exists for compatibility and Reset should be preferred.
The documentation for this class was generated from the following file:
- include/hps.h