Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

coldet.h

Go to the documentation of this file.
00001 
00010 #ifndef H_COLDET
00011 #define H_COLDET
00012 
00013 #ifndef EXPORT
00014 #define EXPORT
00015 #endif
00016 
00026 class CollisionModel3D
00027 {
00028 public:
00029   virtual ~CollisionModel3D() {}
00030 
00033   virtual void setTriangleNumber(int num) = 0;
00034 
00037   virtual void addTriangle(float x1, float y1, float z1,
00038                            float x2, float y2, float z2,
00039                            float x3, float y3, float z3) = 0;
00040   virtual void addTriangle(float v1[3], float v2[3], float v3[3]) = 0;
00041 
00043   virtual void finalize() = 0;
00044 
00047   virtual void setTransform(float m[16]) = 0;
00048 
00063   virtual bool collision(CollisionModel3D* other,
00064                          int AccuracyDepth=-1,
00065                          int MaxProcessingTime=0,
00066                          float* other_transform=0) = 0;
00067 
00079   virtual bool rayCollision(float origin[3],
00080                             float direction[3],
00081                             bool closest=false,
00082                             float segmin=0.0f,
00083                             float segmax=3.4e+38F) = 0;
00084 
00089   virtual bool sphereCollision(float origin[3],
00090                                float radius) = 0;
00091 
00100   virtual bool getCollidingTriangles(float t1[9], float t2[9], bool ModelSpace=true) = 0;
00101 
00106   virtual bool getCollidingTriangles(int& t1, int& t2) = 0;
00107 
00115   virtual bool getCollisionPoint(float p[3], bool ModelSpace=true) = 0;
00116 };
00117 
00121 class TimeoutExpired {};
00122 
00128 class Inconsistency {};
00129 
00137 EXPORT CollisionModel3D* newCollisionModel3D(bool Static=false);
00138 
00139 
00140 
00142 // Utility Functions
00144 
00150 bool SphereRayCollision(float center[3], float radius,
00151                         float origin[3], float direction[3],
00152                         float point[3]);
00153 
00155 bool SphereSphereCollision(float c1[3], float r1,
00156                            float c2[3], float r2);
00157 
00158 
00159 
00160 #endif // H_COLDET

Generated at Sat Nov 18 00:15:14 2000 for coldet by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000