![]() |
VR-Forces Developer's Guide
|
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 | |
| struct | CollisionMetric |
| class | DtFidListMonitor |
| class | DtFidListMonitorImpl |
Protected Types | |
| typedef std::set < std::shared_ptr < btCollisionObject > > | CollisionObjectSet |
| typedef std::unordered_multimap< long long, std::shared_ptr < btCollisionObject > > | FidToCollisionOjectMap |
| using | Mutex = tbb::spin_rw_mutex |
Protected Member Functions | |
| virtual btCollisionWorld * | bulletCollisionWorld () |
| virtual void | deleteInternalMemberVariables () |
| virtual void | notifyFidListMonitors () |
| virtual bool | isFidHidden (const long long fid) |
| virtual void | calculateMeshAndTriangleCount () |
| virtual void | resetMetrics () |
Protected Attributes | |
| CollisionObjectSet | myCollisionObjects |
| const Coordinate_System * | myCoordinateSystem |
| 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 |
| bool | myRecordMetrics |
| unsigned int | myNumCollisionShapes |
| unsigned int | myNumTrianglesOfAllShapes |
| bool | myNumCollisionShapesDirty |
| CollisionMetric | myCollisionMetrics |
| DtCollisionShapeManager | myCollisionShapeManager |
Private Member Functions | |
| DtCollisionWorld (const DtCollisionWorld &)=delete | |
| DtCollisionWorld & | operator= (const DtCollisionWorld &)=delete |
|
protected |
|
protected |
map FID / collision object
|
protected |
|
privatedelete |
Not implemented.
| DtCollisionWorld::DtCollisionWorld | ( | ) |
|
virtual |
|
privatedelete |
Not implemented.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
This function will "hide" the geometries associated to the FID list provided in the bullet world.
|
virtual |
Reset all hidden geometries that have associated FID (to be used on rewind for example)
|
virtual |
Reset hidden geometries from FID list.
|
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 |
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 |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Return the number of terrain triangles that are loaded initially and are not part of the terrain pager system.
|
virtual |
Set the number of terrain triangles that are loaded initially and are not part of the terrain pager system.
|
virtual |
Creates and returns a new DtFidListMonitor. Deletion of this monitor (by removing all references) is sufficient to remove it from the system.
|
virtual |
Set the function that collision world will use to determine if FIDs are hidden or not.
|
virtual |
Enable or not debug metrics.
|
virtual |
Get metrics (will reset values each time we get them)
|
protectedvirtual |
|
protectedvirtual |
delete internal member variables
|
protectedvirtual |
|
protectedvirtual |
Calculates myNumCollisionShapes and myNumTrianglesOfAllShapes if dirty. This can be slow if recalculation is needed.
|
protectedvirtual |
reset metrics values
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
Are debug metrics enable.
The number of collision shapes (collision objects may share shapes)
The number of triangles of all the shapes (not individual objects) In the case of two objects sharing a shape, only triangles from one instance of the shape will be added.
|
protected |
Whether the myNumCollisionShapes needs to be recalculated;.
|
protected |
Structure holding all the metric.
|
protected |