VR-Forces 4.1 Class Documentation
vantageTerrainImplementation.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright 2010 VT MAK
3 *******************************************************************************/
4 
7 
9 
10 #pragma once
11 
12 #include <BulletCollision/CollisionShapes/btTriangleCallback.h>
16 
17 #include <vlutil/vlFilename.h>
18 #include <tbb/tbb_thread.h>
19 #include <tbb/mutex.h>
20 #include "LinearMath/btTransform.h"
21 #include "LinearMath/btMatrix3x3.h"
22 #include "osgToBullet.h"
23 
24 #include "BulletCollision/CollisionDispatch/btCollisionObject.h"
25 
29 class DtCollisionWorld;
34 
35 struct DtPagingMetaData;
36 namespace makArchives
37 {
38  class DtGenericTerrainRecord;
39 }
40 
46 {
47 public:
48 
51 
54  virtual bool loadTerrain(const makArchives::DtGenericTerrainRecord& record,
56  const TerrainSettings& settings = TerrainSettings());
57 
58  virtual const Coordinate_System* coordinateSystem() const;
59 
60  virtual bool chordIntersect(const DtChord& chord,
63  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
64 
65  virtual bool allIntersectsAlongChord(const DtChord& chord,
68  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
69 
70  virtual bool sphereIntersect(const DtSphere& sphere, DtSphereIntersectionRecord& record,
72  bool* dataAvailable = 0, bool overrideBlockingAssert = false) const;
73 
74  virtual void preloadTerrainAreas(const DtTerrainPagingGeometryList& preloadGeometry);
75 
76  virtual const DtTerrainCapabilities* terrainCapabilities() const;
77 
78  static DtTerrainImplementation* create(DtConsoleCommandManager* cmdMgr);
79 
85  virtual void loadData(DtPagingMetaDataPtr metaData,
86  DtTerrainPagingGeometryPtr geometry, bool* dataAvailable,
87  bool overrideBlockingAssert = false) const;
88 
89  virtual const unsigned int lastIntersectId() const { return myLastIntersectId; };
90 
91  virtual void loadConfigurationFile(const DtFilename& filename);
92 
93  virtual const DtTerrainConfigurationOptions* configurationOptions() const;
94 
95  virtual DtPagingMetaDataPtr createMetaData(bool* dataAvailable,
96  int intersectId) const;
97 
98  virtual void setIntersectDataLoadExpireTime(const double& expireTime);
99  virtual void expireDataLoadRequestsBeforeTime(const double& currentTime);
100 
102 
103  static DtVantageTerrainImplementationCreator* creator();
104  void forceTerrainPagingInBox( DtTerrainProcessPolygonsBox& box ) const;
105 
106  virtual void breakUpChords(const MAKVRinTerra::DtProj&, const DtChord& chord,
107  std::vector<DtChord>& chords);
108 
109 protected:
112  mutable unsigned int myLastIntersectId;
117 
119 
122 
124 
126 
128  tbb::tbb_thread* myPreloadCommandThread;
129  mutable tbb::mutex myShutdownMutex;
130 };
131 
133 {
134 public:
136  virtual ~DtBulletTriangleCallback();
137  virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);
138  virtual void setTransform(btTransform* transform);
139  virtual void setMesh(const DtTriangleMeshWithSoil* mesh);
140  void setVrfTriangleCallback( DtTriangleCallbackFcn func, void* usr );
141 protected:
142  btTransform* myTransform;
146  void* myVrfUsr;
147 };

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)