VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
collisionWorld.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
17 #include <list>
18 #include <vlutil/vlSmartPointers.h>
20 #include <tbb/spin_rw_mutex.h>
21 #include <features/proj.h>
22 #include <set>
23 
24 #include <BulletCollision/CollisionShapes/btTriangleCallback.h>
25 
26 class DtChord;
29 class DtSphere;
30 
33 
39 {
40 private:
42 
44  DtCollisionWorld& operator=(const DtCollisionWorld&);
46 public:
48  virtual ~DtCollisionWorld();
49 
50  virtual void initialize();
51 
52  virtual unsigned collisionObjectCount();
53 
54  virtual void addCollisionObjectToWorld(
55  const boost::shared_ptr<btCollisionObject>& object,
56  short int objectGroup = btBroadphaseProxy::DefaultFilter);
57 
58  virtual void addCollisionObjectsToWorld(
59  const DtCollisionObjectList& object,
60  short int objectGroup = btBroadphaseProxy::DefaultFilter);
61 
62  virtual unsigned int removeCollisionObjectFromWorld(
63  const boost::shared_ptr<btCollisionObject>& collisionObject);
64 
65  virtual unsigned int removeCollisionObjectsFromWorld(const DtCollisionObjectList&);
66 
67  virtual bool chordIntersect(const DtChord& chord,
70  short int filterMask = btBroadphaseProxy::AllFilter) const;
71 
72  virtual bool allIntersectsAlongChord(const DtChord& chord,
75  short int filterMask = btBroadphaseProxy::AllFilter) const;
76 
77  virtual bool updateWorldTransform(btCollisionObject* obj, const btTransform&);
78 
79  virtual void setCoordinateSystem(const Coordinate_System* cs);
80  virtual const Coordinate_System* coordinateSystem();
81 
82  virtual void processTrianglesInArea(DtBulletTriangleCallback&);
83 
84 protected:
85  virtual btCollisionWorld* bulletCollisionWorld();
86 
88  virtual void deleteInternalMemberVariables();
89 
90  //Bullet intersection members.
91 
92  typedef std::set< boost::shared_ptr<btCollisionObject> > CollisionObjectSet;
94 
96  btCollisionWorld* myCollisionWorld;
97 
98  btCollisionConfiguration* myCollisionConfiguration;
99  btBroadphaseInterface* myBroadphaseInterface;
100  btCollisionDispatcher* myCollisionDispatcher;
101 
102  typedef tbb::spin_rw_mutex Mutex;
103  mutable Mutex myMutex;
104 };
105 
107 {
108 public:
110  virtual ~DtBulletTriangleCallback();
111  virtual const DtTerrainProcessPolygonsBox& box() const;
112  virtual DtTriangleOutputInterface& outputInterface();
113  virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);
114  virtual void setTransform(btTransform* transform);
115  virtual void setMesh(const DtTriangleMeshWithSoil* mesh);
116  virtual void setCollisionObject(const DtCollisionObjectInterface* obj);
117 protected:
119  btTransform* myTransform;
123  void* myVrfUsr;
124 };
125 
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtTriangleOutputInterface & myOutput
Definition: collisionWorld.h:118
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords.
Definition: vrfChordIntersectRecordList.h:31
Definition: sphere.h:22
Definition: collisionWorld.h:106
A version of btTriangleMesh that also holds soil type for each polygon.
Definition: bvhTriangleMeshShape.h:26
const DtTerrainProcessPolygonsBox * myBox
Definition: collisionWorld.h:120
btCollisionConfiguration * myCollisionConfiguration
Definition: collisionWorld.h:98
void * myVrfUsr
Definition: collisionWorld.h:123
Definition: coordSystem.h:54
Mutex myMutex
Definition: collisionWorld.h:103
const Coordinate_System * myCoordinateSystem
Definition: collisionWorld.h:95
std::set< boost::shared_ptr< btCollisionObject > > CollisionObjectSet
Definition: collisionWorld.h:92
Definition: osgToBullet.h:63
Definition: vrfChordIntersectionRecord.h:19
tbb::spin_rw_mutex Mutex
Definition: collisionWorld.h:102
Definition: intersectionRecord.h:60
btTransform * myTransform
Definition: collisionWorld.h:119
btCollisionDispatcher * myCollisionDispatcher
Definition: collisionWorld.h:100
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
const DtCollisionObjectInterface * myCollisionObject
Definition: collisionWorld.h:121
CollisionObjectSet myCollisionObjects
Definition: collisionWorld.h:93
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea.
Definition: terrainProcessPolygonsBox.h:113
std::list< boost::shared_ptr< btCollisionObject > > DtCollisionObjectList
Definition: osgToBullet.h:51
This class contains a Bullet btCollisionWorld, and also maintains ownership of the collision objects ...
Definition: collisionWorld.h:38
const DtTriangleMeshWithSoil * myMesh
Definition: collisionWorld.h:122
btBroadphaseInterface * myBroadphaseInterface
Definition: collisionWorld.h:99
btCollisionWorld * myCollisionWorld
Definition: collisionWorld.h:96
DtIntersectionType
Definition: intersectionRecord.h:41
Represents an area query which can be used to extract triangles from DtTerrainInterface.
Definition: terrainProcessPolygonsBox.h:39

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)