![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright 2010 VT MAK 00003 *******************************************************************************/ 00004 00007 00009 00010 #ifndef osgEarthTerrainImplementation_h 00011 #define osgEarthTerrainImplementation_h 00012 00013 #include <osgEarthTerrainImplementation/osgEarthTerrainImplementationDefines.h> 00014 00015 #include <terrainInterface/terrainImplementation.h> 00016 #include <terrainInterface/terrainInterface.h> 00017 00018 #include <osgEarthUtil/ElevationManager> 00019 00020 namespace makArchives 00021 { 00022 class DtGenericTerrainRecord; 00023 } 00024 00056 00057 class DT_DLL_osgEarthTerrainImplementation DtOsgEarthTerrainImplementation : 00058 public DtTerrainImplementation 00059 { 00060 public: 00061 00062 DtOsgEarthTerrainImplementation(DtConsoleCommandManager*); 00063 00064 virtual ~DtOsgEarthTerrainImplementation(); 00065 00066 virtual bool loadTerrain(const makArchives::DtGenericTerrainRecord& record, 00067 const TerrainSettings& settings = TerrainSettings()); 00068 00069 virtual const Coordinate_System* coordinateSystem() const; 00070 00071 virtual bool chordIntersect(const DtChord& chord, 00072 DtChordIntersectionRecord& record, 00073 DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA, 00074 bool* dataAvailable = 0, bool overrideBlockingAssert = false) const; 00075 00076 virtual bool allIntersectsAlongChord(const DtChord& chord, 00077 DtChordIntersectRecordList& intList, 00078 DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA, 00079 bool* dataAvailable = 0, bool overrideBlockingAssert = false) const; 00080 00081 virtual bool sphereIntersect(const DtSphere& sphere, DtSphereIntersectionRecord& record, 00082 DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA, 00083 bool* dataAvailable = 0, bool overrideBlockingAssert = false) const; 00084 00085 virtual bool intersectVectorNetwork(const DtChord& chord, 00086 DtVectorNetworkRecord* vectorRecord, 00087 DtVectorNetworkIntersectionRecord* vectorIntersectionRecord) const; 00088 00091 virtual const DtTerrainCapabilities* terrainCapabilities() const { return 0; }; 00092 00093 virtual bool chordIsVertical(const DtChord& chord) const; 00094 00095 virtual const DtVectorNetwork* vectorNetwork() const; 00096 00097 static DtTerrainImplementation* create(DtConsoleCommandManager*); 00098 00099 protected: 00100 00101 Coordinate_System* myCoordinateSystem; 00102 00104 osgEarth::Util::ElevationManager* myElevationManager; 00105 00106 DtVectorNetwork * myVectorNetwork; 00107 }; 00108 00110 extern "C" 00111 { 00112 DT_DLL_osgEarthTerrainImplementation bool DtRegisterTerrainImplementation(DtTerrainInterface* terrainIf); 00113 } 00114 #endif