![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include <vrvCore/DtDe.h> 00014 00015 #include <tbb/spin_rw_mutex.h> 00016 00017 #include <vantageTerrainImplementation/vantageTerrainImplementationDefines.h> 00018 #include <vantageTerrainImplementation/vantageTerrainImplementationUtil.h> 00019 00020 #include <terrainInterface/terrainPagingGeometry.h> 00021 00022 class DtTerrainSourceTracker; 00023 class btIDebugDraw; 00024 00029 class DT_DLL_vantageTerrainImplementation DtActivePageTracker 00030 { 00031 private: 00033 00034 DtActivePageTracker(const DtActivePageTracker&); 00035 DtActivePageTracker& operator=(const DtActivePageTracker&); 00037 00038 public: 00040 DtActivePageTracker(); 00041 00043 virtual ~DtActivePageTracker(); 00044 00046 virtual void setDebugDrawer(btIDebugDraw* drawer); 00047 00051 virtual void drawDebugInfo() const; 00052 00056 virtual void setWorldPagedOut(bool v); 00057 00066 virtual void pageInData(DtPagingMetaDataPtr metaData, 00067 DtTerrainPagingGeometryPtr geometry); 00068 00073 virtual bool dataAvailable(DtPagingMetaDataPtr metaData, 00074 DtTerrainPagingGeometryPtr geometry); 00075 00082 00084 virtual void addTerrainSourceTracker( 00085 DtTerrainSourceTracker* terrainSourceTracker); 00086 00087 virtual void removeTerrainSourceTracker( 00088 DtTerrainSourceTracker* terrainSourceTracker); 00089 00093 virtual void addIntersectChord(const DtChord& intersectChord); 00094 00098 virtual void addIntersectSphere(const DtSphere& intersectSphere); 00099 00101 virtual bool canPageOutData(unsigned int intersectId = 0); 00102 00107 virtual unsigned int pageOutData(const int priority, 00108 unsigned int numTrianglesToPageOut, unsigned int intersectId); 00109 00110 virtual void setIntersectDataLoadExpireTime(const double& expireTime); 00111 00112 protected: 00113 00116 bool myWorldPagedOut; 00117 00119 btIDebugDraw* myDebugDrawer; 00120 00123 DtTerrainSourceTrackerList myTerrainSourceTrackers; 00124 00126 00127 std::list<DtChord> myIntersectChords; 00128 std::list<DtSphere> myIntersectSpheres; 00130 00131 double myIntersectDataLoadExpireTime; 00132 00133 mutable tbb::spin_rw_mutex myMutex; 00134 }; 00135 00136