Inheritance diagram for HPS.MatrixKit:

Public Member Functions

HPS.MatrixKit Adjoint ()
 
HPS.MatrixKit Concatenate (HPS.MatrixKit in_kit)
 
virtual void Dispose ()
 
bool Empty ()
 
override bool Equals (System.Object obj)
 
bool Equals (HPS.MatrixKit in_kit)
 
override int GetHashCode ()
 
HPS.MatrixKit Invert ()
 
bool IsIdentity ()
 
 MatrixKit ()
 
 MatrixKit (HPS.MatrixKit in_other)
 
 MatrixKit (float[] in_matrix_source)
 
 MatrixKit (HPS.Quaternion in_quaternion)
 
HPS.MatrixKit Multiply (HPS.MatrixKit in_right)
 
HPS.MatrixKit Multiply (float in_scalar)
 
HPS.MatrixKit MultiplyAndAssign (HPS.MatrixKit in_right)
 
HPS.MatrixKit MultiplyAndAssign (float in_scalar)
 
HPS.MatrixKit Normalize ()
 
void Reset ()
 
HPS.MatrixKit Rotate (float in_x, float in_y, float in_z)
 
HPS.MatrixKit RotateOffAxis (HPS.Vector in_vector, float in_theta)
 
HPS.MatrixKit Scale (float in_x, float in_y, float in_z)
 
void Set (HPS.MatrixKit other)
 
HPS.MatrixKit SetElement (ulong in_row, ulong in_column, float in_value)
 
HPS.MatrixKit SetElement (ulong in_ordinal_zero_to_fifteen, float in_value)
 
HPS.MatrixKit SetElements (float[] in_values)
 
bool ShowAdjoint (out HPS.MatrixKit out_matrix)
 
bool ShowDeterminant (out float out_determinant)
 
bool ShowElement (ulong in_row, ulong in_column, out float out_value)
 
bool ShowElement (ulong in_ordinal_zero_to_fifteen, out float out_value)
 
bool ShowElements (out float[] out_matrix)
 
bool ShowInverse (out HPS.MatrixKit out_matrix)
 
HPS.Point Transform (HPS.Point in_source)
 
HPS.Point [] Transform (HPS.Point[] in_source)
 
HPS.Vector Transform (HPS.Vector in_source)
 
HPS.Vector [] Transform (HPS.Vector[] in_source)
 
HPS.Plane Transform (HPS.Plane in_source)
 
HPS.Plane [] Transform (HPS.Plane[] in_source)
 
HPS.SimpleCuboid Transform (HPS.SimpleCuboid in_source)
 
HPS.SimpleSphere Transform (HPS.SimpleSphere in_source)
 
HPS.MatrixKit Translate (float in_x, float in_y, float in_z)
 
HPS.MatrixKit Translate (HPS.Vector in_translation)
 
HPS.MatrixKit UnsetEverything ()
 

Static Public Member Functions

static HPS.MatrixKit GetDefault ()
 
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