44 FXMat4f(FXfloat a00,FXfloat a01,FXfloat a02,FXfloat a03,
45 FXfloat a10,FXfloat a11,FXfloat a12,FXfloat a13,
46 FXfloat a20,FXfloat a21,FXfloat a22,FXfloat a23,
47 FXfloat a30,FXfloat a31,FXfloat a32,FXfloat a33);
62 FXMat4f(FXfloat a,FXfloat b,FXfloat c,FXfloat d);
68 explicit FXMat4f(
const FXfloat s[]);
81 FXMat4f& operator=(
const FXfloat s[]);
87 FXMat4f&
set(FXfloat a00,FXfloat a01,FXfloat a02,FXfloat a03,
88 FXfloat a10,FXfloat a11,FXfloat a12,FXfloat a13,
89 FXfloat a20,FXfloat a21,FXfloat a22,FXfloat a23,
90 FXfloat a30,FXfloat a31,FXfloat a32,FXfloat a33);
102 FXMat4f&
set(FXfloat a,FXfloat b,FXfloat c,FXfloat d);
111 FXMat4f&
set(
const FXfloat s[]);
117 FXMat4f& operator*=(FXfloat s);
118 FXMat4f& operator/=(FXfloat s);
122 const FXVec4f& operator[](FXint i)
const {
return m[i];}
125 operator FXfloat*(){
return m[0];}
126 operator const FXfloat*()
const {
return m[0];}
129 FXMat4f operator-()
const;
135 FXbool isIdentity()
const;
138 FXMat4f& setOrtho(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
141 void getOrtho(FXfloat& xlo,FXfloat& xhi,FXfloat& ylo,FXfloat& yhi,FXfloat& zlo,FXfloat& zhi)
const;
144 FXMat4f& setInverseOrtho(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
147 FXMat4f& setFrustum(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
150 void getFrustum(FXfloat& xlo,FXfloat& xhi,FXfloat& ylo,FXfloat& yhi,FXfloat& zlo,FXfloat& zhi)
const;
153 FXMat4f& setInverseFrustum(FXfloat xlo,FXfloat xhi,FXfloat ylo,FXfloat yhi,FXfloat zlo,FXfloat zhi);
159 FXMat4f& rot(
const FXMat3f& r);
162 FXMat4f& rot(
const FXQuatf& q);
165 FXMat4f& rot(
const FXVec3f& v,FXfloat c,FXfloat s);
168 FXMat4f& rot(
const FXVec3f& v,FXfloat phi);
171 FXMat4f& xrot(FXfloat c,FXfloat s);
172 FXMat4f& xrot(FXfloat phi);
175 FXMat4f& yrot(FXfloat c,FXfloat s);
176 FXMat4f& yrot(FXfloat phi);
179 FXMat4f& zrot(FXfloat c,FXfloat s);
180 FXMat4f& zrot(FXfloat phi);
183 FXMat4f& look(
const FXVec3f& from,
const FXVec3f& to,
const FXVec3f& up);
186 FXMat4f& trans(FXfloat tx,FXfloat ty,FXfloat tz);
187 FXMat4f& trans(
const FXVec3f& v);
190 FXMat4f& scale(FXfloat sx,FXfloat sy,FXfloat sz);
191 FXMat4f& scale(
const FXVec3f& v);
192 FXMat4f& scale(FXfloat s);
195 FXMat4f& mirror(
const FXVec3f& n);
201 FXMat4f transpose()
const;
204 FXMat4f invert()
const;
207 FXMat4f affineInvert()
const;
210 FXMat4f rigidInvert()
const;
213 FXMat3f normalMatrix()
const;
221 extern FXAPI FXVec3f operator*(
const FXMat4f& m,
const FXVec3f& v);
222 extern FXAPI FXVec4f operator*(
const FXMat4f& m,
const FXVec4f& v);
225 extern FXAPI FXVec3f operator*(
const FXVec3f& v,
const FXMat4f& m);
226 extern FXAPI FXVec4f operator*(
const FXVec4f& v,
const FXMat4f& m);
229 extern FXAPI FXMat4f operator+(
const FXMat4f& a,
const FXMat4f& b);
230 extern FXAPI FXMat4f operator-(
const FXMat4f& a,
const FXMat4f& b);
233 extern FXAPI FXMat4f operator*(
const FXMat4f& a,
const FXMat4f& b);
236 extern FXAPI FXMat4f operator*(FXfloat x,
const FXMat4f& a);
237 extern FXAPI FXMat4f operator*(
const FXMat4f& a,FXfloat x);
238 extern FXAPI FXMat4f operator/(
const FXMat4f& a,FXfloat x);
239 extern FXAPI FXMat4f operator/(FXfloat x,
const FXMat4f& a);
242 extern FXAPI FXbool operator==(
const FXMat4f& a,
const FXMat4f& b);
243 extern FXAPI FXbool operator!=(
const FXMat4f& a,
const FXMat4f& b);
244 extern FXAPI FXbool operator==(
const FXMat4f& a,FXfloat n);
245 extern FXAPI FXbool operator!=(
const FXMat4f& a,FXfloat n);
246 extern FXAPI FXbool operator==(FXfloat n,
const FXMat4f& a);
247 extern FXAPI FXbool operator!=(FXfloat n,
const FXMat4f& a);
250 extern FXAPI FXMat4f orthogonalize(
const FXMat4f& m);
253 extern FXAPI FXStream& operator<<(FXStream& store,
const FXMat4f& m);
256 extern FXAPI FXStream& operator>>(FXStream& store,FXMat4f& m);
~FXMat4f()
Destructor.
Definition: FXMat4f.h:216
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:121
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