VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends
DtOsgEarthTerrainSourceTracker Class Referenceabstract
Inheritance diagram for DtOsgEarthTerrainSourceTracker:
Inheritance graph
[legend]

Classes

struct  TrackerMetric
 

Public Types

typedef boost::ptr_vector
< TileSpatialIndex
TileRoots
 

Public Member Functions

 DtOsgEarthTerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue, osgEarth::MapNode *mapNode)
 
virtual DtTerrainCategoryMask terrainCategories () const override
 
virtual bool useRawElevation () const override
 
virtual bool useLandCoverData () const override
 
virtual bool useLifeMapLayer () const override
 
unsigned getHighestLodForLandCover () const
 
void setLandCoverSurfaceCharacteristicsMapper (makVrf::DtSurfaceCharacteristicMap *mapper)
 
virtual void getSoilFromString (const std::string &soilType, DtSurface &surface) const override
 
virtual const osg::ref_ptr
< osgEarth::LandCoverLayer > 
getBestLandCoverLayer (const osgEarth::TileKey &key) const
 
virtual boost::optional
< DtTerrainIntersectOptions::Fidelity
intersectFidelity () const override
 
virtual unsigned tileCount () const
 
virtual unsigned cellCount () const
 
virtual bool init (DtTerrainSourcePager &) override
 
virtual void addPagedInTile (const osgEarth::TileKey &tilekey, const std::shared_ptr< DtTileData > &tileData)
 
virtual void removePagedInTile (const osgEarth::TileKey tileKey)
 
virtual bool dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry) override
 
virtual bool findHeightFieldIntersections (DtTerrainIntersectStatus &status, const DtChord &chord, DtVrfChordIntersectRecordList &intList, const DtTerrainIntersectOptions &options)
 
virtual bool halveChordAndFindHeightFieldIntrx (const DtChord &chord, DtChord convertedChord, const DtTerrainIntersectOptions &options, DtTerrainIntersectStatus &status, DtVrfChordIntersectRecordList &intList)
 
virtual bool splitChordAt180AndFindHeightFieldIntrx (const DtChord &chord, const DtTerrainIntersectOptions &options, DtTerrainIntersectStatus &status, DtVrfChordIntersectRecordList &intList)
 
virtual void processTriangles (DtTriangleOutputInterface &output, const DtTerrainProcessPolygonsBox &box)
 
virtual void pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry) override
 
virtual DtTerrainIntersectIDType findOldestPagedData (unsigned int &numTrianglesOut) override
 
virtual void pageOutOldestData (const int priority) override
 
virtual bool canPageOutData (DtTerrainIntersectIDType intersectId) override
 
virtual osgEarth::TileKey getBestTileKey (const osgEarth::TileKey &) const override
 
virtual void findMissingTiles (const DtTerrainPagingGeometryPtr &geometry, DtTileKeyList &tiles) const
 
void findPagedInTilesWithinExtent (std::vector< osgEarth::TileKey > &tileKeysPagedIn, const osgEarth::GeoExtent &extent) const
 
void findPagesAtLodWithinExtents (std::vector< osgEarth::TileKey > &tileKeysFound, const osgEarth::GeoExtent &extent, unsigned lod) const
 
virtual void writeIndex (IndexInterface &, IndexOutputInterface &) const
 
virtual bool writeIndexLayers (IndexInterface &, unsigned precision) const
 
virtual std::vector
< IndexConfig
< DtOsgEarthTerrainSourceTracker > > 
getIndexConfigInfoForLayer (const osgEarth::ElevationLayer &layer) const
 
virtual void readIndex (IndexInputInterface &, unsigned layerNumber, const IndexConfig< DtOsgEarthTerrainSourceTracker > &idxConfig)
 
virtual bool readIndexLayers (osgEarth::ElevationLayerVector &flattenedElevationLayers)
 
virtual void enableMetrics (bool value)
 
