VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
DtCollisionWorld Class Reference

This class contains a Bullet btCollisionWorld, and also maintains ownership of the collision objects that are added to this world. This is the central class that can answer intersection queries with the currently loaded data.

Classes

class  DtFidListMonitor
 
class  DtFidListMonitorImpl
 

Public Member Functions

 DtCollisionWorld ()
 
virtual ~DtCollisionWorld ()
 
virtual void initialize ()
 
virtual unsigned collisionObjectCount ()
 
virtual void addCollisionObjectToWorld (const boost::shared_ptr< btCollisionObject > &object, short int objectGroup=btBroadphaseProxy::DefaultFilter)
 
virtual void addCollisionObjectsToWorld (const DtCollisionObjectList &object, short int objectGroup=btBroadphaseProxy::DefaultFilter)
 
virtual unsigned int removeCollisionObjectFromWorld (const boost::shared_ptr< btCollisionObject > &collisionObject)
 
virtual unsigned int removeCollisionObjectsFromWorld (const DtCollisionObjectList &)
 
virtual void removeCollisionObjectFromWorld (const std::set< long long > &OsmFidList)
 
virtual void enableHiddenCollisionObjectInWorld ()
 
virtual void enableHiddenCollisionObjectInWorld (const std::set< long long > &OsmFidList)
 
virtual bool chordIntersect (const DtChord &chord, DtVrfChordIntersectionRecord &record, bool &dataAvailalbe, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, short int filterMask=btBroadphaseProxy::AllFilter) const
 
virtual bool allIntersectsAlongChord (const DtChord &chord, DtVrfChordIntersectRecordList &intList, bool &dataAvailable, DtIntersectionRecord::DtIntersectionType irtFlag=DtIntersectionRecord::INT_ALL_DATA, short int filterMask=btBroadphaseProxy::AllFilter) const
 
virtual bool updateWorldTransform (btCollisionObject *obj, const btTransform &)
 
virtual void setCoordinateSystem (const Coordinate_System *cs)
 
virtual const Coordinate_SystemcoordinateSystem ()
 
virtual void processTrianglesInArea (DtBulletTriangleCallback &)
 
virtual long numberOfUnloadableTerrainTriangles () const
 
virtual void setNumberOfUnloadableTerrainTriangles (long value)
 
virtual std::shared_ptr
< DtFidListMonitor
getFidListMonitor ()
 
virtual void setFidHideFunction (std::function< bool(const long long)> fcn)
 

Protected Types

typedef std::set
< boost::shared_ptr
< btCollisionObject > > 
CollisionObjectSet
 
typedef
std::unordered_multimap< long
long, boost::shared_ptr
< btCollisionObject > > 
FidToCollisionOjectMap
 
typedef tbb::spin_rw_mutex Mutex
 

Protected Member Functions

virtual btCollisionWorld * bulletCollisionWorld ()
 
virtual void deleteInternalMemberVariables ()
 
virtual void notifyFidListMonitors ()
 
virtual bool isFidHidden (const long long fid)
 

Protected Attributes

CollisionObjectSet myCollisionObjects
 
const Coordinate_SystemmyCoordinateSystem
 
btCollisionWorld * myCollisionWorld
 
btCollisionConfiguration * myCollisionConfiguration
 
btBroadphaseInterface * myBroadphaseInterface
 
btCollisionDispatcher * myCollisionDispatcher
 
long myNumberOfUnloadableTerrainTriangles
 
FidToCollisionOjectMap myFidToCollisionOjectMap
 
std::list< std::weak_ptr
< DtFidListMonitorImpl > > 
myFidListMonitorList
 
Mutex myMutex
 
std::function< bool(const long
long)> 
myHiddenFidFcn
 

Private Member Functions

 DtCollisionWorld (const DtCollisionWorld &)
 
DtCollisionWorldoperator= (const DtCollisionWorld &)
 

Member Typedef Documentation

typedef std::set< boost::shared_ptr<btCollisionObject> > DtCollisionWorld::CollisionObjectSet
protected
typedef std::unordered_multimap<long long, boost::shared_ptr<btCollisionObject> > DtCollisionWorld::FidToCollisionOjectMap
protected

map FID / collision object

typedef tbb::spin_rw_mutex DtCollisionWorld::Mutex
protected

Constructor & Destructor Documentation

DtCollisionWorld::DtCollisionWorld ( const DtCollisionWorld )
private

Not implemented.

DtCollisionWorld::DtCollisionWorld ( )
virtual DtCollisionWorld::~DtCollisionWorld ( )
virtual

Member Function Documentation

DtCollisionWorld& DtCollisionWorld::operator= ( const DtCollisionWorld )
private

Not implemented.

