26 #include <boost/unordered_set.hpp>
27 #include <boost/ptr_container/ptr_vector.hpp>
32 class Dt3dBoundingVolume;
37 template <
typename T_Collision>
87 virtual void setObjectToIgnore(
const DtVrfObject* vrfObject);
91 virtual void addObjectObstructionID(
const DtObjectType& objectObstructionID);
92 virtual void removeObjectObstructionID(
const DtObjectType& objectObstructionID);
112 virtual bool detectPotentialCollision(Dt3dBoundingVolume& collisionBv,
113 const DtVector& localPosition,
const DtDcm& bvOrientation,
118 virtual bool detectAllEntityCollisions(Dt3dBoundingVolume& collisionBv,
119 const DtVector& localPosition,
const DtDcm& bvOrientation,
120 std::list<DtBoost::shared_ptr<DtEntityCollision> >& collisionList);
141 virtual bool getObjectObstructions(Dt3dBoundingVolume& boundingVolume,
142 const DtVector& bvLocation,
const DtDcm& bvOrientation,
155 virtual bool vrfObjectObstructionPredicate(
const DtVrfObject& vrfObjectToTest)
const;
166 virtual bool checkForCollision(Dt3dBoundingVolume& collisionBV,
168 const DtDcm& bvOrientation)
const;
179 bool detectNewClosestCollision(Dt3dBoundingVolume& collisionBV,
DtCollision*& potentialCollision,
180 const DtVector& localPosition,
const DtDcm& bvOrientation)
const;
191 bool detectObjectCollision(Dt3dBoundingVolume& collisionBV,
193 const DtDcm& bvOrientation)
const;
194 bool detectFeatureCollision(Dt3dBoundingVolume& collisionBV,
228 double distanceSquared,
229 double& actualDistanceSquared);
235 template <
typename T_Collision>
254 template <
typename T_Collision>
269 #define callbackList_inl_
270 #include "vrfmodel/collisionDetector.inl"
271 #undef callbackList_inl_
DtFeatureTypeContainer myObstructionTypes
Feature obstructions.
Definition: collisionDetector.h:210
boost::unordered_set< const DtVrfObject * > DtObjectObstructionContainer
Definition: collisionDetector.h:60
Abstract base class used by DtCollisionDetector as a functor when finding collisions.
Definition: collisionDetector.h:38
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
bool DtSameOrAttached(const DtVrfObject *primaryEntity, const DtVrfObject &secondaryEntity)
Determines if the specified secondary entity is part of or attached to the primary entity...
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtCollisionProcessor()
Definition: collisionDetector.h:41
virtual ~DtAllCollisionProcessor()
std::list< DtRwString > DtFeatureTypeContainer
Definition: collisionDetector.h:61
*bool testInvariant() const
double myClosestCollisionDistanceSquared
Definition: collisionDetector.h:248
std::list< DtBoost::shared_ptr< T_Collision > > DtCollisionList
Definition: collisionDetector.h:258
virtual T_Collision * closestCollision()
DtSimManager * mySimManager
Definition: collisionDetector.h:207
Definition: objectType.h:27
virtual ~DtCollisionProcessor()
Definition: collisionDetector.h:42
virtual void processCollision(const T_Collision &collision)
bool DtWithinDistance(const DtVector &startLocation, const DtVector &endLocation, double offset, double distanceSquared, double &actualDistanceSquared)
std::set< DtObjectType > DtObjectObstructionIDContainer
Definition: collisionDetector.h:59
DtObjectObstructionIDContainer myObjectObstructionIDs
The object obstruction IDs.
Definition: collisionDetector.h:205
T_Collision * myClosestCollision
Definition: collisionDetector.h:247
const DtVrfObject * myObjectToIgnore
This object (if set) will not be reported as a collision.
Definition: collisionDetector.h:215
The DtCollisionDetector is a class used to detect collisions between a specified list of obstructions...
Definition: collisionDetector.h:55
Collision processor used by DtCollisionDetector which finds only the closest collision.
Definition: collisionDetector.h:236
DtClosestCollisionProcessor(T_Collision *initialCollision=0)
Definition: collision.h:24
DtCollisionProcessor which collects a list of all the processed collisions and returns that...
Definition: collisionDetector.h:255
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
virtual ~DtClosestCollisionProcessor()
voidpf uLong offset
Definition: ioapi.h:42
boost::shared_ptr< MAKVRinTerra::DtAreaFeatureSet::List > myObstructions
Definition: collisionDetector.h:211
DtAllCollisionProcessor(DtCollisionList &collisionList)
virtual void processCollision(const T_Collision &collision)
DtCollisionList & myCollisionList
Definition: collisionDetector.h:266
virtual void processCollision(const T_Collision &collision)=0