00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _deVector6_h
00024 #define _deVector6_h
00025
00033 class deVector6
00034 {
00035 public:
00037 DE_MATH_API deVector3& operator[](deInt row);
00039 DE_MATH_API const deVector3& operator[](deInt row) const;
00041 DE_MATH_API deFloat& elementAt(deInt i);
00043 DE_MATH_API const deFloat& elementAt(deInt i) const;
00045 DE_MATH_API void operator=(const deVector6& v);
00047 DE_MATH_API void zero();
00049 DE_MATH_API void negate(const deVector6& v);
00051 DE_MATH_API void add(const deVector6& v1, const deVector6& v2);
00053 DE_MATH_API void subtract(const deVector6& v1, const deVector6& v2);
00055 DE_MATH_API void multiply(const deVector6& v, const deFloat s);
00057 DE_MATH_API void multiply(const deMatrix6& m, const deVector6& v);
00059 DE_MATH_API void transposedMultiply(const deMatrix6& m, const deVector6& v);
00061 DE_MATH_API void error(const deTransform& T, const deTransform& Td);
00063 DE_MATH_API void error(const deFrame &F, const deFrame &Fd);
00065 DE_MATH_API void operator+=(const deVector6& v);
00067 DE_MATH_API void operator-=(const deVector6& v);
00069 DE_MATH_API void operator*=(const deFloat s);
00071 DE_MATH_API deFloat dot(const deVector6& v) const;
00073 DE_MATH_API void solve(const deMatrix6& m, const deVector6& y);
00075 DE_MATH_API void solveSPD(const deMatrix6& m, const deVector6& y);
00076
00080
00082
00083
00084
00085 DE_MATH_API void xform(const deTransform& t, const deVector6& v);
00087
00088
00089
00090
00091 DE_MATH_API void xformT(const deTransform& t, const deVector6& v);
00093
00094
00095
00096 DE_MATH_API void xformInvT(const deTransform& t, const deVector6& v);
00098
00099
00100
00101
00102 DE_MATH_API void xformInv(const deTransform& t, const deVector6& v);
00104
00105 DE_MATH_API void crossMultiply(const deVector6& v1, const deVector6& v2);
00106
00107
00109 void backSub(const deMatrix6& lu, const deVector6& y);
00111 void backSubSPD(const deMatrix6& lu, const deVector6& y);
00112
00113 private:
00114 deVector3 _vec3[2];
00115 };
00116
00117 #endif // _deVector6_h