StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
StevEngine::Utilities::Matrix4 Class Reference

4x4 matrix for 3D transformations More...

#include <utilities/Matrix4.hpp>

Public Member Functions

 Matrix4 (double data[4][4])
 Create matrix from raw 4x4 array.
 
 Matrix4 (const Vector4 &row1, const Vector4 &row2, const Vector4 &row3, const Vector4 &row4)
 Create matrix from row vectors.
 
 Matrix4 (const Matrix4 &matrix)
 Copy constructor.
 
 Matrix4 (double v)
 Create matrix filled with value.
 
 Matrix4 ()
 Create identity matrix.
 
Vector4 GetRow (int i) const
 Get row vector.
 
Vector4 GetColumn (int i) const
 Get column vector.
 
double GetDeterminant () const
 Calculate matrix determinant.
 
Matrix4Inverse ()
 Invert this matrix.
 
Matrix4Transpose ()
 Transpose this matrix.
 
Matrix4operator= (const Matrix4 &other)
 Assignment.
 
Matrix4 operator* (const Matrix4 &matrix) const
 Matrix multiplication.
 
Vector3 operator* (const Vector3 &point) const
 Point transformation.
 
Matrix4 operator* (const double &value) const
 Scalar multiplication.
 
Matrix4 operator/ (const double &value) const
 Scalar division.
 
bool operator== (const Matrix4 &other) const
 Equality comparison.
 
 operator std::string () const
 Convert to string.
 
const float * data () const
 Get raw float array.
 

Static Public Member Functions

static Matrix4 Inverse (const Matrix4 &matrix)
 Create inverse of matrix.
 
static Matrix4 Transpose (const Matrix4 &matrix)
 Create transpose of matrix.
 
static Matrix4 FromTranslation (const Vector3 &position)
 Create translation matrix.
 
static Matrix4 FromRotation (const Quaternion &rotation)
 Create rotation matrix.
 
static Matrix4 FromScale (const Vector3 &scale)
 Create scale matrix.
 
static Matrix4 FromTranslationRotationScale (const Vector3 &position, const Quaternion &rotation, const Vector3 &scale)
 Create combined TRS matrix.
 
static Matrix4 FromOrthographic (float width, float height, float clipNear, float clipFar)
 Create orthographic projection.
 
static Matrix4 FromOrthographic (float left, float right, float bottom, float top, float clipNear, float clipFar)
 Create orthographic projection with bounds.
 
static Matrix4 FromPerspective (float fovx, float aspect, float clipNear, float clipFar)
 Create perspective projection.
 

Static Public Attributes

static const Matrix4 identity
 Identity matrix.
 
static const Matrix4 zero = Matrix4(0.0)
 Zero matrix.
 

Detailed Description

4x4 matrix for 3D transformations

Implements common matrix operations for 3D transformations including translation, rotation, scaling, and projection matrices.

Constructor & Destructor Documentation

◆ Matrix4() [1/4]

StevEngine::Utilities::Matrix4::Matrix4 ( double data[4][4])

Create matrix from raw 4x4 array.

Parameters
data4x4 array of values

◆ Matrix4() [2/4]

StevEngine::Utilities::Matrix4::Matrix4 ( const Vector4 & row1,
const Vector4 & row2,
const Vector4 & row3,
const Vector4 & row4 )

Create matrix from row vectors.

Parameters
row1First row vector
row2Second row vector
row3Third row vector
row4Fourth row vector

◆ Matrix4() [3/4]

StevEngine::Utilities::Matrix4::Matrix4 ( const Matrix4 & matrix)

Copy constructor.

Parameters
matrixMatrix to copy

◆ Matrix4() [4/4]

StevEngine::Utilities::Matrix4::Matrix4 ( double v)

Create matrix filled with value.

Parameters
vValue to fill with

Member Function Documentation

◆ FromOrthographic() [1/2]

