3DCoat Core API
The 3DCoat API documentation.
Loading...
Searching...
No Matches
cMat3 Class Reference

The 3D-matrix, refer it as coat::mat3 in the Core API. More...

#include <cMat3.h>

Public Types

enum  EZeroCtor { ZeroCtor }
 
enum  EIdentityCtor { IdentityCtor }
 
enum  ERowsCtor { RowsCtor }
 
enum  EColsCtor { ColsCtor }
 

Public Member Functions

 cMat3 (const EZeroCtor)
 
 cMat3 (const EIdentityCtor)
 
 cMat3 (const ERowsCtor, const cVec3 &Row0, const cVec3 &Row1, const cVec3 &Row2)
 
 cMat3 (const EColsCtor, const cVec3 &Col0, const cVec3 &Col1, const cVec3 &Col2)
 
 cMat3 (const float _00, const float _01, const float _02, const float _10, const float _11, const float _12, const float _20, const float _21, const float _22)
 
 cMat3 (const cMat3 &v)
 
void Copy (const float *Float9)
 
void CopyTransposed (const float *Float9)
 
void SetZero ()
 
void SetIdentity ()
 
const cVec3GetRow (const int Index) const
 
const cVec3GetRow0 () const
 
const cVec3GetRow1 () const
 
const cVec3GetRow2 () const
 
cVec3Row (const int Index)
 
cVec3Row0 ()
 
cVec3Row1 ()
 
cVec3Row2 ()
 
void SetRow (const int Index, const cVec3 &)
 
void SetRow0 (const cVec3 &)
 
void SetRow1 (const cVec3 &)
 
void SetRow2 (const cVec3 &)
 
void SetRow (const int Index, const float X, const float Y, const float Z)
 
void SetRow0 (const float X, const float Y, const float Z)
 
void SetRow1 (const float X, const float Y, const float Z)
 
void SetRow2 (const float X, const float Y, const float Z)
 
const cVec3 GetCol (const int Index) const
 
const cVec3 GetCol0 () const
 
const cVec3 GetCol1 () const
 
const cVec3 GetCol2 () const
 
void SetCol (const int Index, const cVec3 &)
 
void SetCol0 (const cVec3 &)
 
void SetCol1 (const cVec3 &)
 
void SetCol2 (const cVec3 &)
 
void SetCol (const int Index, const float X, const float Y, const float Z)
 
void SetCol0 (const float X, const float Y, const float Z)
 
void SetCol1 (const float X, const float Y, const float Z)
 
void SetCol2 (const float X, const float Y, const float Z)
 
void SetElem (int Row, int Col, float Value)
 
float GetElem (const int Row, const int Col) const
 
float & Elem (const int Row, const int Col)
 
const cVec3operator[] (const int Row) const
 
cVec3operator[] (const int Row)
 
float operator() (const int Row, const int Col) const
 
float & operator() (const int Row, const int Col)
 
float Trace () const
 
float Determinant () const
 
bool operator== (const cMat3 &) const
 
bool IsZero (const float Eps=cMath::MatrixEpsilon) const
 
bool IsIdentity (const float Eps=cMath::MatrixEpsilon) const
 
bool IsSymmetric (const float Eps=cMath::MatrixEpsilon) const
 
bool IsOrthonormal (const float Eps=cMath::MatrixEpsilon) const
 
const cMat3 operator- () const
 
cMat3operator+= (const cMat3 &R)
 
cMat3operator-= (const cMat3 &R)
 
cMat3operator*= (const cMat3 &R)
 
cMat3operator*= (const float)
 
cMat3operator/= (const float)
 
const cMat3 operator+ (const cMat3 &R) const
 
const cMat3 operator- (const cMat3 &R) const
 
const cMat3 operator* (const cMat3 &R) const
 
const cMat3 operator* (const float) const
 
const cMat3 operator/ (const float) const
 
void Add (const cMat3 &R)
 
void Sub (const cMat3 &R)
 
void Mul (const cMat3 &R)
 
void Mul (const float s)
 
void Transpose ()
 
bool Invert ()
 
void OrthoNormalize ()
 
const float * ToFloatPtr () const
 
float * ToFloatPtr ()
 
const cMat4 ToMat4 () const
 
const cQuat ToQuat () const
 
void ToVectors (cVec3 *Forward, cVec3 *Right=nullptr, cVec3 *Up=nullptr) const
 
const cVec3 ToForward () const
 
const cVec3 ToRight () const
 
const cVec3 ToUp () const
 
const cAngles ToAngles () const
 
std::tuple< float, float, float, float, float, float, float, float, float > __getstate__ ()
 
void __setstate__ (const std::tuple< float, float, float, float, float, float, float, float, float > &state)
 
const std::string __repr__ () const
 

Static Public Member Functions

static bool Equals (const cMat3 &, const cMat3 &, const float Eps=cMath::MatrixEpsilon)
 
static const cMat3 Add (const cMat3 &L, const cMat3 &R)
 
static const cMat3 Sub (const cMat3 &L, const cMat3 &R)
 
static const cMat3 Mul (const cMat3 &L, const cMat3 &R)
 
static const cMat3 Mul (const cMat3 &L, const float s)
 
static const cVec3 Mul (const cMat3 &L, const cVec3 &vc)
 
static const cMat3 Transpose (const cMat3 &)
 
static bool Invert (const cMat3 &Fm, cMat3 *To)
 
static const cMat3 OrthoNormalize (const cMat3 &Src)
 
static const cMat3 Rotation (const cVec3 &Axis, const float Angle)
 
static const cMat3 RotationX (const float Angle)
 
static const cMat3 RotationY (const float Angle)
 
static const cMat3 RotationZ (const float Angle)
 
static const cMat3 RotationXYZ (const float Pitch, const float Yaw, const float Roll)
 
static const cMat3 EulerZYX (const float eulerX, const float eulerY, const float eulerZ)
 
static const cMat3 Scaling (const float XYZ)
 
static const cMat3 Scaling (const float X, const float Y)
 
static const cMat3 Scaling (const float X, const float Y, const float Z)
 
static const cMat3 Scaling (const cVec2 &XY)
 
static const cMat3 Scaling (const cVec3 &XYZ)
 
static const cMat3 FromVectors (const cVec3 &Forward, const cVec3 &Right, const cVec3 &Up)
 
static const cMat3 FromForward (const cVec3 &Forward)
 

Static Public Attributes

static const cMat3 Zero
 
static const cMat3 Identity
 

Friends

const cMat3 operator* (const float s, const cMat3 &R)
 

Detailed Description

The 3D-matrix, refer it as coat::mat3 in the Core API.


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