More...

Inheritance diagram for HPS.MatrixKit:

Public Member 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. More...
 
HPS.MatrixKit Concatenate (HPS.MatrixKit in_kit)
 Replaces this matrix with the matrix product of itself multiplied by another matrix. More...
 
virtual void Dispose ()
 
bool Empty ()
 Indicates whether this object has any values set on it. More...
 
override bool Equals (System.Object obj)
 
bool Equals (HPS.MatrixKit in_kit)
 Check if the source MatrixKit is equivalent to this object. More...
 
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. More...
 
bool IsIdentity ()
 Indicates whether or not this matrix is an identity matrix More...
 
 MatrixKit ()
 Initializes an identity matrix. More...
 
 MatrixKit (HPS.MatrixKit in_other)
 The copy constructor creates a new MatrixKit object that contains the same settings as the source object. More...
 
 MatrixKit (float[] in_matrix_source)
 This constructor allows implicit construction from an array of floats. More...
 
 MatrixKit (HPS.Quaternion in_quaternion)
 This constructor allows implicit construction from a quaternion. More...
 
HPS.MatrixKit Multiply (HPS.MatrixKit in_right)
 Performs a matrix multiplication with this object as the left operand. More...
 
HPS.MatrixKit Multiply (float in_scalar)
 Performs a scalar multiplication of this matrix. More...
 
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. More...
 
HPS.MatrixKit MultiplyAndAssign (float in_scalar)
 Performs a scalar multiplication of this matrix and then assigns it to this object. More...
 
HPS.MatrixKit Normalize ()
 Divides this matrix by its determinant. If this matrix is singular (determinant = 0), it will be unchanged. More...
 
void Reset ()
 Sets this kit to an identity matrix. More...
 
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. More...
 
HPS.MatrixKit RotateOffAxis (HPS.Vector in_vector, float in_theta)
 Concatenates a rotation matrix to this matrix with rotation around an arbitrary vector. More...
 
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. More...
 
void Set (HPS.MatrixKit other)
 Copies the data from the source MatrixKit into this object. More...
 
HPS.MatrixKit SetElement (ulong in_row, ulong in_column, float in_value)
 Sets a single matrix element. More...
 
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. More...
 
HPS.MatrixKit SetElements (float[] in_values)
 Sets some or all elements in the matrix from an array, starting with the first element. More...
 
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. More...
 
bool ShowDeterminant (out float out_determinant)
 Computes the matrix determinant of this matrix. More...
 
bool ShowElement (ulong in_row, ulong in_column, out float out_value)
 Shows a single matrix element. More...
 
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. More...
 
bool ShowElements (out float[] out_matrix)
 Shows all elements of this matrix as an array. More...
 
bool ShowInverse (out HPS.MatrixKit out_matrix)
 Computes the matrix inverse of this matrix. Fails if this matrix is singular (determinant = 0). More...
 
HPS.Point Transform (HPS.Point in_source)
 Transform a point through this matrix. More...
 
HPS.Point [] Transform (HPS.Point[] in_source)
 Transform an array of points through this matrix. More...
 
HPS.Vector Transform (HPS.Vector in_source)
 Transform a vector through this matrix. More...
 
HPS.Vector [] Transform (HPS.Vector[] in_source)
 Transform an array of vectors through this matrix. More...
 
HPS.Plane Transform (HPS.Plane in_source)
 Transform a plane through this matrix. More...
 
HPS.Plane [] Transform (HPS.Plane[] in_source)
 Transform an array of planes through this matrix. More...
 
HPS.SimpleCuboid Transform (HPS.SimpleCuboid in_source)
 Transform a SimpleCuboid through this matrix. More...
 
HPS.SimpleSphere Transform (HPS.SimpleSphere in_source)
 Transform a SimpleSphere through this matrix. More...
 
HPS.MatrixKit Translate (float in_x, float in_y, float in_z)
 Concatenates a translation matrix to this matrix that moves geometry. More...
 
HPS.MatrixKit Translate (HPS.Vector in_translation)
 Concatenates a translation matrix to this matrix that moves geometry. More...
 
HPS.MatrixKit UnsetEverything ()
 Sets this kit to an identity matrix. More...
 

Static Public Member Functions

static HPS.MatrixKit GetDefault ()
 Creates a MatrixKit representing the identity matrix. More...
 
static bool operator!= (HPS.MatrixKit a, HPS.MatrixKit b)
 
static bool operator== (HPS.MatrixKit a, HPS.MatrixKit b)
 

Protected Member Functions

virtual void deleteCptr ()
 

Protected Attributes

bool cMemOwn
 
HandleRef cptr
 

Detailed Description

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

Constructor & Destructor Documentation

◆ MatrixKit() [1/4]

HPS.MatrixKit.MatrixKit ( )
inline

Initializes an identity matrix.

◆ MatrixKit() [2/4]