virtual void getMetrics (TrackerMetric &trackerMetric) const
 
virtual
DtOsgEarthTerrainSourcePager
getOsgEarthTerrainSourcePager ()
 
 OsgEarthTileDataCallback ()
 
virtual bool operator() (const std::shared_ptr< DtTileData > &tile) override=0
 
virtual unsigned maxLOD () const override
 
virtual void setMaxLOD (unsigned)
 
virtual unsigned getMaxLODForBilinearIntersection () const override
 
virtual void setMaxLODForBilinearIntersection (unsigned)
 
virtual double triangleOutputMergeTolerance () const override
 
virtual void setTriangleOutputMergeTolerance (double tol)
 
virtual double intersetionTriangleMergeTolerance () const override
 
virtual void setIntersectionTriangleMergeTolerance (double tol)
 
virtual unsigned minElevationIndexLOD () const override
 
virtual void setMinElevationIndexLOD (unsigned)
 
virtual unsigned maxElevationIndexLOD () const override
 
virtual void setMaxElevationIndexLOD (unsigned)
 
virtual double maxChordLengthBeforeSplitSquared () const
 
virtual void setMaxChordLengthBeforeSplit (double)
 
virtual unsigned maxElevationChordSplitTestLOD () const
 
virtual void setMaxElevationChordSplitTestLOD (unsigned)
 
- Public Member Functions inherited from DtTerrainSourceTracker
 DtTerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue, osgEarth::MapNode *mapNode)
 
virtual ~DtTerrainSourceTracker ()
 
virtual DtTerrainInterfaceConfigconfigOptions ()
 
virtual const
DtTerrainInterfaceConfig
configOptions () const
 
virtual void addNodesToCollisionMapping (DtNodeId node, DtCollisionObjectList *collObjList)
 
virtual void removeNodeToCollisionMappings (DtNodeId node)
 
virtual DtCollisionObjectList collisionObjectsForNode (DtNodeId node)
 
virtual osgEarth::MapNode * mapNode () const
 
virtual const osgEarth::Profile * profile () const
 
virtual const Coordinate_SystemlocalCS () const
 
virtual void setLabel (const DtString &)
 
virtual DtString label () const
 
virtual void printInfo () const
 
virtual void getPageOutData (DtNodeBoundingList &nodeBoundingList)
 
virtual void getPageInData (DtNodeBoundingList &nodeBoundingList)
 
virtual void getProceduralTreeTile (DtDebugDrawTerrainOutputInterface::terrainLineList &nodeBoundingList)
 
virtual bool findTileInCache (const DtTerrainPagingGeometry *geometry, std::vector< std::shared_ptr< DtTileData > > &data, const DtChord *chord=NULL) const
 
virtual void addTileToCache (const std::shared_ptr< DtTileData > &data, const DtChord *chord=NULL)
 
virtual void clearTileCache ()
 
virtual unsigned minElevationTileLoadingLOD () const
 
virtual void setMinElevationTileLoading (unsigned lod)
 

Static Public Attributes

static const unsigned int theGuiMaxRenderLod
 

Protected Types

typedef makVrf::RTree
< std::shared_ptr
< osgEarth::DataExtent >
, double, 2 > 
DtLayerExtentTree
 

Protected Member Functions

virtual DtPageInTilesCommandcreatePageInTilesCommand (DtPagingMetaDataPtr metaData)
 
virtual DtPageOutTilesCommandcreatePageOutTilesCommand (DtPagingMetaDataPtr metaData)
 
virtual bool aboveAllTerrain (const DtChord &geocentricChord, const DtChord &geodeticCoord) const
 
virtual bool shortEnoughForIntersection (const DtChord &geocentricChord, const DtChord &geodeticChord, double chordLengthSq) const
 
virtual bool crosses180Lon (const DtChord &geodeticChord) const
 
