![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 #pragma once 00006 00009 00010 #include <string> 00011 00012 #include <tbb/spin_rw_mutex.h> 00013 #include <tbb/concurrent_queue.h> 00014 00015 #include <osg/Node> 00016 00017 #include <vantageTerrainImplementation/terrainEngineCommand.h> 00018 #include <vantageTerrainImplementation/vantageTerrainImplementationDefines.h> 00019 00020 class DtVantageTerrainEngine; 00021 class DtActivePageTracker; 00022 class DtTerrainSourceTracker; 00023 00024 typedef std::multimap<int, DtTerrainPagerCommand*> DtCommandPriorityMultimap; 00025 00030 class DT_DLL_vantageTerrainImplementation DtTerrainSourcePager 00031 { 00032 public: 00033 00035 DtTerrainSourcePager(DtVantageTerrainEngine* terrainEngine); 00036 00038 virtual ~DtTerrainSourcePager(); 00039 00043 virtual void tick(); 00044 00046 virtual DtTerrainSourceTracker* createTerrainSourceTracker() = 0; 00047 00049 virtual DtTerrainSourceTracker* terrainSourceTracker(); 00050 00051 virtual void updatePageTracker(const unsigned int intersectId = 0) = 0; 00052 00056 virtual int highestPriorityPendingWork(); 00057 00060 virtual void processCommandQueue(); 00061 00065 virtual void setCurrentTime(const double& currentTime); 00066 00067 protected: 00068 00069 mutable tbb::spin_rw_mutex myMutex; 00070 00073 DtVantageTerrainEngine* myTerrainEngine; 00074 00076 DtTerrainSourceTracker* myTerrainSourceTracker; 00077 00081 double myCurrentTime; 00082 00084 DtPagerCommandQueue myCommandQueue; 00085 00088 DtCommandPriorityMultimap myPriorityCommandMultimap; 00089 };