This is the base class for collision models, defining their common interface. More...
#include "CollisionModel_base.hpp"
Public Member Functions  
virtual  ~CollisionModelT () 
The (virtual) destructor. More...  
virtual BoundingBox3dT  GetBoundingBox () const =0 
Returns the bounding box of this collision model. More...  
virtual unsigned long  GetContents () const =0 
Returns the contents of this collision model. More...  
virtual void  SaveToFile (std::ostream &OutFile, SceneGraph::aux::PoolT &Pool) const =0 
Saves the model to OutFile. More...  
virtual void  TraceConvexSolid (const TraceSolidT &TraceSolid, const Vector3dT &Start, const Vector3dT &Ray, unsigned long ClipMask, TraceResultT &Result) const =0 
Traces the given TraceSolidT instance from Start along Ray (up to the input value of Result.Fraction) through the collision model, and reports the first collision, if any. More...  
virtual unsigned long  GetContents (const Vector3dT &Point, double BoxRadius, unsigned long ContMask) const =0 
Determines the volume contents of the model at the given point / in the given box. More...  
virtual btCollisionShape *  GetBulletAdapter () const =0 
Returns an adapter class for using CollisionModelT instances also as Bullet btCollisionShape instances. More...  
This is the base class for collision models, defining their common interface.

inlinevirtual 
The (virtual) destructor.

pure virtual 
Returns the bounding box of this collision model.
Implemented in cf::ClipSys::CollisionModelStaticT, and cf::ClipSys::CollisionModelAnimT.

pure virtual 
Returns an adapter class for using CollisionModelT instances also as Bullet btCollisionShape instances.
Implemented in cf::ClipSys::CollisionModelStaticT, and cf::ClipSys::CollisionModelAnimT.

pure virtual 
Returns the contents of this collision model.
Implemented in cf::ClipSys::CollisionModelStaticT, and cf::ClipSys::CollisionModelAnimT.

pure virtual 
Determines the volume contents of the model at the given point / in the given box.
The function considers all brush volumes in the collision model that contain the given point or intersect the given box, and returns their combined ("or'ed") contents.
Point  The point in model space at which the volume contents of this model is to be determined. 
BoxRadius  When nonzero, this is the radius of an imaginary box around Point. 
ContMask  Only volumes whose contents matches this mask participate in the test. This is for optimization, because it allows the implementation to cull volumes that are not of interest early. 
Implemented in cf::ClipSys::CollisionModelStaticT, and cf::ClipSys::CollisionModelAnimT.

pure virtual 
Saves the model to OutFile.
TODO: Review serialization/deser. of class hierarchies (e.g. compare to cf::SceneGraph)! Right now this is fixed and works for CollisionModelStaticTs only!!!
Implemented in cf::ClipSys::CollisionModelStaticT, and cf::ClipSys::CollisionModelAnimT.

pure virtual 
Traces the given TraceSolidT instance from Start along Ray (up to the input value of Result.Fraction) through the collision model, and reports the first collision, if any.
TraceSolid  The TraceSolidT instance that is traced from Start along Ray. 
Start  The start point in model space where the trace begins. 
Ray  The ray along which the trace is performed. Note that with F being the input value of Result.Fraction, the endpoint is at Start+Ray*F. 
ClipMask  Only surfaces whose clip flags match this mask participate in the test. This is for optimization, because it allows the implementation to cull surfaces that are not of interest early. 
Result  The start value of Fraction is input via this reference, and the result of the trace returned. Using an input/output parameter for returning the result, rather than a true return type, suggests itself because it makes cascaded calls to this function natural (i.e. from (possibly many) superobjects and to (possibly many) subobjects). 
Implemented in cf::ClipSys::CollisionModelStaticT, and cf::ClipSys::CollisionModelAnimT.