VR-Forces 4.6 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 
18 #include <list>
19 #include <vlutil/vlSmartPointers.h>
21 #include <tbb/spin_rw_mutex.h>
22 #include <features/proj.h>
23 #include <set>
24 
25 #include <BulletCollision/CollisionShapes/btTriangleCallback.h>
26 
27 class DtChord;
30 class DtSphere;
31 
34 
40 {
41 private:
43 
45  DtCollisionWorld& operator=(const DtCollisionWorld&);
47 public:
49  virtual ~DtCollisionWorld();
50 
51  virtual void initialize();
52 
53  virtual unsigned collisionObjectCount();
54 
55  virtual void addCollisionObjectToWorld(
56  const boost::shared_ptr<btCollisionObject>& object,
57  short int objectGroup = btBroadphaseProxy::DefaultFilter);
58 
59  virtual void addCollisionObjectsToWorld(
60  const DtCollisionObjectList& object,
61  short int objectGroup = btBroadphaseProxy::DefaultFilter);
62 
63  virtual unsigned int removeCollisionObjectFromWorld(
64  const boost::shared_ptr<btCollisionObject>& collisionObject);
65 
66  virtual unsigned int removeCollisionObjectsFromWorld(const DtCollisionObjectList&);
67 
68  virtual bool chordIntersect(const DtChord& chord,
71  short int filterMask = btBroadphaseProxy::AllFilter) const;
72 
73  virtual bool allIntersectsAlongChord(const DtChord& chord,
76  short int filterMask = btBroadphaseProxy::AllFilter) const;
77 
78  virtual bool updateWorldTransform(btCollisionObject* obj, const btTransform&);
79 
80  virtual void setCoordinateSystem(const Coordinate_System* cs);
81  virtual const Coordinate_System* coordinateSystem();
82 
83  virtual void drawDebugInfo();
84  virtual void setDebugDraw(bool polygons, bool aabb);
85 
86  virtual void processTrianglesInArea(DtBulletTriangleCallback&);
87 
88 protected:
89  virtual btCollisionWorld* bulletCollisionWorld();
90 
91  //Bullet intersection members.
92 
93  typedef std::set< boost::shared_ptr<btCollisionObject> > CollisionObjectSet;
95 
97  btCollisionWorld* myCollisionWorld;
98 
99  std::auto_ptr<DtSharedMemoryBulletDebugDrawer> myDebugDrawer;
100  std::auto_ptr<DtSharedMemoryBulletDebugDrawer> myAabbDrawer;
102 
103  btCollisionConfiguration* myCollisionConfiguration;
104  btBroadphaseInterface* myBroadphaseInterface;
105  btCollisionDispatcher* myCollisionDispatcher;
106 
107  typedef tbb::spin_rw_mutex Mutex;
108  mutable Mutex myMutex;
109 };
110 
112 {
113 public:
115  virtual ~DtBulletTriangleCallback();
116  virtual const DtTerrainProcessPolygonsBox& box() const;
117  virtual DtTriangleOutputInterface& outputInterface();
118  virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);
119  virtual void setTransform(btTransform* transform);
120  virtual void setMesh(const DtTriangleMeshWithSoil* mesh);
121  virtual void setCollisionObject(const DtCollisionObjectInterface* obj);
122 
123 protected:
125  btTransform* myTransform;
129  void* myVrfUsr;
130 };
131 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)