43 Matrix4x4(
float e0,
float e1,
float e2,
float e3,
44 float e4,
float e5,
float e6,
float e7,
45 float e8,
float e9,
float e10,
float e11,
46 float e12,
float e13,
float e14,
float e15);
58 Matrix4x4 operator * (
const float value)
const;
59 Matrix4x4 operator / (
const float value)
const;
66 void operator *= (
const float value);
67 void operator /= (
const float value);
69 bool operator == (
const Matrix4x4 & mat)
const;
70 bool operator != (
const Matrix4x4 & mat)
const;
99 float & operator () (
int col,
int row){
100 return entries[row*4+col];
103 operator float* ()
const {
104 return (
float*)
this;
107 operator const float* ()
const {
108 return (
const float*)
this;
113 void loadIdentity(
void);
117 void transpose(
void);
118 void affineInvert(
void);
119 void invertTranspose(
void);
120 void affineInvertTranspose(
void);
122 void scale(
const Vector3 & scaleFactor);
123 void rotate(
const Vector3 & axis,
const float angle);
124 void translate(
const Vector3 translate);
126 void setEntry(
int position,
float value);
127 void setScale(
const Vector3 & scaleFactor);
128 void setUniformScale(
const float size);
129 void setTranslation(
const Vector3 & translation);
130 void setTranslationPart(
const Vector3 & translation);
131 void setRotationAxis(
const float angle,
const Vector3 & axis);
132 void setRotationX(
const float angle);
133 void setRotationY(
const float angle);
134 void setRotationZ(
const float angle);
135 void setRotationEuler(
const float angleX,
const float angleY,
const float angleZ);
136 void setRotationPartEuler(
const float angleX,
const float angleY,
const float angleZ);
139 setRotationPartEuler(rotations.
x, rotations.
y, rotations.
z);
142 float getEntry(
int position)
const;
147 entries[0]*vec.
x + entries[4]*vec.
y + entries[8]*vec.
z,
148 entries[1]*vec.
x + entries[5]*vec.
y + entries[9]*vec.
z,
149 entries[2]*vec.
x + entries[6]*vec.
y + entries[10]*vec.
z
159 Vector3 getEulerAngles(
void)
const;
163 Vector4 getRow(
int position)
const;
164 Vector4 getColumn(
int position)
const;
168 Matrix4x4 getInversetranspose(
void)
const;
170 Matrix4x4 getAffineInverseTranspose(
void)
const;
174 vec = getRotatedVector3(vec);
179 vec = getInverseRotatedVector3(vec);
184 vec = getTranslatedVector3(vec);
189 vec = getInversetranslatedVector3(vec);
Vector3 getRotatedVector3(const Vector3 &vec) const
Definition: Matrix4x4.h:144
void translateVector3(Vector3 &vec) const
Definition: Matrix4x4.h:182
void setRotationPartEuler(const Vector3 &rotations)
Definition: Matrix4x4.h:137
void rotateVector3(Vector3 &vec) const
Definition: Matrix4x4.h:172
~Matrix4x4(void)
Definition: Matrix4x4.h:51
Definition: Matrix4x4.h:31
float y
Definition: Vector3.h:36
void inverseRotateVector3(Vector3 &vec) const
Definition: Matrix4x4.h:177
float x
Definition: Vector3.h:35
Matrix4x4(void)
Definition: Matrix4x4.h:39
float z
Definition: Vector3.h:37
void inversetranslateVector3(Vector3 &vec) const
Definition: Matrix4x4.h:187
Vector3 getTranslationPart(void) const
Definition: Matrix4x4.h:157