![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include "terrainInterface/terrainInterfaceDefines.h" 00017 #include "terrainInterface/terrainImplementation.h" 00018 #include <vlutil/vlFilename.h> 00019 #include <vlutil/vlDynamic.h> 00020 #include <list> 00021 #include "terrainInterface/terrainPassThroughLayer.h" 00022 00023 class DtTerrainInterface; 00024 class DtConsoleCommand; 00025 00026 const char DtGdbTerrainImplementationType[] = "simTerrain-gdb"; 00027 const char DtEllipsoidTerrainImplementationType[] = "simTerrain-ellipsoid"; 00028 00032 class DT_DLL_terrainInterface DtTerrainImplementationManager 00033 { 00034 private: 00036 00037 DtTerrainImplementationManager(const DtTerrainImplementationManager& orig); 00038 DtTerrainImplementationManager& operator=(const DtTerrainImplementationManager& orig); 00040 00041 public: 00042 DtTerrainImplementationManager(); 00043 virtual ~DtTerrainImplementationManager(); 00044 00045 virtual void init(DtTerrainInterface* terrainIf, DtConsoleCommandManager* cmdMgr); 00046 00047 virtual void addTerrainImplementation(const DtString& implementationName, 00048 DtTerrainImplementationCreatorFcn creatorFcn); 00049 00050 virtual void addTerrainPassThroughLayer(const DtString& passThoughName, 00051 DtTerrainPassThroughLayerCreatorFcn creatorFcn); 00052 00054 virtual void loadImplementationLibraries(DtTerrainInterface* terrainIf); 00057 virtual bool loadImplementationLibrary(const DtFilename& filename, DtTerrainInterface* terrainIf); 00058 00062 virtual DtTerrainImplementation* addPassThroughLayer(DtTerrainImplementation* impl, 00063 const DtString& layerType) const; 00064 00067 virtual std::list<DtString> availablePassThroughLayers() const; 00068 00070 virtual DtTerrainImplementation* createTerrainImplementation(const DtString& implType); 00071 00072 protected: 00073 DtTerrainImplementationFactory myTerrainImplFactory; 00074 std::list<DtDynamicLibrary*> myImplementationLibList; 00075 DtTerrainPassThroughLayerFactory myTerrainPassThroughFactory; 00076 DtConsoleCommandManager* myCommandManager; 00077 };