![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2006 MAK Technologies, Inc.** All rights reserved. 00003 ******************************************************************************/ 00004 /****************************************************************************** 00005 * $RCSfile: vmapDatabase.h,v $ $Revision: 1.21 $ $State: Exp $ 00006 ******************************************************************************/ 00007 00008 #ifndef VMAP_DATABASE_H_ 00009 #define VMAP_DATABASE_H_ 00010 00013 00014 #include <list> 00015 00016 #include <matrix/geodCoord.h> 00017 #include <vlutil/vlString.h> 00018 00019 #include "vmap/vmapDefines.h" 00020 00021 //forward defs 00022 class DtVpfTile; 00023 class DtVpfTable; 00024 class DtVectorNetwork; 00025 class DtVpfRow; 00026 class DtTerrainDatabase; 00027 class DtVpfSpecFactory; 00028 00029 //typedefs 00030 typedef std::list<DtVpfTile*> DtTileList; 00031 typedef std::list<DtVpfTile*>::iterator DtTileListIter; 00032 00033 typedef enum {PointFeature, LinearFeature, ArealFeature} DtFeatureTypes; 00034 00035 struct DtAreaQuad 00036 { 00037 DtGeodeticCoord topRight; 00038 DtGeodeticCoord bottomLeft; 00039 }; 00040 00043 class DT_DLL_vmap DtVpfDatabase 00044 { 00045 private: 00047 DtVpfDatabase(const DtVpfDatabase &input); 00048 00050 DtVpfDatabase& operator=(const DtVpfDatabase &input); 00051 00052 public: 00055 DtVpfDatabase(DtString path); 00056 00058 virtual ~DtVpfDatabase(); 00059 00062 virtual bool initDatabase(); 00063 00066 virtual DtString dbPath() const; 00067 00070 virtual DtString library() const {return myLibraryOfInterest;} 00071 00074 virtual DtString theme() const {return myThemeOfInterest;} 00075 00078 virtual DtString feature() const {return myFeatureOfInterest;} 00079 00082 virtual DtString tilePath(int ID) const; 00083 00086 virtual bool setAreaOfInterest(const DtGeodeticCoord& SWCorner, 00087 const DtGeodeticCoord& NECorner); 00088 00091 virtual void getAreaOfInterest(DtGeodeticCoord& SWCorner, 00092 DtGeodeticCoord& NECorner) const; 00093 00095 virtual bool setLibraryOfInterest(DtString lib); 00096 00099 virtual bool setThemeOfInterest(DtString theme); 00100 00103 virtual bool setFeatureOfInterest(DtString feature); 00104 00108 virtual bool loadTiles(DtVectorNetwork* vectorNetwork); 00109 00113 virtual DtTerrainDatabase* terrainDatabase() const; 00114 00117 virtual void setTerrainDatabase(DtTerrainDatabase* tdb); 00118 00122 virtual DtVpfSpecFactory* specFactory() const; 00123 00126 virtual std::list<DtString> libraryList() const; 00127 00130 virtual std::list<DtString> themeList() const; 00131 00134 virtual std::list<DtString> featureList() const; 00135 00136 protected: 00137 virtual bool overlap(DtAreaQuad& a1, DtAreaQuad& a2); 00138 00139 DtVectorNetwork* myVectorNetwork; 00140 DtString myPath; 00141 00142 DtString myLibraryOfInterest; 00143 DtString myThemeOfInterest; 00144 DtString myFeatureOfInterest; 00145 DtGeodeticCoord mySWCorner; 00146 DtGeodeticCoord myNECorner; 00147 00148 DtVpfTable* myLibraryReferenceTable; 00149 DtVpfTable* myTileReferenceTable; 00150 DtVpfTable* myTileFaceTable; 00151 DtVpfTable* myTileFaceBoundsTable; 00152 DtVpfTable* myGeoReferenceTable; 00153 00154 DtVpfTable* myThemeCatagoryTable; 00155 DtVpfTable* myFeatureClassTable; 00156 00157 DtTerrainDatabase* myTerrainDatabase; 00158 DtVpfSpecFactory* mySpecFactory; 00159 }; 00160 00161 #endif