00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _deMatrix6_h
00024 #define _deMatrix6_h
00025
00033 class deMatrix6
00034 {
00035 public:
00037 deMatrix3* operator[](const deInt row) { return (_mat3 + row * 2); }
00039 const deMatrix3* operator[](const deInt row) const { return (_mat3 + row * 2); }
00041 DE_MATH_API deFloat& elementAt(const deInt i, const deInt j);
00043 DE_MATH_API const deFloat& elementAt(const deInt i, const deInt j) const;
00045 DE_MATH_API void operator=(const deMatrix6& m);
00047 DE_MATH_API void zero();
00049 DE_MATH_API void identity();
00051 DE_MATH_API void negate(const deMatrix6& m);
00053 DE_MATH_API void add(const deMatrix6& m1, const deMatrix6& m2);
00055 DE_MATH_API void subtract(const deMatrix6& m1, const deMatrix6& m2);
00057 DE_MATH_API void multiply(const deMatrix6& m, const deFloat s);
00059 DE_MATH_API void operator+=(const deMatrix6& m);
00061 DE_MATH_API void operator-=(const deMatrix6& m);
00063 DE_MATH_API void operator*=(const deFloat s);
00065 DE_MATH_API void transpose(const deMatrix6& m);
00067 void inverse(const deMatrix6& m);
00069 void inverseSPD(const deMatrix6& m);
00071 void ludecomp(const deMatrix6& m);
00073 void ludecompSPD(const deMatrix6& m);
00075 void multiply(const deMatrix6& m1, const deMatrix6& m2);
00077 void transposedMultiply(const deMatrix6& m1, const deMatrix6& m2);
00079 void multiplyTransposed(const deMatrix6& m1, const deMatrix6& m2);
00081 void multiplyTransposed(const deVector6& v1, const deVector6& v2);
00083 void similarityXform(const deMatrix6& L, const deMatrix6& I);
00085 void similarityXformT(const deMatrix6& L, const deMatrix6& I);
00089
00091 DE_MATH_API void set(const deTransform& t);
00093 void xform(const deTransform& t, const deMatrix6& m);
00095 void similarityRform(const deTransform& t, const deMatrix6& L);
00097 void similarityXform(const deTransform& t, const deMatrix6& I);
00099 void similarityXformT(const deTransform& t, const deMatrix6& I);
00101 void similarityXformInv(const deTransform& t, const deMatrix6& I);
00102
00103
00104 private:
00105 deMatrix3 _mat3[4];
00106 };
00107
00108 #endif // _deMatrix6_h