15 #include <osgEarth/Feature>
16 #include <osgEarth/TerrainTileModel>
17 #include <osgEarth/TileKey>
24 #include <boost/shared_ptr.hpp>
26 #include <tbb/atomic.h>
27 #include <tbb/spin_rw_mutex.h>
53 explicit Extent(
const osgEarth::TileKey&);
63 typedef std::vector<IndexExtent>
Vector;
67 unsigned minx,
miny, maxx, maxy;
73 const osgEarth::TileKey& key);
91 bool setSoilType(
const DtPoint & geodeticPt,
DtSurface & surface,
bool blockIfUnavailable)
const;
100 virtual void addMaskExtent(
const Extent& extent);
103 virtual void removeMaskExtent(
const Extent& extent);
113 virtual bool insideValidArea(
const DtPoint& p)
const;
121 virtual bool extentInsideValidArea(
unsigned x1,
unsigned y1,
unsigned x2,
unsigned y2)
const;
128 virtual bool extentOutsideValidArea(
unsigned x1,
unsigned y1,
unsigned x2,
unsigned y2)
const;
135 virtual bool addActiveTileKey(
const osgEarth::TileKey& key) = 0;
142 virtual void recomputeActiveTileKeyAreas() = 0;
162 virtual std::string description()
const = 0;
165 virtual unsigned numberOfVertices()
const = 0;
170 virtual unsigned numberOfTrianglesForVertices()
const;
173 virtual void getTriangleVertices(
unsigned xindex,
unsigned yindex,
double& x,
double& y)
const = 0;
176 virtual DtVector getTriangleVertices(
unsigned xindex,
unsigned yindex)
const;
179 virtual void getTriangleIndices(
double x,
double y,
unsigned& xindex,
unsigned& yindex)
const = 0;
181 virtual double getTriangleIdxVsHeightFieldIdxRatio()
const;
185 virtual void heightfieldIndexForTriangleIndex(
186 unsigned triangleXIndex,
unsigned triangleYIndex,
187 unsigned& heightFieldXUsed,
unsigned& heightFieldYUsed)
const = 0;
190 virtual double interpolateHeight(
191 unsigned triangleXIndex,
unsigned triangleYIndex,
192 unsigned* heightFieldXUsed = 0,
unsigned* heightFieldYUsed = 0)
const = 0;
195 virtual bool getLandCoverName(
const DtPoint & pt, std::string & landCoverName,
bool &dataAvailable,
bool blockOnUnavailable)
const = 0;
198 virtual int getLandCoverValue(
const DtPoint & pt,
bool & dataAvailable,
bool blockOnUnavailable)
const = 0;
220 virtual bool findIntersections(
222 unsigned x1,
unsigned y1,
unsigned x2,
unsigned y2,
225 bool singleCell =
false,
226 bool insideValidAreaChecked =
false)
const;
230 virtual bool findIntersections(
241 virtual void findTriangles(
243 unsigned x1,
unsigned y1,
unsigned x2,
unsigned y2,
245 bool singleCell =
false,
246 bool insideValidAreaChecked =
false)
const;
250 virtual void findTriangles(
279 const osgEarth::TileKey& key);
299 bool getLandCoverName(
const DtPoint & pt, std::string & landCoverName,
bool & dataAvailable,
bool blockOnUnavailable)
const;
DtTileData is tracked by the DtOsgEarthTerrainSourceTracker for paging out tiles. ...
Definition: tileData.h:37
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
void recomputeActiveTileKeyAreas()
Should be called to enable a tilekey subarea once everything else needed for it is setup...
DtVrfChordIntersectionRecord represents a list of DtChordIntersectRecords.
Definition: vrfChordIntersectRecordList.h:31
unsigned miny
Definition: tileData.h:67
bool getLandCoverName(const DtPoint &pt, std::string &landCoverName, bool &dataAvailable, bool blockOnUnavailable) const
bool pendingRemoval
Whether this tile has had a page out command issued for it and should be ignored when calculating the...
Definition: tileData.h:206
TileData(const DtTerrainSourceTracker &tracker, const osgEarth::TileKey &key)
int getLandCoverValue(const DtPoint &pt, bool &dataAvailable, bool blockOnUnavailable) const
Definition: tileData.h:41
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
unsigned long long DtTerrainIntersectIDType
Definition: terrainInterfaceDefines.h:28
const DtTerrainSourceTracker & tracker
Tracker that owns this tile.
Definition: tileData.h:79
std::set< GroundFeatureProcess > groundFeatureList
Definition: GroundFeatureProcess.h:43
bool updateLastUsed(DtTerrainIntersectIDType value)
Update last intersect id.
Extent::Vector unSimplifiedMaskExtents
Definition: tileData.h:266
Axis aligned extents in osgearth coordinate system.
Definition: tileData.h:46
osgEarth::FeatureList myGroundFeatureList
Ground Feature List (procedural trees from osgEarth)
Definition: tileData.h:272
tbb::spin_rw_mutex myInactiveAreasMutex
Definition: tileData.h:311
Definition: surface.h:179
Extent::Vector myInactiveAreas
Definition: tileData.h:312
Axis aligned extent whose coordinates are in triangle vertex indices.
Definition: tileData.h:61
std::set< osgEarth::TileKey > TileKeySet
Definition: tileData.h:306
DtTerrainIntersectOptions Passed to terrain intersect functions to modify how intersect acts...
Definition: terrainIntersectOptions.h:15
bool insideValidArea(const DtPoint &p) const
Returns true if the point is inside a valid area.
tbb::atomic< DtTerrainIntersectIDType > myLastUsed
Definition: tileData.h:304
std::vector< osg::ref_ptr< osg::Node > > geometries
Geometries associated with this tile.
Definition: tileData.h:149
Definition: terrainProcessPolygonsBox.h:25
TileKeySet myActiveTileKeys
Definition: tileData.h:309
bool extentOutsideValidArea(unsigned x1, unsigned y1, unsigned x2, unsigned y2) const
Returns true if the extent is entirely outside the valid area.
std::map< osgEarth::TileKey, boost::shared_ptr< DtTileData > > DtTerrainTileMap
Definition: tileData.h:316
std::vector< Extent > Vector
Definition: tileData.h:48
TileType type
Abstract notion of type so we can annotate tiles.
Definition: tileData.h:145
std::vector< std::string > featuresLayerName
Definition: tileData.h:159
Base class for Terrain Source trackers.
Definition: terrainSourceTracker.h:40
TileKeySet myInactiveTileKeys
Definition: tileData.h:308
IndexExtent::Vector maskIndexExtents
Same masks as maskExtents but in triangle index coordinates.
Definition: tileData.h:269
Extent
Definition: DtAxisAlignedBoundingBox.h:15
std::vector< osgEarth::TileKey > featuresTileKey
List of ground features key generated associated with the current tileKey (groundcover is often not a...
Definition: tileData.h:158
Extent::Vector maskExtents
Masks computed from masked out areas in osgearth.
Definition: tileData.h:264
DtTerrainIntersectIDType getLastUsed() const
Return the last intersect id which touch this tile.
const osgEarth::TileKey tileKey
TileKey for this tile.
Definition: tileData.h:82
tbb::spin_rw_mutex maskExtentsMutex
Definition: tileData.h:259
std::vector< IndexExtent > Vector
Definition: tileData.h:63
IndexExtent::Vector myInactiveIndexAreas
Definition: tileData.h:313
bool addActiveTileKey(const osgEarth::TileKey &key)
Activate this tile (i.e a subregion) of this tile.
A DtChord is a finite line segment in 3-space, represented by two points.
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)...
TileType
Definition: tileData.h:39
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
Interface for getting terrain triangle data out of DtTerrainInterface::trianglesInArea.
Definition: terrainProcessPolygonsBox.h:113
Definition: tileData.h:275
osg::ref_ptr< osgEarth::TerrainTileModel > tileModel
osgearth tile model if using elevation.
Definition: tileData.h:85
std::vector< osg::ref_ptr< osg::Node > > features
list of geometries box created from the features like sim trees
Definition: tileData.h:153
Extent extent
Extent of tile.
Definition: tileData.h:88
DtVector min
Definition: tileData.h:57
tbb::atomic< unsigned int > numTriangles
The number of triangles this tile, and therefore its collision object, contain.
Definition: tileData.h:202
Represents an area query which can be used to extract triangles from DtTerrainInterface.
Definition: terrainProcessPolygonsBox.h:39