Giga Geometry Implementation
This commit is contained in:
@@ -121,10 +121,19 @@ namespace J3ML::LinearAlgebra {
|
||||
void SetRow(int row, const Vector4& rowVector);
|
||||
void SetRow(int row, float m_r0, float m_r1, float m_r2, float m_r3);
|
||||
|
||||
void SetCol(int col, const Vector3& colVector, float m_c3);
|
||||
void SetCol(int col, const Vector4& colVector);
|
||||
void SetCol(int col, float m_c0, float m_c1, float m_c2, float m_c3);
|
||||
void SetCol(int col, const float *data);
|
||||
|
||||
Vector4 GetRow(int index) const;
|
||||
Vector4 GetColumn(int index) const;
|
||||
Vector3 GetRow3(int index) const;
|
||||
Vector3 GetColumn3(int index) const;
|
||||
Vector4 Col(int i) const;
|
||||
Vector4 Row(int i) const;
|
||||
Vector4 Col3(int i) const;
|
||||
Vector4 Row3(int i) const;
|
||||
|
||||
Vector3 GetScale() const
|
||||
{
|
||||
@@ -264,9 +273,13 @@ namespace J3ML::LinearAlgebra {
|
||||
/// Returns true if this matrix is seen to contain a "projective" part,
|
||||
/// i.e. whether the last row of this matrix differs from [0 0 0 1]
|
||||
bool ContainsProjection(float epsilon = 1e-3f) const;
|
||||
|
||||
void InverseOrthonormal();
|
||||
|
||||
protected:
|
||||
float elems[4][4];
|
||||
|
||||
|
||||
Vector3 TransformDir(float tx, float ty, float tz) const;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user