Matrix4 StevEngine::Utilities::Matrix4::FromOrthographic ( float left,
float right,
float bottom,
float top,
float clipNear,
float clipFar )
static

Create orthographic projection with bounds.

Parameters
leftLeft bound
rightRight bound
bottomBottom bound
topTop bound
clipNearNear clip plane
clipFarFar clip plane
Returns
Orthographic projection matrix

◆ FromOrthographic() [2/2]

Matrix4 StevEngine::Utilities::Matrix4::FromOrthographic ( float width,
float height,
float clipNear,
float clipFar )
static

Create orthographic projection.

Parameters
widthView width
heightView height
clipNearNear clip plane
clipFarFar clip plane
Returns
Orthographic projection matrix

◆ FromPerspective()

Matrix4 StevEngine::Utilities::Matrix4::FromPerspective ( float fovx,
float aspect,
float clipNear,
float clipFar )
static

Create perspective projection.

Parameters
fovxHorizontal field of view in degrees
aspectAspect ratio (width/height)
clipNearNear clip plane
clipFarFar clip plane
Returns
Perspective projection matrix

◆ FromRotation()

Matrix4 StevEngine::Utilities::Matrix4::FromRotation ( const Quaternion & rotation)
static

Create rotation matrix.

Parameters
rotationRotation quaternion
Returns
Rotation matrix

◆ FromScale()

Matrix4 StevEngine::Utilities::Matrix4::FromScale ( const Vector3 & scale)
static

Create scale matrix.

Parameters
scaleScale vector
Returns
Scale matrix

◆ FromTranslation()

Matrix4 StevEngine::Utilities::Matrix4::FromTranslation ( const Vector3 & position)
static

Create translation matrix.

Parameters
positionTranslation vector
Returns
Translation matrix

◆ FromTranslationRotationScale()

Matrix4 StevEngine::Utilities::Matrix4::FromTranslationRotationScale ( const Vector3 & position,
const Quaternion & rotation,
const Vector3 & scale )
static

Create combined TRS matrix.

Parameters
positionTranslation
rotationRotation
scaleScale
Returns
Combined transformation matrix

◆ GetColumn()

Vector4 StevEngine::Utilities::Matrix4::GetColumn ( int i) const

Get column vector.

Parameters
iColumn index (0-3)
Returns
Column as Vector4

◆ GetDeterminant()

double StevEngine::Utilities::Matrix4::GetDeterminant ( ) const

Calculate matrix determinant.

Returns
Determinant value

◆ GetRow()

Vector4 StevEngine::Utilities::Matrix4::GetRow ( int i) const

Get row vector.

Parameters
iRow index (0-3)
Returns
Row as Vector4

◆ Inverse() [1/2]

Matrix4 & StevEngine::Utilities::Matrix4::Inverse ( )

Invert this matrix.

Returns
Reference to this

◆ Inverse() [2/2]

Matrix4 StevEngine::Utilities::Matrix4::Inverse ( const Matrix4 & matrix)
static

Create inverse of matrix.

Parameters
matrixMatrix to invert
Returns
Inverted matrix

◆ Transpose() [1/2]

Matrix4 & StevEngine::Utilities::Matrix4::Transpose ( )

Transpose this matrix.

Returns
Reference to this

◆ Transpose() [2/2]

Matrix4 StevEngine::Utilities::Matrix4::Transpose ( const Matrix4 & matrix)
static

Create transpose of matrix.

Parameters
matrixMatrix to transpose
Returns
Transposed matrix

Member Data Documentation

◆ identity

const Matrix4 StevEngine::Utilities::Matrix4::identity
static
Initial value:
Vector4(1,0,0,0),
Vector4(0,1,0,0),
Vector4(0,0,1,0),
Vector4(0,0,0,1)
)
Matrix4()
Create identity matrix.
Definition Matrix4.cpp:42
4D vector class
Definition Vector4.hpp:14

Identity matrix.


The documentation for this class was generated from the following files: