![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #ifndef gdbTerrainImplementation_h 00012 #define gdbTerrainImplementation_h 00013 00014 #include "terrainInterface/terrainInterfaceDefines.h" 00015 #include "terrainInterface/terrainImplementation.h" 00016 #include <geometry/intersectionRecord.h> 00017 #include "terrainInterface/terrainCapabilities.h" 00018 #include "geometry/surface.h" 00019 #include "gdb/gdbNode.h" 00020 #include "gdb/group.h" 00021 #include "gdb/triInd.h" 00022 00023 class DtTdbManager; 00024 class DtTerrainImplementationDescriptor; 00025 class DtVectorNetwork; 00026 namespace makArchives 00027 { 00028 class DtGenericTerrainRecord; 00029 } 00030 00034 class DT_DLL_terrainInterface DtGdbTerrainImplementation : 00035 public DtTerrainImplementation 00036 { 00037 public: 00038 DtGdbTerrainImplementation(DtConsoleCommandManager* cmdMgr); 00039 00040 virtual ~DtGdbTerrainImplementation(); 00041 00042 static DtTerrainImplementation* create(DtConsoleCommandManager* cmdMgr); 00043 00044 virtual bool loadTerrain(const makArchives::DtGenericTerrainRecord& record, 00045 const TerrainSettings& settings = TerrainSettings()); 00046 00047 virtual const Coordinate_System* coordinateSystem() const; 00048 00051 virtual bool chordIntersect(const DtChord& chord, 00052 DtChordIntersectionRecord& record, 00053 DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA, 00054 bool* dataAvailable = 0, bool overrideBlockingAssert = false) const; 00055 00058 virtual bool allIntersectsAlongChord(const DtChord& chord, 00059 DtChordIntersectRecordList& intList, 00060 DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA, 00061 bool* dataAvailable = 0, bool overrideBlockingAssert = false) const; 00062 00065 virtual bool sphereIntersect(const DtSphere& sphere, DtSphereIntersectionRecord& record, 00066 DtIntersectionRecord::DtIntersectionType irtFlag = DtIntersectionRecord::INT_ALL_DATA, 00067 bool* dataAvailable = 0, bool overrideBlockingAssert = false) const; 00068 00069 virtual const DtVectorNetwork* vectorNetwork() const; 00070 00075 virtual bool intersectVectorNetwork(const DtChord& chord, 00076 DtVectorNetworkRecord* vectorRecord, 00077 DtVectorNetworkIntersectionRecord* vectorIntersectionRecord) const; 00078 00079 virtual const DtTerrainCapabilities* terrainCapabilities() const; 00080 00081 virtual void processTrianglesInArea(DtTriangleCallbackFcn func, DtTriangleCallbackFinalizeFcn finalize, DtTerrainProcessPolygonsBox& box, void* usr) const; 00082 virtual void convertNodeToTriangle(DtGdbNode* gdbNode, DtTerrainTriangleStruct& triangle) const; 00083 protected: 00084 DtTdbManager* myTdbManager; 00085 DtTerrainCapabilities myCapabilities; 00086 }; 00087 00088 #endif