virtual bool findData (const DtTerrainPagingGeometry *geometry, std::vector< std::shared_ptr< DtTileData > > &data, const DtPagingMetaDataPtr &metaData=DtPagingMetaDataPtr(), OsgEarthTileDataCallback *callback=nullptr) const
 
virtual bool findData (const DtTerrainPagingGeometry *geometry, std::vector< std::shared_ptr< DtTileData > > &data, OsgEarthTileDataCallback *callback) const
 
virtual void findMissing (const DtTerrainPagingGeometry &geometry, DtTileKeyList &missing) const
 
virtual std::shared_ptr
< DtTileData
findOldest () const
 
virtual std::shared_ptr
< DtTileData
findOldestUnlocked () const
 
virtual void resetMetrics ()
 

Protected Attributes

osgEarth::ElevationLayerVector myElevationLayers
 
osgEarth::ElevationLayerVector myFlattenedElevationLayers
 
makVrf::DtSurfaceCharacteristicMapmyLandCoverCharacteristicsMap
 
std::vector< osg::ref_ptr
< osgEarth::LandCoverLayer > > 
myLandCoverLayers
 
std::vector< osg::ref_ptr
< osgEarth::Procedural::LifeMapLayer > > 
myLifeMapLayers
 
unsigned myHighestLodForLandCover
 
const bool myUseRawElevation
 
bool myUseLandCover
 
bool myUseLifeMapLayer
 
unsigned int myMaxLOD
 
unsigned int myMaxLODForBilinearIntersection
 
double myTriangleOutputMergeTolerance
 
double myIntersetionTriangleMergeTolerance
 
unsigned myMinElevationIndexLOD
 
unsigned myMaxElevationIndexLOD
 
double myMaxChordLengthBeforeSplitSquared
 
unsigned myMaxElevationChordSplitLOD
 
TileRoots myTileSpatialIndexRoots
 
const double myWorldWidth
 
DtTerrainIntersectOptions::Fidelity myFidelity
 
std::weak_ptr< DtTileDatamyOldestData
 
std::weak_ptr< DtTileDatamyOldestLandData
 
tbb::task_arena myArena
 
bool myWarnedAboutCsType
 
std::map< std::string,
std::shared_ptr
< DtLayerExtentTree > > 
myLayerExtentTrees
 
bool myRecordMetrics
 
TrackerMetric myTrackerMetrics
 
DtOsgEarthTerrainSourcePagermyOsgearthPager
 
- Protected Attributes inherited from DtTerrainSourceTracker
DtString myLabel
 
DtTerrainInterfaceConfig myConfig
 
DtPagerCommandQueuemyCommandQueue
 
DtNodeToCollObjMMap myNodeToCollObjMMap
 
tbb::spin_rw_mutex myMutex
 
tbb::spin_rw_mutex myTileCacheMutex
 
DtVantageTerrainEnginemyVantageTerrainEngine
 
const osg::ref_ptr
< osgEarth::MapNode > 
myMapNode
 
const osgEarth::Map * myMap
 
const osgEarth::Profile * myMapProfile
 
tileDataCacheVector myTileDataCache
 
std::atomic< intmyTileCacheHit
 
std::atomic< intmyTileCacheQuery
 
unsigned myMinElevationTileLoadingLOD
 
DtTerrainSourcePagermyPager
 

Friends

class DtOsgEarthTerrainSourceTracker
 

Member Typedef Documentation

typedef makVrf::RTree<std::shared_ptr<osgEarth::DataExtent>, double, 2> DtOsgEarthTerrainSourceTracker::DtLayerExtentTree
protected

Constructor & Destructor Documentation

DtOsgEarthTerrainSourceTracker::DtOsgEarthTerrainSourceTracker ( DtVantageTerrainEngine ,
DtPagerCommandQueue commandQueue,
osgEarth::MapNode *  mapNode 
)

Member Function Documentation

