24 #include <boost/ptr_container/ptr_vector.hpp>
34 class Dt3dBoundingVolume;
39 template <
typename T_Collision>
81 virtual void setObjectToIgnore(
const DtSimObject* vrfObject);
85 virtual void addObjectObstructionID(
const DtEntityType& objectObstructionType);
86 virtual void removeObjectObstructionID(
const DtEntityType& objectObstructionType);
106 virtual bool detectPotentialCollision(
const Dt3dBoundingVolume& collisionBv,
107 const DtVector& localPosition,
const DtDcm& bvOrientation,
112 virtual bool detectAllEntityCollisions(
const Dt3dBoundingVolume& collisionBv,
113 const DtVector& localPosition,
const DtDcm& bvOrientation,
114 std::list<std::shared_ptr<DtEntityCollision> >& collisionList);
135 virtual bool getObjectObstructions(Dt3dBoundingVolume& boundingVolume,
136 const DtVector& bvLocation,
const DtDcm& bvOrientation,
149 virtual bool vrfObjectObstructionPredicate(
const DtSimObject& vrfObjectToTest)
const;
160 virtual bool checkForCollision(
const Dt3dBoundingVolume& collisionBV,
161 DtCollision& potentialCollision,
const DtVector& localPosition,
162 const DtDcm& bvOrientation)
const;
173 bool detectNewClosestCollision(
const Dt3dBoundingVolume& collisionBV,
DtCollision*& potentialCollision,
174 const DtVector& localPosition,
const DtDcm& bvOrientation)
const;
185 bool detectObjectCollision(
const Dt3dBoundingVolume& collisionBV,
187 const DtDcm& bvOrientation)
const;
188 bool detectFeatureCollision(
const Dt3dBoundingVolume& collisionBV,
195 bool testInvariant()
const;
220 const DtVector& endLocation,
222 double distanceSquared,
223 double& actualDistanceSquared);
229 template <
typename T_Collision>
248 template <
typename T_Collision>
263 #define callbackList_inl_
264 #include "vrfmodel/collisionDetector.inl"
265 #undef callbackList_inl_
DtFeatureTypeContainer myObstructionTypes
Feature obstructions.
Definition: collisionDetector.h:204
Abstract base class used by DtCollisionDetector as a functor when finding collisions.
Definition: collisionDetector.h:40
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtCollisionProcessor()
Definition: collisionDetector.h:43
virtual ~DtClosestCollisionProcessor() override
const DtSimulationServices * mySimulationServices
Definition: collisionDetector.h:201
std::list< DtRwString > DtFeatureTypeContainer
Definition: collisionDetector.h:63
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:209
double myClosestCollisionDistanceSquared
Definition: collisionDetector.h:242
virtual T_Collision * closestCollision()
std::set< DtEntityType > DtObjectObstructionIDContainer
Definition: collisionDetector.h:61
virtual void processCollision(const T_Collision &collision) override
virtual ~DtCollisionProcessor()
Definition: collisionDetector.h:44
bool DtWithinDistance(const DtVector &startLocation, const DtVector &endLocation, double offset, double distanceSquared, double &actualDistanceSquared)
std::shared_ptr< MAKVRinTerra::DtAreaFeatureSet::List > myObstructions
Definition: collisionDetector.h:205
T_Collision * myClosestCollision
Definition: collisionDetector.h:241
The DtCollisionDetector is a class used to detect collisions between a specified list of obstructions...
Definition: collisionDetector.h:57
Collision processor used by DtCollisionDetector which finds only the closest collision.
Definition: collisionDetector.h:230
DtClosestCollisionProcessor(T_Collision *initialCollision=0)
std::vector< const DtSimObject * > DtObjectObstructionContainer
Definition: collisionDetector.h:62
Definition: collision.h:25
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
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:80
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.
DtObjectObstructionIDContainer myObjectObstructionTypes
The object obstruction typess.
Definition: collisionDetector.h:199
std::list< std::shared_ptr< T_Collision > > DtCollisionList
Definition: collisionDetector.h:252
virtual void processCollision(const T_Collision &collision) override
DtCollisionProcessor which collects a list of all the processed collisions and returns that...
Definition: collisionDetector.h:249
voidpf uLong offset
Definition: ioapi.h:42
DtAllCollisionProcessor(DtCollisionList &collisionList)
virtual ~DtAllCollisionProcessor() override
DtCollisionList & myCollisionList
Definition: collisionDetector.h:260
virtual void processCollision(const T_Collision &collision)=0