![]() |
VR-Forces 4.6 Class Documentation
|
DtTileData is tracked by the DtOsgEarthTerrainSourceTracker for paging out tiles and for drawing tile boundaries. More...
Classes | |
| struct | Extent |
| Axis aligned extents in osgearth coordinate system. More... | |
Public Types | |
| enum | TileType { Normal, Empty } |
Public Member Functions | |
| DtTileData (const DtOsgEarthTerrainSourceTracker &tracker, const osgEarth::TileKey &key) | |
| Default constructor. | |
| virtual | ~DtTileData () |
| Destructor. | |
| virtual void | addMaskExtents (const Extent::Vector &extents) |
| Adds masked out areas as they are paged in. | |
| virtual bool | insideValidArea (const DtPoint &p) const |
| Returns true if the point is inside a valid area. | |
| virtual bool | extentInsideValidArea (double x1, double y1, double x2, double y2) const |
| Returns true if the extent is entirely inside a valid area (doesn't intersect any invalid areas). | |
| virtual bool | extentOutsideValidArea (double x1, double y1, double x2, double y2) const |
| Returns true if the extent is entirely outside the valid area. | |
| virtual bool | addActiveTileKey (const osgEarth::TileKey &key)=0 |
| Add a tilekey which will use this data to be intersected against. | |
| virtual void | recomputeActiveTileKeyAreas ()=0 |
| Should be called to enable a tilekey subarea once everything else needed for it is setup. | |
| virtual std::string | description () const =0 |
| Return a text description of the tile. | |
| virtual unsigned | numberOfVertices () const =0 |
| Number of elevation points. | |
| virtual unsigned | numberOfTrianglesForVertices () const |
| Computes the number of triangles which will be considered equivalent to the number of vertices. | |
| virtual void | getTriangleVertices (unsigned xindex, unsigned yindex, double &x, double &y) const =0 |
| Get the vertex coordinates for triangle indices. | |
| 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. | |
| virtual double | interpolateHeight (unsigned triangleXIndex, unsigned triangleYIndex, unsigned *heightFieldXUsed=0, unsigned *heightFieldYUsed=0) const =0 |
| Interpolate height value for triangle indices. | |
| virtual DtTerrainIntersectIDType | getLastUsed () const =0 |
| Return the last intersect id which touch this tile. | |
| virtual bool | updateLastUsed (DtTerrainIntersectIDType value)=0 |
| Update last intersect id. | |
| virtual bool | findIntersections (const DtChord &chord, unsigned x1, unsigned y1, unsigned x2, unsigned y2, DtVrfChordIntersectRecordList &intList, bool singleCell=false, bool insideValidAreaChecked=false) const |
| Find intersections with chord. | |
| virtual bool | findIntersections (const DtChord &chord, DtVrfChordIntersectRecordList &intList) const =0 |
| Entry point to findIntersections. | |
| 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. | |
| virtual void | findTriangles (const DtTerrainProcessPolygonsBox &box, DtTriangleOutputInterface &) const =0 |
| Entry point to findTriangles. | |
Public Attributes | |
| const DtOsgEarthTerrainSourceTracker & | tracker |
| Tracker that owns this tile. | |
| const osgEarth::TileKey | tileKey |
| TileKey for this tile. | |
| osg::ref_ptr < osgEarth::TerrainTileModel > | tileModel |
| osgearth tile model if using elevation. | |
| Extent | extent |
| Extent of tile. | |
| TileType | type |
| Abstract notion of type so we can annotate tiles (mostly for drawing then later). | |
| std::vector< osg::ref_ptr < osg::Node > > | geometries |
| Geometries associated with this tile. | |
| tbb::atomic< unsigned int > | numTriangles |
| The number of triangles this tile, and therefore its collision object, contain. | |
| bool | pendingRemoval |
| Whether this tile has had a page out command issued for it and should be ignored when calculating the oldest tile. | |
Protected Attributes | |
| tbb::spin_rw_mutex | maskExtentsMutex |
| Extent::Vector | maskExtents |
| Masks computed from masked out areas in osgearth. | |
DtTileData is tracked by the DtOsgEarthTerrainSourceTracker for paging out tiles and for drawing tile boundaries.
| enum DtTileData::TileType |
|
explicit |
Default constructor.
|
virtual |
Destructor.
|
virtual |
Adds masked out areas as they are paged in.
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.
|
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. Uses mask tolerance b/c the mask boundaries can be align exactly with triangle extents.
|
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.
|
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.
|
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.
|
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.
|
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 |
Return the last intersect id which touch this tile.
|
pure virtual |
Update last intersect id.
|
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.
| const DtOsgEarthTerrainSourceTracker& 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 (mostly for drawing then later).
| 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.
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.