HPS.MatrixKit.MatrixKit ( HPS.MatrixKit  in_other)
inline

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

◆ MatrixKit() [3/4]

HPS.MatrixKit.MatrixKit ( float []  in_matrix_source)
inline

This constructor allows implicit construction from an array of floats.

Parameters
in_matrix_sourceAn 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/4]

HPS.MatrixKit.MatrixKit ( HPS.Quaternion  in_quaternion)
inline

This constructor allows implicit construction from a quaternion.

Parameters
in_quaternionA quaternion used to construct a new matrix.

Member Function Documentation

◆ Adjoint()

HPS.MatrixKit HPS.MatrixKit.Adjoint ( )
inline

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()

HPS.MatrixKit HPS.MatrixKit.Concatenate ( HPS.MatrixKit  in_kit)
inline

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

Parameters
in_kitthe right side operand of the matrix multiplication.
Returns
A reference to this object.

◆ Empty()

bool HPS.MatrixKit.Empty ( )
inline

Indicates whether this object has any values set on it.

Deprecated:
This function exists for compatibility and will always return false.
Returns
true if no values are set on this object, false otherwise.

◆ Equals()

bool HPS.MatrixKit.Equals ( HPS.MatrixKit  in_kit)
inline

Check if the source MatrixKit is equivalent to this object.

Parameters
in_kitThe source MatrixKit to compare to this object.
Returns
true if the objects are equivalent, false otherwise.

◆ GetDefault()

static HPS.MatrixKit HPS.MatrixKit.GetDefault ( )
inlinestatic

Creates a MatrixKit representing the identity matrix.

Returns
An identity MatrixKit.

◆ Invert()

HPS.MatrixKit HPS.MatrixKit.Invert ( )
inline

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 ( )
inline

Indicates whether or not this matrix is an identity matrix

Returns
Whether this matrix is an identity matrix.

◆ Multiply() [1/2]

HPS.MatrixKit HPS.MatrixKit.Multiply ( HPS.MatrixKit  in_right)
inline

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

Parameters
in_rightA matrix used as the right operand of a matrix multiplication.
Returns
A new MatrixKit representing the product.

◆ Multiply() [2/2]

HPS.MatrixKit HPS.MatrixKit.Multiply ( float  in_scalar)
inline

Performs a scalar multiplication of this matrix.

Parameters
in_scalarA scalar to multiply this object by.
Returns
A new MatrixKit representing the product.

◆ MultiplyAndAssign() [1/2]

HPS.MatrixKit HPS.MatrixKit.MultiplyAndAssign ( HPS.MatrixKit  in_right)
inline

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

Parameters
in_rightA matrix used as the right operand of a matrix multiplication.
Returns
A reference to this object after the multiplication.

◆ MultiplyAndAssign() [2/2]

HPS.MatrixKit HPS.MatrixKit.MultiplyAndAssign ( float  in_scalar)
inline

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

Parameters
in_scalarA scalar to multiply this object by.
Returns
A reference to this object after the multiplication.

◆ Normalize()

HPS.MatrixKit HPS.MatrixKit.Normalize ( )
inline

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

Returns
A reference to this object.

◆ Reset()

void HPS.MatrixKit.Reset ( )
inline

Sets this kit to an identity matrix.

◆ Rotate()

HPS.MatrixKit HPS.MatrixKit.Rotate ( float  in_x,
float  in_y,
float  in_z 
)
inline

Concatenates a rotation matrix to this matrix with rotation around the primary axes.

Parameters
in_xThe number of degrees to rotate around the x-axis.
in_yThe number of degrees to rotate around the y-axis.
in_zThe number of degrees to rotate around the z-axis.
Returns
A reference to this object.

◆ RotateOffAxis()

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

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

Parameters
in_vectorThe vector to rotate around.
in_thetathe number of degrees to rotate around the specified vector
Returns
A reference to this object.

◆ Scale()

HPS.MatrixKit HPS.MatrixKit.Scale ( float  in_x,
float  in_y,
float  in_z 
)
inline

Concatenates a scale matrix to this matrix that represents a uniform scaling of the scene.

Parameters
in_xThe scale multiplier along the x-axis.
in_yThe scale multiplier along the y-axis.
in_zThe scale multiplier along the z-axis.
Returns
A reference to this object.

◆ Set()

void HPS.MatrixKit.Set ( HPS.MatrixKit  other)
inline

Copies the data from the source MatrixKit into this object.

◆ SetElement() [1/2]

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

Sets a single matrix element.

Parameters
in_rowThe row index. Valid range is [0, 3].
in_columnThe column index. Valid range is [0, 3].
in_valueThe matrix element.
Returns
A reference to this object.

◆ SetElement() [2/2]

HPS.MatrixKit HPS.MatrixKit.SetElement ( ulong  in_ordinal_zero_to_fifteen,
float  in_value 
)
inline

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

