OBJECTCOLLISION Class Reference

#include <objects.h>

Collaboration diagram for OBJECTCOLLISION:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ~OBJECTCOLLISION ()
void AddColNode (OBJECTNODE *newobject, short *newvi)
bool CollideDriveable (VERTEX origin, VERTEX direction, VERTEX &outtri, bool closest, VERTEX &normal)
bool CollideAABB (VERTEX origin, VERTEX direction, VERTEX &outtri, bool closest, VERTEX &normal, float seglen, OBJECTNODE *&colnode)
bool CollideAABB_double (VERTEXD origin, VERTEXD direction, VERTEXD &outtri, bool closest, VERTEXD &normal, double seglen)
bool CollideModelAABB (VERTEX *modelverts, int numfaces, AABB modelbbox, VERTEX &outtri, bool closest, VERTEX &normal, float &depth)
void GenerateCollisionTree ()
void Clear ()
void GetTrisInBBox (AABB bbox, list< OBJECTTRI > &trilist)

Private Member Functions

void GenerateBranches (OBJCOLBRANCH *branch)
bool CollideBranch (VERTEX origin, VERTEX direction, VERTEX &outtri, bool closest, OBJCOLBRANCH *branch, VERTEX &normal, float seglen, int &testcount, OBJECTNODE *&colnode)
bool CollideBranch_double (VERTEXD origin, VERTEXD direction, VERTEXD &outtri, bool closest, OBJCOLBRANCH *branch, VERTEXD &normal, double seglen)
bool CollideBranchModel (VERTEX *modelverts, int numfaces, AABB &modelbbox, VERTEX &outtri, bool closest, OBJCOLBRANCH *branch, VERTEX &normal, float &depth, int &testcount)
bool CollideBranchGetTrisInBBox (AABB bbox, list< OBJECTTRI > &trilist, OBJCOLBRANCH *branch)

Private Attributes

list< OBJCOLNODEcolnodes
list< OBJCOLNODEdrvnodes
OBJCOLBRANCH coltree

Detailed Description

Definition at line 100 of file objects.h.


Constructor & Destructor Documentation

OBJECTCOLLISION::~OBJECTCOLLISION  ) 
 

Definition at line 1049 of file objects.cpp.

References Clear().


Member Function Documentation

void OBJECTCOLLISION::AddColNode OBJECTNODE newobject,
short *  newvi
 

Definition at line 641 of file objects.cpp.

References OBJECTNODE::cancollide, COLLIDE_AND_DRIVE_TOGETHER, colnodes, OBJECTNODE::driveable, drvnodes, OBJCOLNODE::object, and OBJCOLNODE::vertexIndex.

void OBJECTCOLLISION::Clear  ) 
 

Definition at line 1042 of file objects.cpp.

References colnodes, coltree, OBJCOLBRANCH::DeleteChildren(), and drvnodes.

Referenced by OBJECTS::LoadObjectsFromFolder(), and ~OBJECTCOLLISION().

bool OBJECTCOLLISION::CollideAABB VERTEX  origin,
VERTEX  direction,
VERTEX outtri,
bool  closest,
VERTEX normal,
float  seglen,
OBJECTNODE *&  colnode
 

Definition at line 1069 of file objects.cpp.

References CollideBranch(), coltree, and VERTEX::z.

Referenced by OBJECTS::Collide().

bool OBJECTCOLLISION::CollideAABB_double VERTEXD  origin,
VERTEXD  direction,
VERTEXD outtri,
bool  closest,
VERTEXD normal,
double  seglen
 

Definition at line 1094 of file objects.cpp.

References CollideBranch_double(), coltree, and VERTEXD::z.

Referenced by OBJECTS::CollideD().

bool OBJECTCOLLISION::CollideBranch VERTEX  origin,
VERTEX  direction,
VERTEX outtri,
bool  closest,
OBJCOLBRANCH branch,
VERTEX normal,
float  seglen,
int &  testcount,
OBJECTNODE *&  colnode
[private]
 

Definition at line 1106 of file objects.cpp.

References VERTEX::DebugPrint(), VERTEX::dot(), INTERSECT_FUNCTION, OBJCOLBRANCH::leaves, OBJCOLBRANCH::left, VERTEX::normalize(), NULL, OBJCOLBRANCH::right, VERTEX::Scale(), VERTEX::ScaleR(), VERTEX::Set(), VERTEX::v3(), and VERTEX::z.

Referenced by CollideAABB().

