VR-Forces 4.8 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) 2010 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 
87  //Bullet intersection members.
88 
89  typedef std::set< boost::shared_ptr<btCollisionObject> > CollisionObjectSet;
91 
93  btCollisionWorld* myCollisionWorld;
94 
95  btCollisionConfiguration* myCollisionConfiguration;
96  btBroadphaseInterface* myBroadphaseInterface;
97  btCollisionDispatcher* myCollisionDispatcher;
98 
99  typedef tbb::spin_rw_mutex Mutex;
100  mutable Mutex myMutex;
101 };
102 
104 {
105 public:
107  virtual ~DtBulletTriangleCallback();
108  virtual const DtTerrainProcessPolygonsBox& box() const;
109  virtual DtTriangleOutputInterface& outputInterface();
110  virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);
111  virtual void setTransform(btTransform* transform);
112  virtual void setMesh(const DtTriangleMeshWithSoil* mesh);
113  virtual void setCollisionObject(const DtCollisionObjectInterface* obj);
114 protected:
116  btTransform* myTransform;
120  void* myVrfUsr;
121 };
122 
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtTriangleOutputInterface & myOutput
Definition: collisionWorld.h:115
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords.
Definition: vrfChordIntersectRecordList.h:31
Definition: sphere.h:22
Definition: collisionWorld.h:103
A version of btTriangleMesh that also holds soil type for each polygon.
Definition: bvhTriangleMeshShape.h:26
const DtTerrainProcessPolygonsBox * myBox
Definition: collisionWorld.h:117
btCollisionConfiguration * myCollisionConfiguration
Definition: collisionWorld.h:95
void * myVrfUsr
Definition: collisionWorld.h:120
Definition: coordSystem.h:54
Mutex myMutex
Definition: collisionWorld.h:100
const Coordinate_System * myCoordinateSystem
Definition: collisionWorld.h:92
std::set< boost::shared_ptr< btCollisionObject > > CollisionObjectSet
Definition: collisionWorld.h:89
Definition: osgToBullet.h:63
Definition: vrfChordIntersectionRecord.h:19
tbb::spin_rw_mutex Mutex
Definition: collisionWorld.h:99
Definition: intersectionRecord.h:60
btTransform * myTransform
Definition: collisionWorld.h:116
btCollisionDispatcher * myCollisionDispatcher
Definition: collisionWorld.h:97
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
const DtCollisionObjectInterface * myCollisionObject
Definition: collisionWorld.h:118
CollisionObjectSet myCollisionObjects
Definition: collisionWorld.h:90
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:119
btBroadphaseInterface * myBroadphaseInterface
Definition: collisionWorld.h:96
btCollisionWorld * myCollisionWorld
Definition: collisionWorld.h:93
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 Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)