VR-Forces 5.0.2 Developer's Guide
 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) 2022 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 
86  virtual long numberOfUnloadableTerrainTriangles() const;
89  virtual void setNumberOfUnloadableTerrainTriangles(long value);
90 
91 protected:
92  virtual btCollisionWorld* bulletCollisionWorld();
93 
95  virtual void deleteInternalMemberVariables();
96 
97  //Bullet intersection members.
98 
99  typedef std::set< boost::shared_ptr<btCollisionObject> > CollisionObjectSet;
101 
103  btCollisionWorld* myCollisionWorld;
104 
105  btCollisionConfiguration* myCollisionConfiguration;
106  btBroadphaseInterface* myBroadphaseInterface;
107  btCollisionDispatcher* myCollisionDispatcher;
109 
110  typedef tbb::spin_rw_mutex Mutex;
111  mutable Mutex myMutex;
112 };
113 
115 {
116 public:
118  virtual ~DtBulletTriangleCallback();
119  virtual const DtTerrainProcessPolygonsBox& box() const;
120  virtual DtTriangleOutputInterface& outputInterface();
121  virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);
122  virtual void setTransform(btTransform* transform);
123  virtual void setMesh(const DtTriangleMeshWithSoil* mesh);
124  virtual void setCollisionObject(const DtCollisionObjectInterface* obj);
125 protected:
127  btTransform* myTransform;
131  void* myVrfUsr;
132 };
133 
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtTriangleOutputInterface & myOutput
Definition: collisionWorld.h:126
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords. This is useful for followi...
Definition: vrfChordIntersectRecordList.h:31
Definition: sphere.h:22
Definition: collisionWorld.h:114
A version of btTriangleMesh that also holds soil type for each polygon.
Definition: bvhTriangleMeshShape.h:26
const DtTerrainProcessPolygonsBox * myBox
Definition: collisionWorld.h:128
btCollisionConfiguration * myCollisionConfiguration
Definition: collisionWorld.h:105
void * myVrfUsr
Definition: collisionWorld.h:131
Definition: coordSystem.h:54
Mutex myMutex
Definition: collisionWorld.h:111
const Coordinate_System * myCoordinateSystem
Definition: collisionWorld.h:102
std::set< boost::shared_ptr< btCollisionObject > > CollisionObjectSet
Definition: collisionWorld.h:99
Definition: osgToBullet.h:63
Definition: vrfChordIntersectionRecord.h:19
tbb::spin_rw_mutex Mutex
Definition: collisionWorld.h:110
Definition: intersectionRecord.h:60
btTransform * myTransform
Definition: collisionWorld.h:127
btCollisionDispatcher * myCollisionDispatcher
Definition: collisionWorld.h:107
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
const DtCollisionObjectInterface * myCollisionObject
Definition: collisionWorld.h:129
CollisionObjectSet myCollisionObjects
Definition: collisionWorld.h:100
long myNumberOfUnloadableTerrainTriangles
Definition: collisionWorld.h:108
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea. This object should always be created on the stack.
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:130
btBroadphaseInterface * myBroadphaseInterface
Definition: collisionWorld.h:106
btCollisionWorld * myCollisionWorld
Definition: collisionWorld.h:103
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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)