Parameters
in_ordinal_zero_to_fifteenThe offset into the matrix. Valid range is [0, 15].
in_valueThe matrix element.
Returns
A reference to this object.

◆ SetElements()

HPS.MatrixKit HPS.MatrixKit.SetElements ( float []  in_values)
inline

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

Parameters
in_valuesAn 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 ( out HPS.MatrixKit  out_matrix)
inline

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_matrixThe matrix adjoint of this matrix.
Returns
true if the setting is valid, false otherwise.

◆ ShowDeterminant()

bool HPS.MatrixKit.ShowDeterminant ( out float  out_determinant)
inline

Computes the matrix determinant of this matrix.

Parameters
out_determinantThe matrix determinant.
Returns
true if the setting is valid, false otherwise.

◆ ShowElement() [1/2]

bool HPS.MatrixKit.ShowElement ( ulong  in_row,
ulong  in_column,
out float  out_value 
)
inline

Shows a single matrix element.

Parameters
in_rowThe row index. Valid range is [0, 3].
in_columnThe column index. Valid range is [0, 3].
out_valueThe matrix element.
Returns
true if the setting is valid, false otherwise.

◆ ShowElement() [2/2]

bool HPS.MatrixKit.ShowElement ( ulong  in_ordinal_zero_to_fifteen,
out float  out_value 
)
inline

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

Parameters
in_ordinal_zero_to_fifteenThe offset into the matrix. Valid range is [0, 15].
out_valueThe matrix element.
Returns
true if the setting is valid, false otherwise.

◆ ShowElements()

bool HPS.MatrixKit.ShowElements ( out float []  out_matrix)
inline

Shows all elements of this matrix as an array.

Parameters
out_matrixThe 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 ( out HPS.MatrixKit  out_matrix)
inline

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

Parameters
out_matrixThe matrix inverse of this matrix.
Returns
true if the setting is valid, false otherwise.

◆ Transform() [1/8]

HPS.Point HPS.MatrixKit.Transform ( HPS.Point  in_source)
inline

Transform a point through this matrix.

Parameters
in_sourceThe point to apply a transformation to.
Returns
A new point representing the transformed point.

◆ Transform() [2/8]

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

Transform an array of points through this matrix.

Parameters
in_sourceAn array of points to apply a transformation to.
Returns
A new point array representing the transformed points.

◆ Transform() [3/8]

HPS.Vector HPS.MatrixKit.Transform ( HPS.Vector  in_source)
inline

Transform a vector through this matrix.

Parameters
in_sourceThe vector to apply a transformation to.
Returns
A new vector representing the transformed vector.

◆ Transform() [4/8]

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

Transform an array of vectors through this matrix.

Parameters
in_sourceAn array of vectors to apply a transformation to.
Returns
A new vector array representing the transformed vectors.

◆ Transform() [5/8]

HPS.Plane HPS.MatrixKit.Transform ( HPS.Plane  in_source)
inline

Transform a plane through this matrix.

Parameters
in_sourceThe plane to apply a transformation to.
Returns
A new plane representing the transformed plane.

◆ Transform() [6/8]

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

Transform an array of planes through this matrix.

Parameters
in_sourceAn array of planes to apply a transformation to.
Returns
A new plane array representing the transformed planes.

◆ Transform() [7/8]

HPS.SimpleCuboid HPS.MatrixKit.Transform ( HPS.SimpleCuboid  in_source)
inline

Transform a SimpleCuboid through this matrix.

Parameters
in_sourceThe cuboid to apply a transformation to.
Returns
A new SimpleCuboid representing the transformed cuboid.

◆ Transform() [8/8]

HPS.SimpleSphere HPS.MatrixKit.Transform ( HPS.SimpleSphere  in_source)
inline

Transform a SimpleSphere through this matrix.

Parameters
in_sourceThe sphere to apply a transformation to.
Returns
A new SimpleSphere representing the transformed sphere.

◆ Translate() [1/2]

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

Concatenates a translation matrix to this matrix that moves geometry.

Parameters
in_xThe number of units to translate along the x-axis.
in_yThe number of units to translate along the y-axis.
in_zThe number of units to translate along the z-axis.
Returns
A reference to this object.

◆ Translate() [2/2]

HPS.MatrixKit HPS.MatrixKit.Translate ( HPS.Vector  in_translation)
inline

Concatenates a translation matrix to this matrix that moves geometry.

Parameters
in_translationA vector distance to translate by.
Returns
A reference to this object.

◆ UnsetEverything()

HPS.MatrixKit HPS.MatrixKit.UnsetEverything ( )
inline

Sets this kit to an identity matrix.

Deprecated:
This function exists for compatibility and Reset should be preferred.
Returns
A reference to this kit.

The documentation for this class was generated from the following file:
  • internals/hps_core/source/cs/HPS.MatrixKit.cs