bool OBJECTCOLLISION::CollideBranch_double VERTEXD  origin,
VERTEXD  direction,
VERTEXD outtri,
bool  closest,
OBJCOLBRANCH branch,
VERTEXD normal,
double  seglen
[private]
 

Definition at line 1293 of file objects.cpp.

References VERTEXD::dot(), UTILITY::IntersectTriangleD(), OBJCOLBRANCH::leaves, OBJCOLBRANCH::left, VERTEXD::normalize(), NULL, OBJCOLBRANCH::right, VERTEXD::Scale(), VERTEXD::ScaleR(), VERTEXD::Set(), utility, VERTEXD::v3(), VERTEXD::x, VERTEXD::y, and VERTEXD::z.

Referenced by CollideAABB_double().

bool OBJECTCOLLISION::CollideBranchGetTrisInBBox AABB  bbox,
list< OBJECTTRI > &  trilist,
OBJCOLBRANCH branch
[private]
 

Definition at line 1888 of file objects.cpp.

References OBJCOLBRANCH::leaves, OBJCOLBRANCH::left, NULL, OBJCOLBRANCH::right, VERTEX::Set(), OBJECTTRI::v2, and OBJECTTRI::v3.

Referenced by GetTrisInBBox().

bool OBJECTCOLLISION::CollideBranchModel VERTEX modelverts,
int  numfaces,
AABB modelbbox,
VERTEX outtri,
bool  closest,
OBJCOLBRANCH branch,
VERTEX normal,
float &  depth,
int &  testcount
[private]
 

Definition at line 1495 of file objects.cpp.

References UTILITY::BruteForceTriangleIntersectionF(), VERTEX::DebugPrint(), AABB::GetCenter(), OBJCOLBRANCH::leaves, OBJCOLBRANCH::left, UTILITY::MollerTriTriIsectWithLine(), NULL, OBJCOLBRANCH::right, VERTEX::Scale(), VERTEX::Set(), utility, VERTEX::v3(), VERTEX::x, VERTEX::y, and VERTEX::z.

Referenced by CollideModelAABB().

bool OBJECTCOLLISION::CollideDriveable VERTEX  origin,
VERTEX  direction,
VERTEX outtri,
bool  closest,
VERTEX normal
 

Definition at line 673 of file objects.cpp.

References VERTEX::dot(), drvnodes, INTERSECT_FUNCTION, VERTEX::normalize(), VERTEX::Scale(), VERTEX::ScaleR(), VERTEX::Set(), VERTEX::v3(), and VERTEX::z.

Referenced by OBJECTS::CollideDriveable().

bool OBJECTCOLLISION::CollideModelAABB VERTEX modelverts,
int  numfaces,
AABB  modelbbox,
VERTEX outtri,
bool  closest,
VERTEX normal,
float &  depth
 

Definition at line 1054 of file objects.cpp.

References CollideBranchModel(), coltree, VERTEX::normalize(), and VERTEX::zero().

Referenced by OBJECTS::CollideModel().

void OBJECTCOLLISION::GenerateBranches OBJCOLBRANCH branch  )  [private]
 

Definition at line 851 of file objects.cpp.

References OBJCOLBRANCH::leaves, and VERTEX::Set().

void OBJECTCOLLISION::GenerateCollisionTree  ) 
 

Definition at line 797 of file objects.cpp.

References colnodes, coltree, OBJCOLBRANCH::DeleteChildren(), OBJCOLBRANCH::leaves, OBJCOLBRANCH::left, NULL, and OBJCOLBRANCH::right.

void OBJECTCOLLISION::GetTrisInBBox AABB  bbox,
list< OBJECTTRI > &  trilist
 

Definition at line 1883 of file objects.cpp.

References CollideBranchGetTrisInBBox(), and coltree.

Referenced by OBJECTS::GetTrisInBBox().


Member Data Documentation

list<OBJCOLNODE> OBJECTCOLLISION::colnodes [private]
 

Definition at line 116 of file objects.h.

Referenced by AddColNode(), Clear(), and GenerateCollisionTree().

OBJCOLBRANCH OBJECTCOLLISION::coltree [private]
 

Definition at line 119 of file objects.h.

Referenced by Clear(), CollideAABB(), CollideAABB_double(), CollideModelAABB(), GenerateCollisionTree(), and GetTrisInBBox().

list<OBJCOLNODE> OBJECTCOLLISION::drvnodes [private]
 

Definition at line 117 of file objects.h.

Referenced by AddColNode(), Clear(), and CollideDriveable().


The documentation for this class was generated from the following files:
Generated on Thu Oct 19 04:12:12 2006 by  doxygen 1.4.6