virtual DtTerrainCategoryMask DtOsgEarthTerrainSourceTracker::terrainCategories ( ) const
overridevirtual
Returns
A bitfield indicating the terrain categories that this tracker is used for. Default implementation returns DtTerrainCategoryAll. Subclasses are expected to override and replace with more specific terrain categories where applicable.

Reimplemented from DtTerrainSourceTracker.

virtual bool DtOsgEarthTerrainSourceTracker::useRawElevation ( ) const
overridevirtual

True if using elevation data (i.e. if using osgEarth REX engine).

Reimplemented from DtTerrainSourceTracker.

virtual bool DtOsgEarthTerrainSourceTracker::useLandCoverData ( ) const
overridevirtual

Return true if the current tracker use land cover data.

Reimplemented from DtTerrainSourceTracker.

virtual bool DtOsgEarthTerrainSourceTracker::useLifeMapLayer ( ) const
overridevirtual

Return true if the current tracker use Biome data.

Reimplemented from DtTerrainSourceTracker.

unsigned DtOsgEarthTerrainSourceTracker::getHighestLodForLandCover ( ) const
void DtOsgEarthTerrainSourceTracker::setLandCoverSurfaceCharacteristicsMapper ( makVrf::DtSurfaceCharacteristicMap mapper)
virtual void DtOsgEarthTerrainSourceTracker::getSoilFromString ( const std::string &  soilType,
DtSurface surface 
) const
overridevirtual

Reimplemented from DtTerrainSourceTracker.

virtual const osg::ref_ptr<osgEarth::LandCoverLayer> DtOsgEarthTerrainSourceTracker::getBestLandCoverLayer ( const osgEarth::TileKey &  key) const
virtual
virtual boost::optional<DtTerrainIntersectOptions::Fidelity> DtOsgEarthTerrainSourceTracker::intersectFidelity ( ) const
overridevirtual

Fidelity this tracker is configured for.

Reimplemented from DtTerrainSourceTracker.

virtual unsigned DtOsgEarthTerrainSourceTracker::maxLOD ( ) const
overridevirtual

Max lod that the tracker will generate.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::setMaxLOD ( unsigned  )
virtual

Max lod that the tracker will generate.

virtual unsigned DtOsgEarthTerrainSourceTracker::getMaxLODForBilinearIntersection ( ) const
overridevirtual

Max lod at which intersections will be done by exact solution of bilinear surface. Higher lods will be intersected against the same triangle grid that REX uses.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::setMaxLODForBilinearIntersection ( unsigned  )
virtual

Max lod at which intersections will be done by exact solution of bilinear surface. Higher lods will be intersected against the same triangle grid that REX uses.

virtual double DtOsgEarthTerrainSourceTracker::triangleOutputMergeTolerance ( ) const
overridevirtual

If the max difference between true elevation and elevation defined by the two triangles that make up this cell is less than this value then the system will use those two triangles instead of breaking them up further. Intersection is for terrain intersections. Triangle output is for triangle generation.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::setTriangleOutputMergeTolerance ( double  tol)
virtual

If the max difference between true elevation and elevation defined by the two triangles that make up this cell is less than this value then the system will use those two triangles instead of breaking them up further. Intersection is for terrain intersections. Triangle output is for triangle generation.

virtual double DtOsgEarthTerrainSourceTracker::intersetionTriangleMergeTolerance ( ) const
overridevirtual

If the max difference between true elevation and elevation defined by the two triangles that make up this cell is less than this value then the system will use those two triangles instead of breaking them up further. Intersection is for terrain intersections. Triangle output is for triangle generation.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::setIntersectionTriangleMergeTolerance ( double  tol)
virtual

If the max difference between true elevation and elevation defined by the two triangles that make up this cell is less than this value then the system will use those two triangles instead of breaking them up further. Intersection is for terrain intersections. Triangle output is for triangle generation.

