![]() |
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 <geometry/chord.h> 00014 #include <geometry/sphere.h> 00015 #include <osgTerrain/TerrainTile> 00016 00017 #include <vantageTerrainImplementation/vantageTerrainImplementationUtil.h> 00018 #include <vantageTerrainImplementation/vantageTerrainImplementationDefines.h> 00019 00020 class DtTerrainPagerCommandFactory; 00021 class DtTerrainSourcePager; 00022 00028 class DT_DLL_vantageTerrainImplementation DtTerrainPagerCommand 00029 { 00030 public: 00031 DtTerrainPagerCommand(DtPagingMetaDataPtr metaData) 00032 : myMetaData(metaData) 00033 , myComplete(false) 00034 { 00035 00036 }; 00037 00038 virtual ~DtTerrainPagerCommand() 00039 { 00040 }; 00041 00042 virtual void execute(DtTerrainSourcePager* pager) = 0; 00043 00044 virtual const bool complete() { return myComplete; } 00045 00046 virtual const DtPagingMetaDataPtr metaData() { return myMetaData; } 00047 00048 virtual const int type() const = 0; 00049 00050 static DtTerrainPagerCommandFactory* factory(); 00051 00052 protected: 00053 DtPagingMetaDataPtr myMetaData; 00054 bool myComplete; 00055 00056 static DtTerrainPagerCommandFactory theFactory; 00057 }; 00058 00062 template <typename T_Pager> 00063 class DtTerrainPagerSpecificCommand : public DtTerrainPagerCommand 00064 { 00065 public: 00066 DtTerrainPagerSpecificCommand(DtPagingMetaDataPtr metaData) 00067 : DtTerrainPagerCommand(metaData) 00068 { 00069 00070 } 00071 00072 virtual ~DtTerrainPagerSpecificCommand() 00073 { 00074 }; 00075 00076 00077 virtual void execute(DtTerrainSourcePager* pager) 00078 { 00081 T_Pager* specificPager = static_cast<T_Pager*>(pager); 00082 execute(specificPager); 00083 } 00084 00085 virtual void execute(T_Pager* pager) = 0; 00086 }; 00087 00088 00089