25 #include <boost/unordered_set.hpp>
26 #include <boost/ptr_container/ptr_vector.hpp>
31 class Dt3dBoundingVolume;
36 template <
typename T_Collision>
78 virtual void setObjectToIgnore(
const DtSimObject* vrfObject);
82 virtual void addObjectObstructionID(
const DtObjectType& objectObstructionID);
83 virtual void removeObjectObstructionID(
const DtObjectType& objectObstructionID);
103 virtual bool detectPotentialCollision(
const Dt3dBoundingVolume& collisionBv,
104 const DtVector& localPosition,
const DtDcm& bvOrientation,
109 virtual bool detectAllEntityCollisions(
const Dt3dBoundingVolume& collisionBv,
110 const DtVector& localPosition,
const DtDcm& bvOrientation,
111 std::list<DtBoost::shared_ptr<DtEntityCollision> >& collisionList);
132 virtual bool getObjectObstructions(Dt3dBoundingVolume& boundingVolume,
133 const DtVector& bvLocation,
const DtDcm& bvOrientation,
146 virtual bool vrfObjectObstructionPredicate(
const DtSimObject& vrfObjectToTest)
const;
157 virtual bool checkForCollision(
const Dt3dBoundingVolume& collisionBV,
159 const DtDcm& bvOrientation)
const;
170 bool detectNewClosestCollision(
const Dt3dBoundingVolume& collisionBV,
DtCollision*& potentialCollision,
171 const DtVector& localPosition,
const DtDcm& bvOrientation)
const;
182 bool detectObjectCollision(
const Dt3dBoundingVolume& collisionBV,
184 const DtDcm& bvOrientation)
const;
185 bool detectFeatureCollision(
const Dt3dBoundingVolume& collisionBV,
192 bool testInvariant()
const;
219 double distanceSquared,
220 double& actualDistanceSquared);
226 template <
typename T_Collision>
245 template <
typename T_Collision>
260 #define callbackList_inl_
261 #include "vrfmodel/collisionDetector.inl"
262 #undef callbackList_inl_
DtFeatureTypeContainer myObstructionTypes
Feature obstructions.
Definition: collisionDetector.h:201
Abstract base class used by DtCollisionDetector as a functor when finding collisions.
Definition: collisionDetector.h:37
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtCollisionProcessor()
Definition: collisionDetector.h:40
virtual ~DtAllCollisionProcessor()
const DtSimulationServices * mySimulationServices
Definition: collisionDetector.h:198
std::list< DtRwString > DtFeatureTypeContainer
Definition: collisionDetector.h:60
const DtSimObject * myObjectToIgnore
This object (if set) will not be reported as a collision. Typically, this is the object that the coll...
Definition: collisionDetector.h:206
double myClosestCollisionDistanceSquared
Definition: collisionDetector.h:239
std::list< DtBoost::shared_ptr< T_Collision > > DtCollisionList
Definition: collisionDetector.h:249
virtual T_Collision * closestCollision()
Definition: objectType.h:27
virtual ~DtCollisionProcessor()
Definition: collisionDetector.h:41
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:58
DtObjectObstructionIDContainer myObjectObstructionIDs
The object obstruction IDs.
Definition: collisionDetector.h:196
T_Collision * myClosestCollision
Definition: collisionDetector.h:238
The DtCollisionDetector is a class used to detect collisions between a specified list of obstructions...
Definition: collisionDetector.h:54
Collision processor used by DtCollisionDetector which finds only the closest collision.
Definition: collisionDetector.h:227
DtClosestCollisionProcessor(T_Collision *initialCollision=0)
std::vector< const DtSimObject * > DtObjectObstructionContainer
Definition: collisionDetector.h:59
Definition: collision.h:25
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:79
bool DtSameOrAttached(const DtSimObject *primaryEntity, const DtSimObject &secondaryEntity)
Determines if the specified secondary entity is part of or attached to the primary entity...
Contains the DtSimComponent class declaration.
DtCollisionProcessor which collects a list of all the processed collisions and returns that...
Definition: collisionDetector.h:246
virtual ~DtClosestCollisionProcessor()
voidpf uLong offset
Definition: ioapi.h:42
boost::shared_ptr< MAKVRinTerra::DtAreaFeatureSet::List > myObstructions
Definition: collisionDetector.h:202
DtAllCollisionProcessor(DtCollisionList &collisionList)
virtual void processCollision(const T_Collision &collision)
DtCollisionList & myCollisionList
Definition: collisionDetector.h:257
virtual void processCollision(const T_Collision &collision)=0