53 FXMat4f(FXfloat a,FXfloat b,FXfloat c,FXfloat d);
56 FXMat4f(FXfloat a00,FXfloat a01,FXfloat a02,FXfloat a03,
57 FXfloat a10,FXfloat a11,FXfloat a12,FXfloat a13,
58 FXfloat a20,FXfloat a21,FXfloat a22,FXfloat a23,
59 FXfloat a30,FXfloat a31,FXfloat a32,FXfloat a33);
78 FXMat4f& operator=(
const FXfloat s[]);
90 FXMat4f&
set(
const FXfloat s[]);
93 FXMat4f&
set(FXfloat a,FXfloat b,FXfloat c,FXfloat d);
96 FXMat4f&
set(FXfloat a00,FXfloat a01,FXfloat a02,FXfloat a03,
97 FXfloat a10,FXfloat a11,FXfloat a12,FXfloat a13,
98 FXfloat a20,FXfloat a21,FXfloat a22,FXfloat a23,
99 FXfloat a30,FXfloat a31,FXfloat a32,FXfloat a33);
111 FXMat4f& operator*=(FXfloat s);
112 FXMat4f& operator/=(FXfloat s);
116 const FXVec4f& operator[](FXint i)
const {
return m[i];}
119 operator FXfloat*(){
return m[0];}
120 operator const FXfloat*()
const {
return m[0];}
123 FXMat4f operator-()
const;
129 FXbool isIdentity()
const;
132 FXMat4f& setOrtho(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
135 void getOrtho(FXfloat& xlo,FXfloat& xhi,FXfloat& ylo,FXfloat& yhi,FXfloat& zlo,FXfloat& zhi)
const;
138 FXMat4f& setInverseOrtho(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
141 FXMat4f& setFrustum(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
144 void getFrustum(FXfloat& xlo,FXfloat& xhi,FXfloat& ylo,FXfloat& yhi,FXfloat& zlo,FXfloat& zhi)
const;
147 FXMat4f& setInverseFrustum(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
153 FXMat4f& rot(
const FXMat3f& r);
156 FXMat4f& rot(
const FXQuatf& q);
159 FXMat4f& rot(
const FXVec3f& v,FXfloat c,FXfloat s);
162 FXMat4f& rot(
const FXVec3f& v,FXfloat phi);
165 FXMat4f& xrot(FXfloat c,FXfloat s);
166 FXMat4f& xrot(FXfloat phi);
169 FXMat4f& yrot(FXfloat c,FXfloat s);
170 FXMat4f& yrot(FXfloat phi);
173 FXMat4f& zrot(FXfloat c,FXfloat s);
174 FXMat4f& zrot(FXfloat phi);
177 FXMat4f& look(
const FXVec3f& from,
const FXVec3f& to,
const FXVec3f& up);
180 FXMat4f& trans(FXfloat tx,FXfloat ty,FXfloat tz);
181 FXMat4f& trans(
const FXVec3f& v);
184 FXMat4f& scale(FXfloat sx,FXfloat sy,FXfloat sz);
185 FXMat4f& scale(
const FXVec3f& v);
186 FXMat4f& scale(FXfloat s);
189 FXMat4f& mirror(
const FXVec3f& n);
195 FXMat4f transpose()
const;
198 FXMat4f invert()
const;
201 FXMat4f affineInvert()
const;
204 FXMat4f rigidInvert()
const;
207 FXMat3f normalMatrix()
const;
215 extern FXAPI FXVec3f operator*(
const FXMat4f& m,
const FXVec3f& v);
216 extern FXAPI FXVec4f operator*(
const FXMat4f& m,
const FXVec4f& v);
219 extern FXAPI FXVec3f operator*(
const FXVec3f& v,
const FXMat4f& m);
220 extern FXAPI FXVec4f operator*(
const FXVec4f& v,
const FXMat4f& m);
223 extern FXAPI FXMat4f operator+(
const FXMat4f& a,
const FXMat4f& b);
224 extern FXAPI FXMat4f operator-(
const FXMat4f& a,
const FXMat4f& b);
227 extern FXAPI FXMat4f operator*(
const FXMat4f& a,
const FXMat4f& b);
230 extern FXAPI FXMat4f operator*(FXfloat x,
const FXMat4f& a);
231 extern FXAPI FXMat4f operator*(
const FXMat4f& a,FXfloat x);
232 extern FXAPI FXMat4f operator/(
const FXMat4f& a,FXfloat x);
233 extern FXAPI FXMat4f operator/(FXfloat x,
const FXMat4f& a);
236 extern FXAPI FXbool operator==(
const FXMat4f& a,
const FXMat4f& b);
237 extern FXAPI FXbool operator!=(
const FXMat4f& a,
const FXMat4f& b);
238 extern FXAPI FXbool operator==(
const FXMat4f& a,FXfloat n);
239 extern FXAPI FXbool operator!=(
const FXMat4f& a,FXfloat n);
240 extern FXAPI FXbool operator==(FXfloat n,
const FXMat4f& a);
241 extern FXAPI FXbool operator!=(FXfloat n,
const FXMat4f& a);
244 extern FXAPI FXMat4f orthogonalize(
const FXMat4f& m);
247 extern FXAPI FXStream& operator<<(FXStream& store,
const FXMat4f& m);
250 extern FXAPI FXStream& operator>>(FXStream& store,FXMat4f& m);
~FXMat4f()
Destructor.
Definition: FXMat4f.h:210
Single-precision 3x3 matrix.
Definition: FXMat3f.h:33
FXMat4f()
Default constructor; value is not initialized.
Definition: FXMat4f.h:38
FXVec4f & operator[](FXint i)
Indexing.
Definition: FXMat4f.h:115
Definition: FX4Splitter.h:28
Single-precision quaternion.
Definition: FXQuatf.h:32
Single-precision 4x4 matrix.
Definition: FXMat4f.h:32
Single-precision 4-element vector.
Definition: FXVec4f.h:28