XII Release 0.1.0
Loading...
Searching...
No Matches
xiiSimdMat4f Class Reference

Copyright (c) Theophilus Eriata. All Rights Reserved. More...

#include <SimdMat4f.h>

Public Member Functions

 XII_DECLARE_POD_TYPE ()
 xiiSimdMat4f ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.
void GetAsArray (float *out_pData, xiiMatrixLayout::Enum layout) const
void Transpose ()
 Transposes this matrix.
xiiSimdMat4f GetTranspose () const
 Returns the transpose of this matrix.
xiiResult Invert (const xiiSimdFloat &fEpsilon=xiiMath::SmallEpsilon< float >())
 Inverts this matrix. Return value indicates whether the matrix could be inverted.
xiiSimdMat4f GetInverse (const xiiSimdFloat &fEpsilon=xiiMath::SmallEpsilon< float >()) const
 Returns the inverse of this matrix.
bool IsEqual (const xiiSimdMat4f &rhs, const xiiSimdFloat &fEpsilon) const
 Equality Check with epsilon.
bool IsIdentity (const xiiSimdFloat &fEpsilon=xiiMath::DefaultEpsilon< float >()) const
 Checks whether this is an identity matrix.
bool IsValid () const
 Checks whether all components are finite numbers.
bool IsNaN () const
 Checks whether any component is NaN.
void SetRows (const xiiSimdVec4f &vRow0, const xiiSimdVec4f &vRow1, const xiiSimdVec4f &vRow2, const xiiSimdVec4f &vRow3)
void GetRows (xiiSimdVec4f &ref_vRow0, xiiSimdVec4f &ref_vRow1, xiiSimdVec4f &ref_vRow2, xiiSimdVec4f &ref_vRow3) const
xiiSimdVec4f TransformPosition (const xiiSimdVec4f &v) const
 Matrix-vector multiplication, assuming the 4th component of the vector is one (default behavior).
xiiSimdVec4f TransformDirection (const xiiSimdVec4f &v) const
 Matrix-vector multiplication, assuming the 4th component of the vector is zero. So, rotation/scaling only.
xiiSimdMat4f operator* (const xiiSimdMat4f &rhs) const
void operator*= (const xiiSimdMat4f &rhs)
bool operator== (const xiiSimdMat4f &rhs) const
bool operator!= (const xiiSimdMat4f &rhs) const

Static Public Member Functions

static xiiSimdMat4f MakeZero ()
 Returns a zero matrix.
static xiiSimdMat4f MakeIdentity ()
 Returns an identity matrix.
static xiiSimdMat4f MakeFromRowMajorArray (const float *const pData)
 Creates a matrix from 16 values that are in row-major layout.
static xiiSimdMat4f MakeFromColumnMajorArray (const float *const pData)
 Creates a matrix from 16 values that are in column-major layout.
static xiiSimdMat4f MakeFromColumns (const xiiSimdVec4f &vCol0, const xiiSimdVec4f &vCol1, const xiiSimdVec4f &vCol2, const xiiSimdVec4f &vCol3)
 Creates a matrix from 4 column vectors.
static xiiSimdMat4f MakeFromValues (float f1r1, float f2r1, float f3r1, float f4r1, float f1r2, float f2r2, float f3r2, float f4r2, float f1r3, float f2r3, float f3r3, float f4r3, float f1r4, float f2r4, float f3r4, float f4r4)
 Creates a matrix from 16 values. Naming is "column-n row-m".

Public Attributes

xiiSimdVec4f m_col0
xiiSimdVec4f m_col1
xiiSimdVec4f m_col2
xiiSimdVec4f m_col3

Detailed Description

Copyright (c) Theophilus Eriata. All Rights Reserved.

A 4x4 matrix class

Member Function Documentation

◆ Invert()

xiiResult xiiSimdMat4f::Invert ( const xiiSimdFloat & fEpsilon = xiiMath::SmallEpsilon<float>())

Inverts this matrix. Return value indicates whether the matrix could be inverted.

Copyright (c) Theophilus Eriata. All Rights Reserved.

Todo
Optimize

◆ Transpose()

XII_ALWAYS_INLINE void xiiSimdMat4f::Transpose ( )

Transposes this matrix.

Copyright (c) Theophilus Eriata. All Rights Reserved.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/Foundation/SimdMath/SimdMat4f.h
  • /home/runner/work/XII/XII/Source/Engine/Foundation/SimdMath/Implementation/FPU/FPUMat4f_inl.h
  • /home/runner/work/XII/XII/Source/Engine/Foundation/SimdMath/Implementation/NEON/NEONMat4f_inl.h
  • /home/runner/work/XII/XII/Source/Engine/Foundation/SimdMath/Implementation/SimdMat4f.cpp
  • /home/runner/work/XII/XII/Source/Engine/Foundation/SimdMath/Implementation/SimdMat4f_inl.h
  • /home/runner/work/XII/XII/Source/Engine/Foundation/SimdMath/Implementation/SSE/SSEMat4f_inl.h