MatrixKit

class HPS.MatrixKit : public IDisposable

The MatrixKit class is a user space object, useful for carrying a group attribute settings.

Public Functions

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.

Return

A reference to this object.

bool Compose (HPS.Vector in_translation, HPS.Vector in_scale, HPS.Quaternion in_rotation)

Composes this matrix from translation, scale, and rotation components.

Param in_translation

The translation Vector to use.

Param in_scale

The scale Vector to use.

Param in_rotation

The translation Quaternion to use.

Return

true if the matrix was successfully composed, false otherwise.

HPS.MatrixKit Concatenate (HPS.MatrixKit in_kit)

Replaces this matrix with the matrix product of itself multiplied by another matrix.

Param in_kit

the right side operand of the matrix multiplication.

Return

A reference to this object.

bool Decompose (out HPS.Vector out_translation, out HPS.Vector out_scale, out HPS.Quaternion out_rotation)

Decomposes this matrix into translation, scale, and rotation components.

Param out_translation

The translation Vector extracted from this matrix.

Param out_scale

The out_rotation Quaternion extracted from this matrix.

Return

true if the matrix was successfully decomposed, false otherwise.

void Dispose ()
bool Empty ()

Indicates whether this object has any values set on it.

Deprecated:

This function exists for compatibility and will always return false.

Return

true if no values are set on this object, false otherwise.

bool Equals (HPS.MatrixKit in_kit)

Check if the source MatrixKit is equivalent to this object.

Param in_kit

The source MatrixKit to compare to this object.

Return

true if the objects are equivalent, false otherwise.

override bool Equals (Object obj)
override int GetHashCode ()
HPS.MatrixKit Invert ()

Replaces this matrix with it’s matrix inverse. If this matrix is singular (determinant = 0), it will be unchanged.

Return

A reference to this object.

bool IsIdentity ()

Indicates whether or not this matrix is an identity matrix

Return

Whether this matrix is an identity matrix.

MatrixKit ()

Initializes an identity matrix.

MatrixKit (float[] in_matrix_source)

This constructor allows implicit construction from an array of floats.

Param 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 (HPS.MatrixKit in_other)

The copy constructor creates a new MatrixKit object that contains the same settings as the source object.

MatrixKit (HPS.Quaternion in_quaternion)

This constructor allows implicit construction from a quaternion.

Param in_quaternion

A quaternion used to construct a new matrix.

HPS.MatrixKit Multiply (float in_scalar)

Performs a scalar multiplication of this matrix.

Param in_scalar

A scalar to multiply this object by.

Return

A new MatrixKit representing the product.

HPS.MatrixKit Multiply (HPS.MatrixKit in_right)

Performs a matrix multiplication with this object as the left operand.

Param in_right

A matrix used as the right operand of a matrix multiplication.

Return

A new MatrixKit representing the product.

HPS.MatrixKit MultiplyAndAssign (float in_scalar)

Performs a scalar multiplication of this matrix and then assigns it to this object.

Param in_scalar

A scalar to multiply this object by.

Return

A reference to this object after the multiplication.

HPS.MatrixKit MultiplyAndAssign (HPS.MatrixKit in_right)

Performs a matrix multiplication with this object as the left operand and then assigns it to this object.

Param in_right

A matrix used as the right operand of a matrix multiplication.

Return

A reference to this object after the multiplication.

HPS.MatrixKit Normalize ()

Divides this matrix by its determinant. If this matrix is singular (determinant = 0), it will be unchanged.

Return

A reference to this object.

void Reset ()

Sets this kit to an identity matrix.

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.

Param in_x

The number of degrees to rotate around the x-axis.

Param in_y

The number of degrees to rotate around the y-axis.

Param in_z

The number of degrees to rotate around the z-axis.

Return

A reference to this object.

HPS.MatrixKit RotateOffAxis (HPS.Vector in_vector, float in_theta)

Concatenates a rotation matrix to this matrix with rotation around an arbitrary vector.

Param in_vector

The vector to rotate around.

Param in_theta

the number of degrees to rotate around the specified vector

Return

A reference to this object.

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.

Param in_x

The scale multiplier along the x-axis.

Param in_y

The scale multiplier along the y-axis.

Param in_z

The scale multiplier along the z-axis.

Return

A reference to this object.

void Set (HPS.MatrixKit other)

Copies the data from the source MatrixKit into this object.

HPS.MatrixKit SetElement (ulong in_ordinal_zero_to_fifteen, float in_value)

Sets a single matrix element, indexed as a linear array in row-major order.

Param in_ordinal_zero_to_fifteen

The offset into the matrix. Valid range is [0, 15].

Param in_value

The matrix element.

Return

A reference to this object.

HPS.MatrixKit SetElement (ulong in_row, ulong in_column, float in_value)

Sets a single matrix element.

Param in_row

The row index. Valid range is [0, 3].

Param in_column

The column index. Valid range is [0, 3].

Param in_value

The matrix element.

Return

A reference to this object.

HPS.MatrixKit SetElements (float[] in_values)

Sets some or all elements in the matrix from an array, starting with the first element.

Param in_values

An array of float values in row-major order that should replace the values in the matrix.

Return

A reference to this object.

bool ShowAdjoint (out HPS.MatrixKit out_matrix)

Computes the matrix adjoint of this matrix. The adjoint is similar to the inverse but is always guaranteed to exist, even for singular matrices.

Param out_matrix

The matrix adjoint of this matrix.

Return

true if the setting is valid, false otherwise.

bool ShowDeterminant (out float out_determinant)

Computes the matrix determinant of this matrix.

Param out_determinant

The matrix determinant.

Return

true if the setting is valid, false otherwise.

bool ShowElement (ulong in_ordinal_zero_to_fifteen, out float out_value)

Shows a single matrix element, indexed as a linear array in row-major order.

Param in_ordinal_zero_to_fifteen

The offset into the matrix. Valid range is [0, 15].

Param out_value

The matrix element.

Return

true if the setting is valid, false otherwise.

bool ShowElement (ulong in_row, ulong in_column, out float out_value)

Shows a single matrix element.

Param in_row

The row index. Valid range is [0, 3].

Param in_column

The column index. Valid range is [0, 3].

Param out_value

The matrix element.

Return

true if the setting is valid, false otherwise.

bool ShowElements (out float[] out_matrix)

Shows all elements of this matrix as an array.

Param out_matrix

The contents of the matrix arranged as a linear array in row-major order.

Return

true if the setting is valid, false otherwise.

bool ShowInverse (out HPS.MatrixKit out_matrix)

Computes the matrix inverse of this matrix. Fails if this matrix is singular (determinant = 0).

Param out_matrix

The matrix inverse of this matrix.

Return

true if the setting is valid, false otherwise.

HPS.Plane Transform (HPS.Plane in_source)

Transform a plane through this matrix.

Param in_source

The plane to apply a transformation to.

Return

A new plane representing the transformed plane.

HPS.Plane[] Transform (HPS.Plane[] in_source)

Transform an array of planes through this matrix.

Param in_source

An array of planes to apply a transformation to.

Return

A new plane array representing the transformed planes.

HPS.Point Transform (HPS.Point in_source)

Transform a point through this matrix.

Param in_source

The point to apply a transformation to.

Return

A new point representing the transformed point.

HPS.Point[] Transform (HPS.Point[] in_source)

Transform an array of points through this matrix.

Param in_source

An array of points to apply a transformation to.

Return

A new point array representing the transformed points.

HPS.SimpleCuboid Transform (HPS.SimpleCuboid in_source)

Transform a SimpleCuboid through this matrix.

Param in_source

The cuboid to apply a transformation to.

Return

A new SimpleCuboid representing the transformed cuboid.

HPS.SimpleSphere Transform (HPS.SimpleSphere in_source)

Transform a SimpleSphere through this matrix.

Param in_source

The sphere to apply a transformation to.

Return

A new SimpleSphere representing the transformed sphere.

HPS.Vector Transform (HPS.Vector in_source)

Transform a vector through this matrix.

Param in_source

The vector to apply a transformation to.

Return

A new vector representing the transformed vector.

HPS.Vector[] Transform (HPS.Vector[] in_source)

Transform an array of vectors through this matrix.

Param in_source

An array of vectors to apply a transformation to.

Return

A new vector array representing the transformed vectors.

HPS.MatrixKit Translate (float in_x, float in_y, float in_z)

Concatenates a translation matrix to this matrix that moves geometry.

Param in_x

The number of units to translate along the x-axis.

Param in_y

The number of units to translate along the y-axis.

Param in_z

The number of units to translate along the z-axis.

Return

A reference to this object.

HPS.MatrixKit Translate (HPS.Vector in_translation)

Concatenates a translation matrix to this matrix that moves geometry.

Param in_translation

A vector distance to translate by.

Return

A reference to this object.

HPS.MatrixKit UnsetEverything ()

Sets this kit to an identity matrix.

Deprecated:

This function exists for compatibility and Reset should be preferred.

Return

A reference to this kit.

Public Static Functions

HPS.MatrixKit GetDefault ()

Creates a MatrixKit representing the identity matrix.

Return

An identity MatrixKit.

bool operator!= (HPS.MatrixKit a, HPS.MatrixKit b)
bool operator== (HPS.MatrixKit a, HPS.MatrixKit b)