Public Member Functions |
| | DtOsgEarthTerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue, const osgEarth::Profile *profile, unsigned int lod) |
| virtual | ~DtOsgEarthTerrainSourceTracker () |
| virtual void | addPagedInTile (const osgEarth::TileKey tileKey, const DtTileData &tileData) |
| | Adds a tileId and the corresponding tileData to myPagedInTiles.
|
| virtual void | removePagedInTile (const osgEarth::TileKey tileKey) |
| | Removes a tileId and the corresponding tileData from myPagedInTiles.
|
| virtual bool | dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry) |
| | Finds all tiles within geometry, and tests to see whether they have all been paged in already.
|
| virtual void | pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry) |
| | Page in data within geometry.
|
| virtual DtTerrainIntersectIDType | findOldestPagedData (unsigned int &numTrianglesOut) |
| | Finds the least-recently-used tile and set myOldestPagedObject to it.
|
| virtual void | pageOutOldestData (const int priority) |
| | Adds a page out command for the least-recently-used tileID to myCommandQueue.
|
| virtual void | drawDebugInfo (btIDebugDraw *debugDrawer) |
| | Draws the tile boundaries if we are drawing tile boundaries.
|
| virtual bool | canPageOutData (DtTerrainIntersectIDType intersectId) |
| | Returns true if there is data that can be paged out.
|
| virtual void | convertDirectionToOffset (Direction, int &x, int &y) const |
| | Given the direction, return the x/y offset: NORTH: y = -1 SOUTH: y = 1 EAST: x = 1 WEST: x = -1.
|
| | DtTerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue) |
| virtual | ~DtTerrainSourceTracker () |
| virtual DtTerrainInterfaceConfig & | configOptions () |
| virtual void | addNodeToCollisionMapping (DtNodeId node, btCollisionObject *collisionObject) |
| virtual void | addNodesToCollisionMapping (DtNodeId node, DtCollisionObjectList *collObjList) |
| virtual void | removeNodeToCollisionMappings (DtNodeId node) |
virtual std::list
< btCollisionObject * > | collisionObjectsForNode (DtNodeId node) |
| virtual const Coordinate_System * | localCS () const |
| virtual void | setLabel (const DtString &) |
| virtual void | printInfo () const |
Protected Member Functions |
| virtual DtPageInTilesCommand * | createPageInTilesCommand (DtPagingMetaDataPtr metaData) |
| virtual DtPageOutTilesCommand * | createPageOutTilesCommand (DtPagingMetaDataPtr metaData) |
| virtual osgEarth::TileKey | makeTileKey (const DtPoint &local, const DtGeodeticCoord &geod) const |
| virtual void | tilesInGeometry (DtTerrainPagingGeometryPtr geometry, DtTileKeyList &tilesOut) const |
| | Calls a tilesIn function based on the geometry's type.
|
| virtual void | pageOutData (const DtTileKeyList tilesToRemove, const int priority) |
| | Creates a page out command with the given list of ids and adds it to the command queue.
|
| virtual void | tilesUnderChord (const DtChord &chord, DtTileKeyList &tilesOut) const |
| virtual void | tilesInSphere (const DtSphere &sphere, DtTileKeyList &tilesOut) const |
| virtual void | tilesInShape (const DtLocalVertexList &vertices, DtTileKeyList &tilesOut) const |
| virtual bool | dataAvailable (const DtTileKeyList &keyList, DtTerrainIntersectIDType intersectId=0) |
| virtual bool | setDrawMode (DtDrawMode) |
| Direction | nextTileDirection (Direction latDirection, Direction lonDirection, bool isMostlyEastWest, double slope, double startX, double startY, double edgeX, double edgeY) const |
| | Determine what direction the next tile under the chord is in, given the edge values in X and Y of the current tile.
|
| Direction DtOsgEarthTerrainSourceTracker::nextTileDirection |
( |
Direction |
latDirection, |
|
|
Direction |
lonDirection, |
|
|
bool |
isMostlyEastWest, |
|
|
double |
slope, |
|
|
double |
startX, |
|
|
double |
startY, |
|
|
double |
edgeX, |
|
|
double |
edgeY |
|
) |
| const |
|
protected |
Determine what direction the next tile under the chord is in, given the edge values in X and Y of the current tile.
lat and lon Direction are the directions in latitude and longitude from chord start to chord end. isMostlyEastWest is true if the chord delta X > delta Y; checking this condition allows the function to avoid dealing with small or zero sized deltas. slope is deltaX/deltaY or vice versa (see below). startX and Y are the chord start coordinates.
If isMostlyEastWest, then the slope is assumed to be (endY - startY)/(endX - startX), otherwise the reciprocal of that value. If lat direction is north, then edgeY is assumed to be yMax of the tile extent; otherwise yMin. If lon direction is east, then edgeX is assumed to be xMax of the extent; otherwise xMin.