![]() |
VR-Forces 4.8 Class Documentation
|
DtTileData is tracked by the DtOsgEarthTerrainSourceTracker for paging out tiles. More...

Classes | |
| struct | Extent |
| Axis aligned extents in osgearth coordinate system. More... | |
| struct | IndexExtent |
| Axis aligned extent whose coordinates are in triangle vertex indices. More... | |
Public Types | |
| enum | TileType { Normal, Empty } |
Public Member Functions | |
| DtTileData (const DtTerrainSourceTracker &tracker, const osgEarth::TileKey &key) | |
| Default constructor. More... | |
| virtual | ~DtTileData () |
| Destructor. More... | |
| bool | setSoilType (const DtPoint &geodeticPt, DtSurface &surface, bool blockIfUnavailable) const |
| DtSurface | setSoilType (const DtTerrainTriangleStruct &tri, bool blockIfUnavailable) const |
| virtual void | addMaskExtents (const Extent::Vector &extents) |
| Adds masked out areas as they are paged in. More... | |
| virtual void | addMaskExtent (const Extent &extent) |
| virtual void | removeMaskExtent (const Extent &extent) |
| virtual void | getMaskExtents (Extent::Vector &extents) |
| virtual bool | insideValidArea (const DtPoint &p) const |
| Returns true if the point is inside a valid area. More... | |
| virtual bool | extentInsideValidArea (unsigned x1, unsigned y1, unsigned x2, unsigned y2) const |
| Returns true if the extent is entirely inside a valid area (doesn't intersect any invalid areas). More... | |
| virtual bool | extentOutsideValidArea (unsigned x1, unsigned y1, unsigned x2, unsigned y2) const |
| Returns true if the extent is entirely outside the valid area. More... | |
| virtual bool | addActiveTileKey (const osgEarth::TileKey &key)=0 |
| Add a tilekey which will use this data to be intersected against. More... | |
| virtual void | recomputeActiveTileKeyAreas ()=0 |
| Should be called to enable a tilekey subarea once everything else needed for it is setup. More... | |
| virtual std::string | description () const =0 |
| Return a text description of the tile. More... | |
| virtual unsigned | numberOfVertices () const =0 |
| Number of elevation points. More... | |
| virtual unsigned | numberOfTrianglesForVertices () const |
| Computes the number of triangles which will be considered equivalent to the number of vertices. More... | |
| virtual void | getTriangleVertices (unsigned xindex, unsigned yindex, double &x, double &y) const =0 |
| Get the vertex coordinates for triangle indices. More... | |
| virtual DtVector | getTriangleVertices (unsigned xindex, unsigned yindex) const |
| Get the vertex coordinates for triangle indices, including elevation. More... | |
| virtual void | getTriangleIndices (double x, double y, unsigned &xindex, unsigned &yindex) const =0 |
| Get the closest triangle indices for vertex coordinates. More... | |
| virtual double | getTriangleIdxVsHeightFieldIdxRatio () const |
| virtual void | heightfieldIndexForTriangleIndex (unsigned triangleXIndex, unsigned triangleYIndex, unsigned &heightFieldXUsed, unsigned &heightFieldYUsed) const =0 |
| Compute the index of the lower left corner of the elevation cell that contains the triangle indices. More... | |
| virtual double | interpolateHeight (unsigned triangleXIndex, unsigned triangleYIndex, unsigned *heightFieldXUsed=0, unsigned *heightFieldYUsed=0) const =0 |
| Interpolate height value for triangle indices. More... | |
| virtual bool | getLandCoverName (const DtPoint &pt, std::string &landCoverName, bool &dataAvailable, bool blockOnUnavailable) const =0 |
| virtual int | getLandCoverValue (const DtPoint &pt, bool &dataAvailable, bool blockOnUnavailable) const =0 |
| virtual DtTerrainIntersectIDType | getLastUsed () const =0 |
| Return the last intersect id which touch this tile. More... | |
| virtual bool | updateLastUsed (DtTerrainIntersectIDType value)=0 |
| Update last intersect id. More... | |
| virtual bool | findIntersections (const DtChord &chord, unsigned x1, unsigned y1, unsigned x2, unsigned y2, DtVrfChordIntersectRecordList &intList, const DtTerrainIntersectOptions &options, bool singleCell=false, bool insideValidAreaChecked=false) const |
| Find intersections with chord. More... | |
| virtual bool | findIntersections (const DtChord &chord, DtVrfChordIntersectRecordList &intList, const DtTerrainIntersectOptions &options) const =0 |
| Entry point to findIntersections. More... | |
| virtual void | findTriangles (const DtTerrainProcessPolygonsBox &box, unsigned x1, unsigned y1, unsigned x2, unsigned y2, DtTriangleOutputInterface &, bool singleCell=false, bool insideValidAreaChecked=false) const |
| Output triangles from this tile. More... | |
| virtual void | findTriangles (const DtTerrainProcessPolygonsBox &box, DtTriangleOutputInterface &) const =0 |
| Entry point to findTriangles. More... | |
| virtual osgEarth::FeatureList & | groundFeatureList () |
| return the ground feature list to be filled or read More... | |
Public Attributes | |
| const DtTerrainSourceTracker & | tracker |
| Tracker that owns this tile. More... | |
| const osgEarth::TileKey | tileKey |
| TileKey for this tile. More... | |
| osg::ref_ptr < osgEarth::TerrainTileModel > | tileModel |
| osgearth tile model if using elevation. More... | |
| Extent | extent |
| Extent of tile. More... | |
| TileType | type |
| Abstract notion of type so we can annotate tiles. More... | |
| std::vector< osg::ref_ptr < osg::Node > > | geometries |
| Geometries associated with this tile. More... | |
| std::vector< osg::ref_ptr < osg::Node > > | features |
| list of geometries box created from the features like sim trees More... | |
| std::vector< osgEarth::TileKey > | featuresTileKey |
| List of ground features key generated associated with the current tileKey (groundcover is often not at the same lod) The layer name goes with the tile key. More... | |
| std::vector< std::string > | featuresLayerName |
| tbb::atomic< unsigned int > | numTriangles |
| The number of triangles this tile, and therefore its collision object, contain. More... | |
| bool | pendingRemoval |
| Whether this tile has had a page out command issued for it and should be ignored when calculating the oldest tile. More... | |
Protected Attributes | |
| tbb::spin_rw_mutex | maskExtentsMutex |
| Extent::Vector | maskExtents |
| Masks computed from masked out areas in osgearth. More... | |
| Extent::Vector | unSimplifiedMaskExtents |
| IndexExtent::Vector | maskIndexExtents |
| Same masks as maskExtents but in triangle index coordinates. More... | |
| osgEarth::FeatureList | myGroundFeatureList |
| Ground Feature List (procedural trees from osgEarth) More... | |
DtTileData is tracked by the DtOsgEarthTerrainSourceTracker for paging out tiles.
| enum DtTileData::TileType |
|
explicit |
Default constructor.
|
virtual |
Destructor.
| bool DtTileData::setSoilType | ( | const DtPoint & | geodeticPt, |
| DtSurface & | surface, | ||
| bool | blockIfUnavailable | ||
| ) | const |
| DtSurface DtTileData::setSoilType | ( | const DtTerrainTriangleStruct & | tri, |
| bool | blockIfUnavailable | ||
| ) | const |
|
virtual |
Adds masked out areas as they are paged in.
|
virtual |
|
virtual |
|
virtual |
Returns true if the point is inside a valid area.
Invalid areas are areas which are covered by a mask (i.e. an cut in), have higher resolution elevation data, or have not been checked for higher resolution data yet. Does not use mask tolerance.
Reimplemented in TileData.
|
virtual |
Returns true if the extent is entirely inside a valid area (doesn't intersect any invalid areas).
Invalid areas are areas which are covered by a mask (i.e. an cut in), have higher resolution elevation data, or have not been checked for higher resolution data yet. Coordinates are triangle indices.
Reimplemented in TileData.
|
virtual |
Returns true if the extent is entirely outside the valid area.
This means that there is no data to intersect with in this extent in this tile. This function is generally used for optimization and may return false even if the extent actually is completely outside the valid area. Coordinates are triangle indices.
Reimplemented in TileData.
|
pure virtual |
Add a tilekey which will use this data to be intersected against.
Must be a descendant of this tile. When a tile is added it must be checked for higher resolution data in descendant keys. Once that is done for a given key and there is no higher resolution data it should be added here.
Implemented in TileData.
|
pure virtual |
Should be called to enable a tilekey subarea once everything else needed for it is setup.
This would be do automatically in addActiveTileKey but that function needs to be called before the masks and skirt geometry are dealt with in order to reject multiple page ins. The area can only be enabled after that is all done though, otherwise there might be some intersections done on the masked out area b/c it is not setup yet.
Implemented in TileData.
|
pure virtual |
Return a text description of the tile.
|
pure virtual |
Number of elevation points.
|
virtual |
Computes the number of triangles which will be considered equivalent to the number of vertices.
This is only for tracking purposes, since the system only tracks triangles.
|
pure virtual |
Get the vertex coordinates for triangle indices.
Get the vertex coordinates for triangle indices, including elevation.
|
pure virtual |
Get the closest triangle indices for vertex coordinates.
|
virtual |
|
pure virtual |
Compute the index of the lower left corner of the elevation cell that contains the triangle indices.
|
pure virtual |
Interpolate height value for triangle indices.
|
pure virtual |
Implemented in TileData.
|
pure virtual |
Implemented in TileData.
|
pure virtual |
Return the last intersect id which touch this tile.
Implemented in TileData.
|
pure virtual |
Update last intersect id.
Implemented in TileData.
|
virtual |
Find intersections with chord.
Indices are indices of the max resolution triangle grid. If the triangle intersection merge tolerance is set then singleCell and outsideMask are calculated and passed to subcalls (b/c once true they are true for all children).
| singleCell | true if the extent lies within one elevation cell. |
| insideValidAreaChecked | true if the extent lies entirely inside valid areas. |
|
pure virtual |
Entry point to findIntersections.
Calls overloaded function with extent of cell.
|
virtual |
Output triangles from this tile.
Indices are indices of the max resolution triangle grid. If the triangle output merge tolerance is set then singleCell and outsideMask are calculated and passed to subcalls (b/c once true they are true for all children).
| singleCell | true if the extent lies within one elevation cell. |
| insideValidAreaChecked | true if the extent lies entirely inside valid areas. |
|
pure virtual |
Entry point to findTriangles.
Calls overloaded function with extent of cell.
|
virtual |
return the ground feature list to be filled or read
| const DtTerrainSourceTracker& DtTileData::tracker |
Tracker that owns this tile.
| const osgEarth::TileKey DtTileData::tileKey |
TileKey for this tile.
| osg::ref_ptr<osgEarth::TerrainTileModel> DtTileData::tileModel |
osgearth tile model if using elevation.
| TileType DtTileData::type |
Abstract notion of type so we can annotate tiles.
| std::vector< osg::ref_ptr<osg::Node> > DtTileData::geometries |
Geometries associated with this tile.
Could be geometry for tile or just the skirt part if it exists.
| std::vector< osg::ref_ptr<osg::Node> > DtTileData::features |
list of geometries box created from the features like sim trees
| std::vector< osgEarth::TileKey > DtTileData::featuresTileKey |
List of ground features key generated associated with the current tileKey (groundcover is often not at the same lod) The layer name goes with the tile key.
| std::vector< std::string > DtTileData::featuresLayerName |
The number of triangles this tile, and therefore its collision object, contain.
Used for estimating page out gains.
| bool DtTileData::pendingRemoval |
Whether this tile has had a page out command issued for it and should be ignored when calculating the oldest tile.
|
mutableprotected |
|
protected |
Masks computed from masked out areas in osgearth.
Points inside these extents are not part of this tile, i.e. intersections inside are ignored.
|
protected |
|
protected |
Same masks as maskExtents but in triangle index coordinates.
|
protected |
Ground Feature List (procedural trees from osgEarth)