virtual unsigned DtOsgEarthTerrainSourceTracker::minElevationIndexLOD ( ) const
overridevirtual

Sets the range of LOD levels where elevation values from the terrain index will be used.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::setMinElevationIndexLOD ( unsigned  )
virtual

Sets the range of LOD levels where elevation values from the terrain index will be used.

virtual unsigned DtOsgEarthTerrainSourceTracker::maxElevationIndexLOD ( ) const
overridevirtual

Sets the range of LOD levels where elevation values from the terrain index will be used.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::setMaxElevationIndexLOD ( unsigned  )
virtual

Sets the range of LOD levels where elevation values from the terrain index will be used.

virtual double DtOsgEarthTerrainSourceTracker::maxChordLengthBeforeSplitSquared ( ) const
virtual

Set the max chord length before chords are split.

virtual void DtOsgEarthTerrainSourceTracker::setMaxChordLengthBeforeSplit ( double  )
virtual

Set the max chord length before chords are split.

virtual unsigned DtOsgEarthTerrainSourceTracker::maxElevationChordSplitTestLOD ( ) const
virtual

Sets the max lod used to estimate max terrain elevation under chords.

virtual void DtOsgEarthTerrainSourceTracker::setMaxElevationChordSplitTestLOD ( unsigned  )
virtual

Sets the max lod used to estimate max terrain elevation under chords.

virtual unsigned DtOsgEarthTerrainSourceTracker::tileCount ( ) const
virtual

Number of currently paged in tiles.

virtual unsigned DtOsgEarthTerrainSourceTracker::cellCount ( ) const
virtual

Number of cells in index.

virtual bool DtOsgEarthTerrainSourceTracker::init ( DtTerrainSourcePager )
overridevirtual

Initialize after configuration.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::addPagedInTile ( const osgEarth::TileKey &  tilekey,
const std::shared_ptr< DtTileData > &  tileData 
)
virtual

Adds a tileId and the corresponding tileData to #myPagedInTiles.

Parameters
tileIdKey for the tileData passed in.
tileDatatileData to create the tileId -> tileData mapping with.
virtual void DtOsgEarthTerrainSourceTracker::removePagedInTile ( const osgEarth::TileKey  tileKey)
virtual

Removes a tileId and the corresponding tileData from #myPagedInTiles.

virtual bool DtOsgEarthTerrainSourceTracker::dataAvailable ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
overridevirtual

Finds all tiles within geometry, and tests to see whether they have all been paged in already. Tiles within the geometry that have been paged in have their "lastUsed" data set to the intersectId parameter for removal priority.

Parameters
geometryThe geometry to test for data available.
intersectIdOptional parameter to mark already-paged-in tiles with.
Returns
True if all data within this geometry has been paged in.

Implements DtTerrainSourceTracker.

virtual bool DtOsgEarthTerrainSourceTracker::findHeightFieldIntersections ( DtTerrainIntersectStatus status,
const DtChord chord,
DtVrfChordIntersectRecordList intList,
const DtTerrainIntersectOptions options 
)
virtual

Performs terrain intersections.

Parameters
statusSee DtTerrainIntersectStatus.
chordChord to intersect.
intListResults added to this.
optionsSee DtTerrainIntersectOptions.
virtual bool DtOsgEarthTerrainSourceTracker::halveChordAndFindHeightFieldIntrx ( const DtChord chord,
DtChord  convertedChord,
const DtTerrainIntersectOptions options,
DtTerrainIntersectStatus status,
DtVrfChordIntersectRecordList intList 
)
virtual

Used in findHeightFieldIntersections. Splits a long chord (shortEnoughForIntersection is false) into halves and recursively checks findHeightFieldIntersections on each.

virtual bool DtOsgEarthTerrainSourceTracker::splitChordAt180AndFindHeightFieldIntrx ( const DtChord chord,
const DtTerrainIntersectOptions options,
DtTerrainIntersectStatus status,
DtVrfChordIntersectRecordList intList 
)
virtual

