00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GEOM_VECMAT4_OP_HH
00020 #define GEOM_VECMAT4_OP_HH
00021
00022 #include "constants.hh"
00023
00024 #include <ost/geom/module_config.hh>
00025
00026 namespace geom {
00027
00028 class Vec4;
00029 class Mat4;
00030
00032 Real DLLEXPORT_OST_GEOM Length(const Vec4& v);
00033
00035 Real DLLEXPORT_OST_GEOM Length2(const Vec4& v);
00036
00038 bool DLLEXPORT_OST_GEOM Equal(const Vec4& v1, const Vec4& v2, Real ephilon=EPSILON);
00039
00041 bool DLLEXPORT_OST_GEOM Equal(const Mat4& m1, const Mat4& v2, Real ephilon=EPSILON);
00042
00044 Real DLLEXPORT_OST_GEOM Dot(const Vec4& v1, const Vec4& v2);
00045
00046 Vec4 DLLEXPORT_OST_GEOM Normalize(const Vec4& v);
00047
00049 Vec4 DLLEXPORT_OST_GEOM CompMultiply(const Vec4& v1, const Vec4& v2);
00050
00052 Vec4 DLLEXPORT_OST_GEOM CompDivide(const Vec4& v1, const Vec4& v2);
00053
00055 Vec4 DLLEXPORT_OST_GEOM operator*(const Vec4& v,const Mat4& m);
00057 Vec4 DLLEXPORT_OST_GEOM operator*(const Mat4& m, const Vec4& v);
00058
00059
00060 Real DLLEXPORT_OST_GEOM Comp(const Mat4& m, unsigned int i, unsigned int j);
00061
00062
00063 Real DLLEXPORT_OST_GEOM Minor(const Mat4& m, unsigned int i, unsigned int j);
00064
00065 Real DLLEXPORT_OST_GEOM Det(const Mat4& m);
00066 Mat4 DLLEXPORT_OST_GEOM Transpose(const Mat4& m);
00067 Mat4 DLLEXPORT_OST_GEOM Invert(const Mat4& m);
00068 Mat4 DLLEXPORT_OST_GEOM operator*(const Mat4& m1, const Mat4& m2);
00069 Real DLLEXPORT_OST_GEOM Angle(const Vec4& v1, const Vec4& v2);
00070
00072 Vec4 DLLEXPORT_OST_GEOM Min(const Vec4& v1, const Vec4& v2);
00073
00075 Vec4 DLLEXPORT_OST_GEOM Max(const Vec4& v1, const Vec4& v2);
00076
00077 }
00078
00079 #endif