virtual void DtCollisionWorld::initialize ( )
virtual
virtual unsigned DtCollisionWorld::collisionObjectCount ( )
virtual
virtual void DtCollisionWorld::addCollisionObjectToWorld ( const boost::shared_ptr< btCollisionObject > &  object,
short int  objectGroup = btBroadphaseProxy::DefaultFilter 
)
virtual
virtual void DtCollisionWorld::addCollisionObjectsToWorld ( const DtCollisionObjectList object,
short int  objectGroup = btBroadphaseProxy::DefaultFilter 
)
virtual
virtual unsigned int DtCollisionWorld::removeCollisionObjectFromWorld ( const boost::shared_ptr< btCollisionObject > &  collisionObject)
virtual
virtual unsigned int DtCollisionWorld::removeCollisionObjectsFromWorld ( const DtCollisionObjectList )
virtual
virtual void DtCollisionWorld::removeCollisionObjectFromWorld ( const std::set< long long > &  OsmFidList)
virtual

This function will "hide" the geometries associated to the FID list provided in the bullet world.

virtual void DtCollisionWorld::enableHiddenCollisionObjectInWorld ( )
virtual

Reset all hidden geometries that have associated FID (to be used on rewind for example)

virtual void DtCollisionWorld::enableHiddenCollisionObjectInWorld ( const std::set< long long > &  OsmFidList)
virtual

Reset hidden geometries from FID list.

virtual bool DtCollisionWorld::chordIntersect ( const DtChord chord,
DtVrfChordIntersectionRecord record,
bool dataAvailalbe,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
short int  filterMask = btBroadphaseProxy::AllFilter 
) const
virtual

The dataAvailable flag will be set to false if this intersection encounters some data that cannot be intersected with. (Used when the BVH is being built in a background thread and hasn't finished yet)

virtual bool DtCollisionWorld::allIntersectsAlongChord ( const DtChord chord,
DtVrfChordIntersectRecordList intList,
bool dataAvailable,
DtIntersectionRecord::DtIntersectionType  irtFlag = DtIntersectionRecord::INT_ALL_DATA,
short int  filterMask = btBroadphaseProxy::AllFilter 
) const
virtual

The dataAvailable flag will be set to false if this intersection encounters some data that cannot be intersected with. (Used when the BVH is being built in a background thread and hasn't finished yet)

virtual bool DtCollisionWorld::updateWorldTransform ( btCollisionObject obj,
const btTransform &   
)
virtual
virtual void DtCollisionWorld::setCoordinateSystem ( const Coordinate_System cs)
virtual
virtual const Coordinate_System* DtCollisionWorld::coordinateSystem ( )
virtual
virtual void DtCollisionWorld::processTrianglesInArea ( DtBulletTriangleCallback )
virtual
virtual long DtCollisionWorld::numberOfUnloadableTerrainTriangles ( ) const
virtual

Return the number of terrain triangles that are loaded initially and are not part of the terrain pager system.

virtual void DtCollisionWorld::setNumberOfUnloadableTerrainTriangles ( long  value)
virtual

Set the number of terrain triangles that are loaded initially and are not part of the terrain pager system.

virtual std::shared_ptr<DtFidListMonitor> DtCollisionWorld::getFidListMonitor ( )
virtual

Creates and returns a new DtFidListMonitor. Deletion of this monitor (by removing all references) is sufficient to remove it from the system.

virtual void DtCollisionWorld::setFidHideFunction ( std::function< bool(const long long)>  fcn)
virtual

Set the function that collision world will use to determine if FIDs are hidden or not.

virtual btCollisionWorld* DtCollisionWorld::bulletCollisionWorld ( )
protectedvirtual
virtual void DtCollisionWorld::deleteInternalMemberVariables ( )
protectedvirtual

delete internal member variables

virtual void DtCollisionWorld::notifyFidListMonitors ( )
protectedvirtual

Notifies all monitors on the FID List Monitor list of a FID list change.

virtual bool DtCollisionWorld::isFidHidden ( const long long  fid)
protectedvirtual

Member Data Documentation

CollisionObjectSet DtCollisionWorld::myCollisionObjects
protected
const Coordinate_System* DtCollisionWorld::myCoordinateSystem
protected
btCollisionWorld* DtCollisionWorld::myCollisionWorld
protected
btCollisionConfiguration* DtCollisionWorld::myCollisionConfiguration
protected
btBroadphaseInterface* DtCollisionWorld::myBroadphaseInterface
protected
btCollisionDispatcher* DtCollisionWorld::myCollisionDispatcher
protected
long DtCollisionWorld::myNumberOfUnloadableTerrainTriangles
protected
FidToCollisionOjectMap DtCollisionWorld::myFidToCollisionOjectMap
protected
std::list<std::weak_ptr<DtFidListMonitorImpl> > DtCollisionWorld::myFidListMonitorList
protected
Mutex DtCollisionWorld::myMutex
mutableprotected
std::function<bool(const long long)> DtCollisionWorld::myHiddenFidFcn
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)