Used in findHeightFieldIntersections. Splits the chord at lon = 180 (Geoc y=0) and recursively checks findHeightFieldIntersections on each part.

virtual void DtOsgEarthTerrainSourceTracker::processTriangles ( DtTriangleOutputInterface output,
const DtTerrainProcessPolygonsBox box 
)
virtual

Outputs triangles interpolated from elevation data.

Parameters
outputOutput interface which received triangles.
boxQuery which defines which area is output.
virtual void DtOsgEarthTerrainSourceTracker::pageInData ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
overridevirtual

Page in data within geometry. Determines which tiles are within the geometry and adds a page in command to myCommandQueue to page in any tiles within the geometry that have not yet been paged in.

Parameters
geometryThe geometry to page in data within.
intersectIdId to assign to the page in command to seed tileData for newly paged-in tiles.
priorityPriority to use for commands generated by this call.

Implements DtTerrainSourceTracker.

virtual DtTerrainIntersectIDType DtOsgEarthTerrainSourceTracker::findOldestPagedData ( unsigned int numTrianglesOut)
overridevirtual

Finds the least-recently-used tile and set myOldestPagedObject to it.

Parameters
numTrianglesOutThe number of triangles the least-recently-used tileId represents in the collision world.
Returns
The id of the last intersect test for which this tracker's least-recently-used data was necessary.

Implements DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::pageOutOldestData ( const int  priority)
overridevirtual

Adds a page out command for the least-recently-used tileID to myCommandQueue.

Parameters
priorityPriority to use for commands generated by this call.

Implements DtTerrainSourceTracker.

virtual bool DtOsgEarthTerrainSourceTracker::canPageOutData ( DtTerrainIntersectIDType  intersectId)
overridevirtual

Returns true if there is data that can be paged out.

Implements DtTerrainSourceTracker.

virtual osgEarth::TileKey DtOsgEarthTerrainSourceTracker::getBestTileKey ( const osgEarth::TileKey &  ) const
overridevirtual

Uses osgearth layer data to find the smallest lod for a given area that actually has data. The osgearth APIs can only return a larger tile (i.e. smaller lod), so this function is used by starting with the highest LOD (the max LOD set, which is 19 by default for REX) and then going up. Elevation layers may not have any information on this in which case the input key will be returned. This is all used so that we don't have to always have to start checking for data at the highest LOD. The quadtree itself uses this to cap the depth in a given area.

Reimplemented from DtTerrainSourceTracker.

virtual void DtOsgEarthTerrainSourceTracker::findMissingTiles ( const DtTerrainPagingGeometryPtr geometry,
DtTileKeyList tiles 
) const
virtual

Find all the tiles that intersect the geometry which are not paged in.

void DtOsgEarthTerrainSourceTracker::findPagedInTilesWithinExtent ( std::vector< osgEarth::TileKey > &  tileKeysPagedIn,
const osgEarth::GeoExtent &  extent 
) const

! Finds the TileKeys for all of the Paged in Tiles that intersect the geo extent

void DtOsgEarthTerrainSourceTracker::findPagesAtLodWithinExtents ( std::vector< osgEarth::TileKey > &  tileKeysFound,
const osgEarth::GeoExtent &  extent,
unsigned  lod 
) const
virtual void DtOsgEarthTerrainSourceTracker::writeIndex ( IndexInterface ,
IndexOutputInterface  
) const
virtual

Writes an index using the whole terrain (i.e. merged) elevation data.

virtual bool DtOsgEarthTerrainSourceTracker::writeIndexLayers ( IndexInterface ,
unsigned  precision 
) const
virtual

Writes indices for each elevation layer.

Returns
True if no error, false otherwise.
virtual std::vector<IndexConfig<DtOsgEarthTerrainSourceTracker> > DtOsgEarthTerrainSourceTracker::getIndexConfigInfoForLayer ( const osgEarth::ElevationLayer &  layer) const
virtual

