VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
18 #include <list>
19 #include <vlutil/vlSmartPointers.h>
21 #include <tbb/spin_rw_mutex.h>
22 #include <boost/unordered_set.hpp>
23 #include <features/proj.h>
24 
25 #include <BulletCollision/CollisionShapes/btTriangleCallback.h>
26 
27 class DtChord;
30 class DtSphere;
31 
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 void setCoordinateSystem(const Coordinate_System* cs);
78  virtual const Coordinate_System* coordinateSystem();
79 
80  virtual void drawDebugInfo();
81  virtual void setDebugDraw(bool polygons, bool aabb);
82 
83  virtual void processTrianglesInArea(DtBulletTriangleCallback&);
84 
85 protected:
86  virtual btCollisionWorld* bulletCollisionWorld();
87 
88  //Bullet intersection members.
89 
90  typedef boost::unordered_set< boost::shared_ptr<btCollisionObject> > CollisionObjectSet;
92 
94  btCollisionWorld* myCollisionWorld;
95 
96  std::auto_ptr<DtSharedMemoryBulletDebugDrawer> myDebugDrawer;
97  std::auto_ptr<DtSharedMemoryBulletDebugDrawer> myAabbDrawer;
99 
100  btCollisionConfiguration* myCollisionConfiguration;
101  btBroadphaseInterface* myBroadphaseInterface;
102  btCollisionDispatcher* myCollisionDispatcher;
103 
104  typedef tbb::spin_rw_mutex Mutex;
105  mutable Mutex myMutex;
106 };
107 
109 {
110 public:
112  virtual ~DtBulletTriangleCallback();
113  virtual const DtTerrainProcessPolygonsBox& box() const;
114  virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);
115  virtual void setTransform(btTransform* transform);
116  virtual void setMesh(const DtTriangleMeshWithSoil* mesh);
117  virtual void setCollisionObject(const DtCollisionObjectInterface* obj);
118  void setVrfTriangleCallback( DtTriangleCallbackFcn func, void* usr );
119 protected:
120  btTransform* myTransform;
125  void* myVrfUsr;
126 };
127 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)