00001 00012 #ifndef __GEOM_VEC_H__ 00013 #define __GEOM_VEC_H__ 00014 00015 #include <geom_point.h> 00016 00017 #include <node_vec.h> 00018 00022 #define NULL_GEOM_VEC GeomPoint(0, 0, 0) 00023 00029 class GeomVec : public GeomPoint { 00030 public: 00036 GeomVec(GeomPoint p); 00037 00046 GeomVec(GeomVec pStart, GeomVec pEnd); 00047 00056 static Coordinate det(GeomVec a, GeomVec b, GeomVec c); 00057 00065 Coordinate getAngle(GeomVec v); 00066 00074 GeomVec getNormalize(); 00075 00080 Coordinate getSqrLength(); 00081 00086 bool isNullVec(); 00087 00094 GeomVec vec_prod(GeomVec v); 00095 00101 GeomVec operator -(); 00102 }; 00103 00111 GeomVec operator-(GeomVec p1, GeomVec p2); 00112 00120 GeomVec operator+(GeomVec p1, GeomVec p2); 00121 00128 GeomVec operator*(double r, GeomVec p); 00129 00137 Coordinate operator*(GeomVec p1, GeomVec p2); 00138 00139 #endif // ! __GEOM_VEC_H__