Return vector of index config objects, one per each index set in layer.

virtual void DtOsgEarthTerrainSourceTracker::readIndex ( IndexInputInterface ,
unsigned  layerNumber,
const IndexConfig< DtOsgEarthTerrainSourceTracker > &  idxConfig 
)
virtual

Reads an index file.

virtual bool DtOsgEarthTerrainSourceTracker::readIndexLayers ( osgEarth::ElevationLayerVector &  flattenedElevationLayers)
virtual

Reads per layer index files.

Returns
True if no error, false otherwise.
virtual void DtOsgEarthTerrainSourceTracker::enableMetrics ( bool  value)
virtual

Enable or not debug metrics.

virtual void DtOsgEarthTerrainSourceTracker::getMetrics ( TrackerMetric trackerMetric) const
virtual

return all the metric at once

virtual DtOsgEarthTerrainSourcePager* DtOsgEarthTerrainSourceTracker::getOsgEarthTerrainSourcePager ( )
inlinevirtual

return the associated OsgEarthTerrainSourcePager

virtual DtPageInTilesCommand* DtOsgEarthTerrainSourceTracker::createPageInTilesCommand ( DtPagingMetaDataPtr  metaData)
protectedvirtual
virtual DtPageOutTilesCommand* DtOsgEarthTerrainSourceTracker::createPageOutTilesCommand ( DtPagingMetaDataPtr  metaData)
protectedvirtual
virtual bool DtOsgEarthTerrainSourceTracker::aboveAllTerrain ( const DtChord geocentricChord,
const DtChord geodeticCoord 
) const
protectedvirtual
virtual bool DtOsgEarthTerrainSourceTracker::shortEnoughForIntersection ( const DtChord geocentricChord,
const DtChord geodeticChord,
double  chordLengthSq 
) const
protectedvirtual

Determines if the chord is (not) above the threshold length myMaxChordLengthBeforeSplitSquared.

virtual bool DtOsgEarthTerrainSourceTracker::crosses180Lon ( const DtChord geodeticChord) const
protectedvirtual

Determines if the chord goes between end points that are on opposite sides of the lon = 180 meridian.

virtual bool DtOsgEarthTerrainSourceTracker::findData ( const DtTerrainPagingGeometry geometry,
std::vector< std::shared_ptr< DtTileData > > &  data,
const DtPagingMetaDataPtr metaData = DtPagingMetaDataPtr(),
OsgEarthTileDataCallback callback = nullptr 
) const
protectedvirtual
virtual bool DtOsgEarthTerrainSourceTracker::findData ( const DtTerrainPagingGeometry geometry,
std::vector< std::shared_ptr< DtTileData > > &  data,
OsgEarthTileDataCallback callback 
) const
protectedvirtual
virtual void DtOsgEarthTerrainSourceTracker::findMissing ( const DtTerrainPagingGeometry geometry,
DtTileKeyList missing 
) const
protectedvirtual
virtual std::shared_ptr<DtTileData> DtOsgEarthTerrainSourceTracker::findOldest ( ) const
protectedvirtual
virtual std::shared_ptr<DtTileData> DtOsgEarthTerrainSourceTracker::findOldestUnlocked ( ) const
protectedvirtual
virtual void DtOsgEarthTerrainSourceTracker::resetMetrics ( )
protectedvirtual

reset metrics values

DtOsgEarthTerrainSourceTracker::OsgEarthTileDataCallback ( )
explicit
virtual bool DtOsgEarthTerrainSourceTracker::operator() ( const std::shared_ptr< DtTileData > &  tile)
overridepure virtual

Friends And Related Function Documentation

friend class DtOsgEarthTerrainSourceTracker
friend

Member Data Documentation

const unsigned int DtOsgEarthTerrainSourceTracker::theGuiMaxRenderLod
static

