18 #include <vlutil/vlSmartPointers.h>
20 #include <tbb/spin_rw_mutex.h>
23 #include <unordered_map>
25 #include <BulletCollision/CollisionShapes/btTriangleCallback.h>
88 const boost::shared_ptr<btCollisionObject>&
object,
89 short int objectGroup = btBroadphaseProxy::DefaultFilter);
93 short int objectGroup = btBroadphaseProxy::DefaultFilter);
96 const boost::shared_ptr<btCollisionObject>& collisionObject);
115 short int filterMask = btBroadphaseProxy::AllFilter)
const;
123 short int filterMask = btBroadphaseProxy::AllFilter)
const;
188 virtual void processTriangle(btVector3* triangle,
int partId,
int triangleIndex);
189 virtual void setTransform(btTransform* transform);
virtual void enableHiddenCollisionObjectInWorld()
Reset all hidden geometries that have associated FID (to be used on rewind for example) ...
virtual void setFidHideFunction(std::function< bool(const long long)> fcn)
Set the function that collision world will use to determine if FIDs are hidden or not...
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtTriangleOutputInterface & myOutput
Definition: collisionWorld.h:193
virtual void notifyFidListMonitors()
Notifies all monitors on the FID List Monitor list of a FID list change.
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords. This is useful for followi...
Definition: vrfChordIntersectRecordList.h:31
virtual const Coordinate_System * coordinateSystem()
virtual void deleteInternalMemberVariables()
delete internal member variables
Definition: collisionWorld.h:181
virtual void addCollisionObjectToWorld(const boost::shared_ptr< btCollisionObject > &object, short int objectGroup=btBroadphaseProxy::DefaultFilter)
A version of btTriangleMesh that also holds soil type for each polygon.
Definition: bvhTriangleMeshShape.h:28
virtual void setCoordinateSystem(const Coordinate_System *cs)
const DtTerrainProcessPolygonsBox * myBox
Definition: collisionWorld.h:195
virtual long numberOfUnloadableTerrainTriangles() const
Return the number of terrain triangles that are loaded initially and are not part of the terrain page...
virtual unsigned collisionObjectCount()
btCollisionConfiguration * myCollisionConfiguration
Definition: collisionWorld.h:166
DtCollisionWorld & operator=(const DtCollisionWorld &)
Not implemented.
void * myVrfUsr
Definition: collisionWorld.h:198
virtual unsigned int removeCollisionObjectsFromWorld(const DtCollisionObjectList &)
virtual bool updateWorldTransform(btCollisionObject *obj, const btTransform &)
virtual bool chordIntersect(const DtChord &chord, DtVrfChordIntersectionRecord &record, bool &dataAvailalbe, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, short int filterMask=btBroadphaseProxy::AllFilter) const
The dataAvailable flag will be set to false if this intersection encounters some data that cannot be ...
virtual void addCollisionObjectsToWorld(const DtCollisionObjectList &object, short int objectGroup=btBroadphaseProxy::DefaultFilter)
virtual bool allIntersectsAlongChord(const DtChord &chord, DtVrfChordIntersectRecordList &intList, bool &dataAvailable, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, short int filterMask=btBroadphaseProxy::AllFilter) const
The dataAvailable flag will be set to false if this intersection encounters some data that cannot be ...
Definition: coordSystem.h:54
Mutex myMutex
Definition: collisionWorld.h:177
FidToCollisionOjectMap myFidToCollisionOjectMap
Definition: collisionWorld.h:173
std::list< std::weak_ptr< DtFidListMonitorImpl > > myFidListMonitorList
Definition: collisionWorld.h:174
virtual bool isFidHidden(const long long fid)
const Coordinate_System * myCoordinateSystem
Definition: collisionWorld.h:163
virtual void initialize()
std::set< boost::shared_ptr< btCollisionObject > > CollisionObjectSet
Definition: collisionWorld.h:160
std::unordered_multimap< long long, boost::shared_ptr< btCollisionObject > > FidToCollisionOjectMap
map FID / collision object
Definition: collisionWorld.h:172
Definition: bulletUtil.h:51
virtual unsigned int removeCollisionObjectFromWorld(const boost::shared_ptr< btCollisionObject > &collisionObject)
A monitor class returned by DtCollisionWorld that a user may use to monitor for changes to the list o...
Definition: collisionWorld.h:47
Definition: vrfChordIntersectionRecord.h:19
tbb::spin_rw_mutex Mutex
Definition: collisionWorld.h:176
Definition: intersectionRecord.h:60
btTransform * myTransform
Definition: collisionWorld.h:194
btCollisionDispatcher * myCollisionDispatcher
Definition: collisionWorld.h:168
std::atomic< bool > myChanged
Definition: collisionWorld.h:58
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
const DtCollisionObjectInterface * myCollisionObject
Definition: collisionWorld.h:196
CollisionObjectSet myCollisionObjects
Definition: collisionWorld.h:161
long myNumberOfUnloadableTerrainTriangles
Definition: collisionWorld.h:169
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea. This object should always be created on the stack.
Definition: terrainProcessPolygonsBox.h:113
This class contains a Bullet btCollisionWorld, and also maintains ownership of the collision objects ...
Definition: collisionWorld.h:40
virtual void processTrianglesInArea(DtBulletTriangleCallback &)
virtual ~DtCollisionWorld()
const DtTriangleMeshWithSoil * myMesh
Definition: collisionWorld.h:197
btBroadphaseInterface * myBroadphaseInterface
Definition: collisionWorld.h:167
std::function< bool(const long long)> myHiddenFidFcn
Definition: collisionWorld.h:178
virtual void setNumberOfUnloadableTerrainTriangles(long value)
Set the number of terrain triangles that are loaded initially and are not part of the terrain pager s...
std::list< boost::shared_ptr< btCollisionObject > > DtCollisionObjectList
Definition: bulletUtil.h:49
virtual btCollisionWorld * bulletCollisionWorld()
virtual std::shared_ptr< DtFidListMonitor > getFidListMonitor()
Creates and returns a new DtFidListMonitor. Deletion of this monitor (by removing all references) is ...
btCollisionWorld * myCollisionWorld
Definition: collisionWorld.h:164
DtIntersectionType
Definition: intersectionRecord.h:41
Represents an area query which can be used to extract triangles from DtTerrainInterface. The box points are in local but the box is always projected against the local topo at the center point of the box.
Definition: terrainProcessPolygonsBox.h:39
Implementation of DtFidListMonitor that is accessible only to the internal calls of DtCollisionWorld...
Definition: collisionWorld.h:63