VR-Forces 4.1 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 
16 #include <list>
17 #include <vlutil/vlSmartPointers.h>
19 #include <tbb/spin_rw_mutex.h>
20 
21 typedef DtBoost::shared_ptr<btCollisionObject> DtCollisionObjectSharedPtr;
22 typedef std::multimap<DtTriangleMeshWithSoil*, btCollisionObject*> DtMeshToCollObjMMap;
23 typedef std::map<osg::Geode*, DtTriangleMeshWithSoil*> DtGeodeToMeshMap;
24 
25 class DtChord;
28 class DtSphere;
30 
36 {
37 private:
39 
41  DtCollisionWorld& operator=(const DtCollisionWorld&);
43 public:
45  virtual ~DtCollisionWorld();
46 
47  virtual void initialize();
48 
49  virtual btCollisionWorld* bulletCollisionWorld();
50 
51  virtual const DtMeshToCollObjMMap* const meshToCollObjMMap() const;
52 
53  virtual void addCollisionObjectToWorld(
54  btCollisionObject* collisionObject, DtTriangleMeshWithSoil* triangleMesh);
55 
56  virtual void addCollisionObjectsToWorld(
57  DtCollObjMeshPairList* collObjMeshPairs);
58 
59  virtual unsigned int removeCollisionObjectFromWorld(
60  btCollisionObject* collisionObject);
61 
62  virtual bool chordIntersect(const DtChord& chord,
65 
66  virtual bool allIntersectsAlongChord(const DtChord& chord,
69 
70  virtual bool sphereIntersect(const DtSphere& sphere, DtSphereIntersectionRecord& record,
72 
73  virtual void setDebugDrawer(btIDebugDraw* drawer);
74  virtual void drawDebugInfo() const;
75 
78  //If a triangle mesh has been created for the given geode
79  //return it, otherwise 0.
80  //virtual DtTriangleMeshWithSoil* meshForGeode(osg::Geode* geode);
81  //virtual void addGeodeToMeshMapping(osg::Geode* geode,
83 
84 protected:
85  //Bullet intersection members.
86 
87  std::set<DtTriangleMeshWithSoil*> myMeshList;
88  //DtGeodeToMeshMap myGeodeToMeshMap;
90 
91  btCollisionWorld* myCollisionWorld;
92  btCollisionConfiguration* myCollisionConfiguration;
93  btBroadphaseInterface* myBroadphaseInterface;
94  btCollisionDispatcher* myCollisionDispatcher;
95 
96  mutable tbb::spin_rw_mutex myMutex;
97 };

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)