The LOD that the GUI renders to, regardless of data LOD. This is used to generate triangles from elevation data that will match this LOD, when necessary.

osgEarth::ElevationLayerVector DtOsgEarthTerrainSourceTracker::myElevationLayers
protected

top level elevation layers

osgEarth::ElevationLayerVector DtOsgEarthTerrainSourceTracker::myFlattenedElevationLayers
protected

flattens composite layers

makVrf::DtSurfaceCharacteristicMap* DtOsgEarthTerrainSourceTracker::myLandCoverCharacteristicsMap
protected
std::vector<osg::ref_ptr<osgEarth::LandCoverLayer> > DtOsgEarthTerrainSourceTracker::myLandCoverLayers
protected
std::vector<osg::ref_ptr<osgEarth::Procedural::LifeMapLayer> > DtOsgEarthTerrainSourceTracker::myLifeMapLayers
protected
unsigned DtOsgEarthTerrainSourceTracker::myHighestLodForLandCover
protected
const bool DtOsgEarthTerrainSourceTracker::myUseRawElevation
protected

use elevation (if false old geometry system will be used)

bool DtOsgEarthTerrainSourceTracker::myUseLandCover
protected
bool DtOsgEarthTerrainSourceTracker::myUseLifeMapLayer
protected
unsigned int DtOsgEarthTerrainSourceTracker::myMaxLOD
protected

max LOD of the whole system

unsigned int DtOsgEarthTerrainSourceTracker::myMaxLODForBilinearIntersection
protected

max LOD which will use exact intersection with bilinear surface

double DtOsgEarthTerrainSourceTracker::myTriangleOutputMergeTolerance
protected

max error tolerances used to decide when it's not necessary triangle elevation to full resolution

double DtOsgEarthTerrainSourceTracker::myIntersetionTriangleMergeTolerance
protected
unsigned DtOsgEarthTerrainSourceTracker::myMinElevationIndexLOD
protected

range of LODs where elevation from index will be used

unsigned DtOsgEarthTerrainSourceTracker::myMaxElevationIndexLOD
protected
double DtOsgEarthTerrainSourceTracker::myMaxChordLengthBeforeSplitSquared
protected

max chord length squared before chords are split

unsigned DtOsgEarthTerrainSourceTracker::myMaxElevationChordSplitLOD
protected

max lod used for estimated max elevation under chord for spliting chords

TileRoots DtOsgEarthTerrainSourceTracker::myTileSpatialIndexRoots
protected

roots of the quad tree (not necessarily 4, geodetic usually has 2)

const double DtOsgEarthTerrainSourceTracker::myWorldWidth
protected

width of world in osgearth coord sys, used for wrapping coords

DtTerrainIntersectOptions::Fidelity DtOsgEarthTerrainSourceTracker::myFidelity
protected

intersect fidelity for this layer

std::weak_ptr<DtTileData> DtOsgEarthTerrainSourceTracker::myOldestData
protected

cached pointer to oldest tile data

std::weak_ptr<DtTileData> DtOsgEarthTerrainSourceTracker::myOldestLandData
protected
tbb::task_arena DtOsgEarthTerrainSourceTracker::myArena
protected

Tbb arena to limit number of threads.

bool DtOsgEarthTerrainSourceTracker::myWarnedAboutCsType
protected

Remember if a warning about CS type was given;.

std::map<std::string, std::shared_ptr<DtLayerExtentTree> > DtOsgEarthTerrainSourceTracker::myLayerExtentTrees
protected
bool DtOsgEarthTerrainSourceTracker::myRecordMetrics
protected

Are debug metrics enable.

TrackerMetric DtOsgEarthTerrainSourceTracker::myTrackerMetrics
protected

Structure holding all the metric.

DtOsgEarthTerrainSourcePager* DtOsgEarthTerrainSourceTracker::myOsgearthPager
protected

Pointer to the associated pager.


The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)