00001 // rdPlane.h 00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 // Copyright 2002 Realistic Dynamics, Inc. 00004 // All rights reserved. 00005 // 00006 // Please do not read, copy, distribute, or use without permission. 00007 // Contact: Frank C. Anderson, fca@RealisticDynamics.com 00008 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00009 #ifndef __rdPlane_h__ 00010 #define __rdPlane_h__ 00011 00012 // INCLUDES 00013 #include "rdTools.h" 00014 #include "rdObject.h" 00015 00016 class rdLine; 00017 00018 //============================================================================= 00019 //============================================================================= 00023 class RDTOOLS_API rdPlane : public rdObject 00024 { 00025 //============================================================================= 00026 // DATA 00027 //============================================================================= 00028 private: 00030 double _point[3]; 00032 double _normal[3]; 00033 00034 //============================================================================= 00035 // METHODS 00036 //============================================================================= 00037 public: 00038 //-------------------------------------------------------------------------- 00039 // CONSTRUCTION 00040 //-------------------------------------------------------------------------- 00041 rdPlane(double aPX,double aPY,double aPZ, 00042 double aP2X,double aP2Y,double aP2Z, 00043 double aP3X,double aP3Y,double aP3Z); 00044 rdPlane(double aPX,double aPY,double aPZ,const double aNormal[3]); 00045 virtual ~rdPlane(); 00046 private: 00047 void setNull(); 00048 00049 //-------------------------------------------------------------------------- 00050 // GET AND SET 00051 //-------------------------------------------------------------------------- 00052 public: 00053 void setPoint(double aPX,double aPY,double aPZ); 00054 void getPoint(double rPoint[3]) const; 00055 void setNormal(const double aNormal[3]); 00056 void getNormal(double rNormal[3]) const; 00057 00058 //-------------------------------------------------------------------------- 00059 // ANALYTIC GEOMETRY 00060 //-------------------------------------------------------------------------- 00061 int computeIntersection(const rdLine *aLine,double rPoint[3]) const; 00062 00063 //============================================================================= 00064 }; // END class rdPlane 00065 //============================================================================= 00066 //============================================================================= 00067 00068 #endif // __rdPlane_h__
1.3