00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GEOM_VECMAT3_OP_HH
00020 #define GEOM_VECMAT3_OP_HH
00021
00022 #include <ostream>
00023 #include "constants.hh"
00024
00025 #include <ost/geom/module_config.hh>
00026
00027 namespace geom {
00028
00029 class Vec3;
00030 class Mat3;
00031
00033 Real DLLEXPORT_OST_GEOM Length(const Vec3& v);
00034
00036 Real DLLEXPORT_OST_GEOM Length2(const Vec3& v);
00037
00039 bool DLLEXPORT_OST_GEOM Equal(const Vec3& v1, const Vec3& v2,
00040 Real ephilon=EPSILON);
00041
00043 bool DLLEXPORT_OST_GEOM Equal(const Mat3& m1, const Mat3& m2,
00044 Real ephilon=EPSILON);
00045
00047 Real DLLEXPORT_OST_GEOM Dot(const Vec3& v1, const Vec3& v2);
00048
00050 Vec3 DLLEXPORT_OST_GEOM Normalize(const Vec3& v);
00051
00053 Vec3 DLLEXPORT_OST_GEOM Cross(const Vec3& v1, const Vec3& v2);
00054
00056 Vec3 DLLEXPORT_OST_GEOM CompMultiply(const Vec3& v1, const Vec3& v2);
00057
00059 Vec3 DLLEXPORT_OST_GEOM CompDivide(const Vec3& v1, const Vec3& v2);
00060
00062 Vec3 DLLEXPORT_OST_GEOM operator*(const Vec3& v,const Mat3& m);
00064 Vec3 DLLEXPORT_OST_GEOM operator*(const Mat3& m, const Vec3& v);
00065
00067 Mat3 DLLEXPORT_OST_GEOM operator*(const Mat3& m1, const Mat3& m2);
00068
00069 Mat3 DLLEXPORT_OST_GEOM Invert(const Mat3& m);
00070 Mat3 DLLEXPORT_OST_GEOM Transpose(const Mat3& m);
00071
00072
00073 Real DLLEXPORT_OST_GEOM Comp(const Mat3& m, unsigned int i, unsigned int j);
00074
00075
00076 Real DLLEXPORT_OST_GEOM Minor(const Mat3& m, unsigned int i, unsigned int j);
00077
00078
00079 Real DLLEXPORT_OST_GEOM Det(const Mat3& m);
00080
00081
00082 Real DLLEXPORT_OST_GEOM Angle(const Vec3& v1, const Vec3& v2);
00083
00084 Mat3 DLLEXPORT_OST_GEOM EulerTransformation(Real theta, Real phi, Real xi);
00085
00086 Mat3 DLLEXPORT_OST_GEOM AxisRotation(const Vec3& axis, Real angle);
00087
00091 Vec3 DLLEXPORT_OST_GEOM OrthogonalVector(const Vec3& axis);
00092
00094 Vec3 DLLEXPORT_OST_GEOM Min(const Vec3& v1, const Vec3& v2);
00095
00097 Vec3 DLLEXPORT_OST_GEOM Max(const Vec3& v1, const Vec3& v2);
00098
00100 Real DLLEXPORT_OST_GEOM Distance(const Vec3& p1, const Vec3& p2);
00101
00102 }
00103
00104 #endif