VR-Forces 4.2 Class Documentation
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>
20 #include <geometry/intersectionRecord.h>
21 #include <tbb/spin_rw_mutex.h>
22 #include <boost/unordered_set.hpp>
23 #include <features/proj.h>
24 
25 typedef std::list<btCollisionObject*> DtCollisionObjectList;
26 
27 class DtChord;
28 class DtChordIntersectionRecord;
29 class DtChordIntersectRecordList;
30 class DtSphere;
31 class DtSphereIntersectionRecord;
32 
38 {
39 private:
41 
43  DtCollisionWorld& operator=(const DtCollisionWorld&);
45 public:
47  virtual ~DtCollisionWorld();
48 
49  virtual void initialize();
50 
51  virtual unsigned collisionObjectCount();
52 
53  virtual void addCollisionObjectToWorld(btCollisionObject*);
54 
55  virtual void addCollisionObjectsToWorld(DtCollisionObjectList&);
56 
57  virtual unsigned int removeCollisionObjectFromWorld(btCollisionObject* collisionObject);
58 
59  virtual unsigned int removeCollisionObjectsFromWorld(DtCollisionObjectList&);
60 
61  virtual bool chordIntersect(const DtChord& chord,
62  DtChordIntersectionRecord& record,
63  DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA) const;
64 
65  virtual bool allIntersectsAlongChord(const DtChord& chord,
66  DtChordIntersectRecordList& intList,
67  DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA) const;
68 
69  virtual bool sphereIntersect(const DtSphere& sphere, DtSphereIntersectionRecord& record,
70  DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA) const;
71 
72  virtual void setCoordinateSystem(const Coordinate_System* cs);
73  virtual const Coordinate_System* coordinateSystem();
74 
75  virtual void drawDebugInfo();
76  virtual void setDebugDraw(bool enabled);
77  virtual void setAabbDraw(bool enabled);
78 
79  virtual void processTrianglesInArea(DtBulletTriangleCallback&);
80 
81 protected:
82  virtual btCollisionWorld* bulletCollisionWorld();
83 
84  //Bullet intersection members.
85 
86  typedef boost::unordered_set<btCollisionObject*> CollisionObjectSet;
88 
89  const Coordinate_System* myCoordinateSystem;
90  btCollisionWorld* myCollisionWorld;
91 
92  std::auto_ptr<DtSharedMemoryBulletDebugDrawer> myDebugDrawer;
93  std::auto_ptr<DtSharedMemoryBulletDebugDrawer> myAabbDrawer;
95 
96  btCollisionConfiguration* myCollisionConfiguration;
97  btBroadphaseInterface* myBroadphaseInterface;
98  btCollisionDispatcher* myCollisionDispatcher;
99 
100  typedef tbb::spin_rw_mutex Mutex;
101  mutable Mutex myMutex;
102 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)