8 #ifndef terrainDatabase_H_
9 #define terrainDatabase_H_
27 #include <vlutil/vlFilename.h>
28 #include <vlutil/vlConfig.h>
194 virtual bool initIntersector();
197 virtual const DtFilename& fileName()
const;
198 virtual void setFileName(
const DtFilename& arg);
205 virtual void setDataType(
const DtString& newDataType);
211 virtual unsigned int versionNumber()
const;
212 virtual void setVersionNumber(
unsigned int versionNumber);
220 virtual CS_Type coordinateSystemType()
const;
240 virtual bool transformCoordinateSystem(
Coordinate_System* newCoordSys,
bool allowReflect =
false,
250 bool createNewVertices);
258 virtual const DtGroup* terrain()
const;
259 virtual bool setTerrain(
DtGroup* newTerrain);
264 virtual const DtGroup* features()
const;
265 virtual bool setFeatures(
DtGroup* newFeatures);
268 virtual int featureCount()
const;
297 virtual bool createPolygon(
const std::vector<DtVertex>& vertices,
300 bool addToStart =
false);
308 virtual bool createPolygon(
const std::vector<DtVertexID>& vertexIDList,
311 bool addToStart =
false);
324 bool addToStart =
false);
337 bool addToStart =
false);
364 virtual void recomputeExtent()
const;
367 virtual void getExtent(
DtExtent& extent)
const;
373 virtual bool planarizeVectorNetwork(DtReal tolerance,
unsigned int excessiveEdgeCount);
376 virtual bool clipVectorNetwork(
const DtPoint& southWestPoint,
377 const DtPoint& northEastPoint);
380 virtual bool clipVectorNetwork();
408 virtual double terrainHeight(
const DtPoint& localLocation)
const;
409 virtual double terrainHeight(
const DtVector& localLocation)
const;
410 virtual double terrainHeight(
double lat,
double lon)
const;
416 virtual bool terrainHeight(
const DtPoint& localLocation,
double& height)
const;
417 virtual bool terrainHeight(
const DtVector& localLocation,
double& height)
const;
418 virtual bool terrainHeight(
double lat,
double lon,
double& height)
const;
439 virtual bool terrainHeightAndSoilType(
const DtVector& localLocation,
double& height,
DtSoilType& soilType)
const;
440 virtual bool terrainHeightAndSoilType(
double lat,
double lon,
double& height,
DtSoilType& soilType)
const;
463 virtual bool terrainHeightAndIntersection(
const DtVector& localLocation,
double& height,
488 virtual bool closestIntersection(
const DtVector& localLocation,
494 virtual bool closestIntersection(
double lat,
502 virtual bool closestIntersection(
const DtVector& localLocation,
509 virtual bool closestIntersection(
double lat,
516 virtual bool closestIntersection(
const DtList& localLocationList,
518 int& numIntersections,
521 DtList *vectorList = 0)
const;
525 virtual bool intersect(
528 double& intersectionTime,
536 virtual bool intersect(
546 virtual bool intersect(
const DtSphere& sphere,
557 virtual bool allIntersectsAlongChord(
562 DtList *vectorList = 0)
const;
577 virtual bool intersectList(
578 const DtList& chordList,
580 int& numTerrainIntersections,
581 int& numVectorNetworkIntersections,
584 DtList *vectorList = 0)
const;
602 virtual bool allIntersectsAlongChordList(
603 const DtList& chordList,
605 int& numTerrainIntersections,
606 int& numVectorNetworkIntersections,
609 DtList *vectorListList = 0)
const;
640 virtual bool intersectVectorNetwork(
651 virtual bool intersectVectorNetwork(
655 DtList* vectorList)
const;
663 virtual bool intersectChordsWithVectorNetwork(
664 const DtList& chordList,
667 DtList* vectorList)
const;
675 virtual bool intersectLocationsOnVectorNetwork(
676 const DtList& localLocationList,
679 DtList* vectorList)
const;
689 virtual bool allIntersectionsWithVectorNetworkAlongChordList(
690 const DtList& chordList,
693 DtList* vectorListList)
const;
699 virtual void reduce();
705 virtual void eliminateDuplicateVertices(
const double tol);
708 virtual void eliminateDuplicateSurfaces(
void);
713 virtual void polygonNodesToTriangleNodes();
723 virtual void balanceTerrain(
unsigned int branching,
724 unsigned int bushiness);
728 virtual int terrainIntersectorType()
const;
736 virtual DtColor mostCommonTerrainSkinColorWithin(
const DtExtent& e)
const;
759 virtual bool setFromExtent(
const DtExtent& e);
762 virtual bool groundClamp(
DtPoint& databaseCoord,
float const offset = 0)
const;
765 virtual void addTerrainModifiedCallback(
769 virtual void removeTerrainModifiedCallback(
774 virtual void terrainWasModified(
const DtExtent& changedVolume);
783 virtual bool collapseNodeTree();
789 virtual int sizeInBytes()
const;
798 virtual int totalOfPolygons()
const;
804 virtual int loadExternalReferences(
int level=1);
813 int optionalDataFlags()
const;
826 bool calculateExtremePoints();
828 bool testInvariant()
const;
831 virtual void processTerrainModifiedCallbacks(
const DtExtent& changedVolume);
Definition: terrainDatabase.h:64
progressCallbackIncrementalProgressFunction * myProgSetValueFcnp
Definition: terrainDatabase.h:876
static const DtTerrainFileOptionalData CURRENT_TDB_MAX_OPTIONAL_DATA
Definition: terrainDatabase.h:90
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
Definition: chordIntersectionRecord.h:23
Definition: terrainDatabase.h:58
Definition: memoryManager.h:33
DtIntrusiveList myTerrainModifiedCallbacks
Definition: terrainDatabase.h:877
virtual int featureCount() const
Definition: terrainDatabase.h:972
unsigned int myOptionalDataFlagFromFile
Definition: terrainDatabase.h:870
Definition: triangleIndirect.h:31
Definition: chordIntersectRecordList.h:29
DtGdbNodeType
Definition: gdbNode.h:48
DtTerrainIntersector * terrainIntersector() const
Returns the terrain intersector currently in use.
Definition: terrainDatabase.h:1013
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
DtGroup * myFeatures
Definition: terrainDatabase.h:864
virtual DtGroup * features()
Definition: terrainDatabase.h:927
DtTerrainFileOptionalData
Definition: terrainDatabase.h:83
virtual void setCoordinateSystem(Coordinate_System *coordSys)
Definition: terrainDatabase.h:967
static const DtTerrainFileVersionNumber CURRENT_TDB_FILE_FORMAT_VERSION
Definition: terrainDatabase.h:78
int myFeatureCount
Definition: terrainDatabase.h:863
Definition: terrainDatabase.h:85
Definition: sphereIntersectionRecord.h:19
bool fileHasOptionalData(DtTerrainFileOptionalData optData) const
Definition: terrainDatabase.h:991
int myTotalOfTriangles
Definition: terrainDatabase.h:885
DtIntersectRecordType
Definition: gdbNode.h:74
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
bool myExtremePointsCalculated
Definition: terrainDatabase.h:882
Definition: allTypesPolygon.h:22
Definition: surface.h:181
#define DT_DLL_gdb
Definition: gdbDefines.h:25
void setOptionalDataFlag(DtTerrainFileOptionalData, bool onOff)
Definition: terrainDatabase.h:977
Definition: vertexManager.h:26
DtMemoryManager * myMemoryMgr
Definition: terrainDatabase.h:872
Definition: terrainDatabase.h:87
void progressCallbackSetValueFunction(int value)
Definition: terrainDatabase.h:132
Definition: terrainIntersectorDescriptor.h:22
virtual Coordinate_System * coordinateSystem()
Definition: terrainDatabase.h:958
DtGroup * myTerrain
Definition: terrainDatabase.h:856
void progressCallbackEndFunction()
Definition: terrainDatabase.h:134
Definition: coordSystem.h:54
DtString myDataType
Definition: terrainDatabase.h:868
bool calculateExtremePoints()
virtual int totalOfPolygons() const
Returns the total count of polygons in the terrain.
Definition: terrainDatabase.h:888
int optionalDataFlags() const
Definition: terrainDatabase.h:1003
virtual CS_Type getCS_Type() const
DtFilename myFileName
Definition: terrainDatabase.h:852
Definition: terrainDatabase.h:63
Definition: vectorNetworkRecord.h:24
virtual DtVertex highestPoint()
Returns the highest point in the terrain.
Definition: terrainDatabase.h:893
Definition: chordBundle.h:29
Definition: terrainReader.h:30
void progressCallbackIncrementalProgressFunction(int increment)
Definition: terrainDatabase.h:133
Definition: surfaceManager.h:30
DtVertexManager * myVertexManager
Definition: terrainDatabase.h:859
DtVectorNetworkTransformFlag
Definition: terrainDatabase.h:61
unsigned int DtSurfaceID
Definition: surfaceManager.h:25
Definition: coordSystem.h:36
CS_Type
Definition: coordSystem.h:35
virtual DtGroup * terrain()
Definition: terrainDatabase.h:916
Definition: vectorNetworkIntersectionRecord.h:25
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: terrainIntersector.h:33
DtSurfaceManager * mySurfaceManager
Definition: terrainDatabase.h:860
Definition: terrainInitializer.h:16
Definition: polygonIndirect.h:29
DtVectorNetworkTool * myVectorNetworkTool
Definition: terrainDatabase.h:866
Definition: baseCoordinateSystem.h:27
void progressCallbackStartFunction(const char *label, int range)
Definition: terrainDatabase.h:131
DtVertex myLowestPoint
Definition: terrainDatabase.h:880
Definition: terrainDatabase.h:86
Definition: terrainDatabase.h:148
static const unsigned int OPT_FLAGS_MASK
Definition: terrainDatabase.h:93
virtual DtMemoryManager * memoryMgr() const
Definition: terrainDatabase.h:911
void(* DtTerrainModifiedCallbackFunction)(DtTerrainDatabase *terrain, const DtExtent &changedVolume, void *usrData)
Definition: terrainModifiedCallbackInfo.h:19
Definition: terrainDatabase.h:57
void(* locationConversionFunction)(Coordinate_System *csFrom, Coordinate_System *csTo, DtPoint &in, DtPoint &out, const DtVector *offset)
Definition: terrainDatabase.h:135
DtSoilType
Definition: surface.h:21
voidpf uLong offset
Definition: ioapi.h:42
DtTerrainFileVersionNumber
Definition: terrainReader.h:17
virtual DtVertex lowestPoint()
Returns the lowest point in the terrain.
Definition: terrainDatabase.h:902
DtMemoryUsageDetails
Definition: terrainDatabase.h:55
DtVertex myHighestPoint
Definition: terrainDatabase.h:881
DtTerrainIntersector * myTerrainIntersector
Definition: terrainDatabase.h:857
virtual CS_Type coordinateSystemType() const
Definition: terrainDatabase.h:946
DtVectorNetwork * myVectorNetwork
Definition: terrainDatabase.h:865
unsigned int myVersionNumberFromFile
Definition: terrainDatabase.h:869
Definition: vectorNetwork.h:37
Coordinate_System * myCoordinateSystem
Definition: terrainDatabase.h:874
virtual DtVectorNetwork * vectorNetwork()
Definition: terrainDatabase.h:937