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);
192 FXMat4f transpose()
const;
195 FXMat4f invert()
const;
198 FXMat4f affineInvert()
const;
201 FXMat4f rigidInvert()
const;
204 FXMat3f normalMatrix()
const;
212 extern FXAPI FXVec3f operator*(
const FXMat4f& m,
const FXVec3f& v);
213 extern FXAPI FXVec4f operator*(
const FXMat4f& m,
const FXVec4f& v);
216 extern FXAPI FXVec3f operator*(
const FXVec3f& v,
const FXMat4f& m);
217 extern FXAPI FXVec4f operator*(
const FXVec4f& v,
const FXMat4f& m);
220 extern FXAPI FXMat4f operator+(
const FXMat4f& a,
const FXMat4f& b);
221 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*(FXfloat x,
const FXMat4f& a);
228 extern FXAPI FXMat4f operator*(
const FXMat4f& a,FXfloat x);
229 extern FXAPI FXMat4f operator/(
const FXMat4f& a,FXfloat x);
230 extern FXAPI FXMat4f operator/(FXfloat x,
const FXMat4f& a);
233 extern FXAPI FXbool operator==(
const FXMat4f& a,
const FXMat4f& b);
234 extern FXAPI FXbool operator!=(
const FXMat4f& a,
const FXMat4f& b);
235 extern FXAPI FXbool operator==(
const FXMat4f& a,FXfloat n);
236 extern FXAPI FXbool operator!=(
const FXMat4f& a,FXfloat n);
237 extern FXAPI FXbool operator==(FXfloat n,
const FXMat4f& a);
238 extern FXAPI FXbool operator!=(FXfloat n,
const FXMat4f& a);
241 extern FXAPI FXMat4f orthogonalize(
const FXMat4f& m);
244 extern FXAPI FXStream& operator<<(FXStream& store,
const FXMat4f& m);
247 extern FXAPI FXStream& operator>>(FXStream& store,FXMat4f& m);
~FXMat4f()
Destructor.
Definition: FXMat4f.h:207
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