00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _CIvfPlane_h_
00023 #define _CIvfPlane_h_
00024
00025 #include <ivfmath/IvfMathBase.h>
00026
00035 class IVFMATH_API CIvfPlane : public CIvfMathBase {
00036 private:
00037 double m_normal[3];
00038 double m_distance;
00039 public:
00041 CIvfPlane();
00042
00044 virtual ~CIvfPlane();
00045
00047 void setNormal(double vx, double vy, double vz);
00048
00050 void getNormal(double &vx, double &vy, double &vz);
00051
00053 void normalFromVectors(double* v1, double* v2);
00054
00056 void setDistance(double d);
00057
00059 double getDistance();
00060
00062 void distanceFromPoint(double x, double y, double z);
00063
00065 bool isSphereInFront(double x, double y, double z, double radius);
00066
00068 bool isInFront(double x, double y, double z);
00069
00077 void intersect(
00078 double x0, double y0, double z0,
00079 double vx, double vy, double vz,
00080 double &x, double &y, double &z);
00081 };
00082
00083 #endif