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(
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,
201 bool testInvariant()
const;
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_