osgSim::HeightAboveTerrain Class Reference

`#include <HeightAboveTerrain>`

## Classes

struct | HAT

## Public Member Functions

| HeightAboveTerrain ()
void | clear ()
unsigned int | addPoint (const osg::Vec3d &point)
unsigned int | getNumPoints () const
void | setPoint (unsigned int i, const osg::Vec3d &point)
const osg::Vec3d & | getPoint (unsigned int i) const
double | getHeightAboveTerrain (unsigned int i) const
void | setLowestHeight (double lowestHeight)
double | getLowestHeight () const
void | computeIntersections (osg::Node *scene, osg::Node::NodeMask traversalMask=0xffffffff)
void | clearDatabaseCache ()
void | setDatabaseCacheReadCallback (DatabaseCacheReadCallback *dcrc)
DatabaseCacheReadCallback * | getDatabaseCacheReadCallback ()

## Static Public Member Functions

static double | computeHeightAboveTerrain (osg::Node *scene, const osg::Vec3d &point, osg::Node::NodeMask traversalMask=0xffffffff)

## Protected Types

typedef std::vector< HAT > | HATList

## Protected Attributes

double | _lowestHeight
HATList | _HATList
osg::ref_ptr< DatabaseCacheReadCallback > | _dcrc
osgUtil::IntersectionVisitor | _intersectionVisitor

## Detailed Description

Helper class for setting up and acquiring height above terrain intersections with terrain. By default assigns a osgSim::DatabaseCacheReadCallback that enables automatic loading of external PagedLOD tiles to ensure that the highest level of detail is used in intersections. This automatic loading of tiles is done by the intersection traversal that is done within the computeIntersections(..) method, so can result in long intersection times when external tiles have to be loaded. The external loading of tiles can be disabled by removing the read callback, this is done by calling the setDatabaseCacheReadCallback(DatabaseCacheReadCallback*) method with a value of 0.

## Member Typedef Documentation

## HATList

typedef std::vector<HAT> osgSim::HeightAboveTerrain::HATList

protected

## Constructor & Destructor Documentation

## HeightAboveTerrain()

osgSim::HeightAboveTerrain::HeightAboveTerrain | ( |  | ) |

## Member Function Documentation

## addPoint()

unsigned int osgSim::HeightAboveTerrain::addPoint | ( | const osg::Vec3d & | point | ) |

Add a height above terrain test point in the CoordinateFrame.

## clear()

void osgSim::HeightAboveTerrain::clear | ( |  | ) |

Clear the internal HAT List so it contains no height above terrain tests.

## clearDatabaseCache()

void osgSim::HeightAboveTerrain::clearDatabaseCache | ( |  | ) |

inline

Clear the database cache.

References _dcrc.

## computeHeightAboveTerrain()

double osgSim::HeightAboveTerrain::computeHeightAboveTerrain | ( | osg::Node * | scene,
|  | const osg::Vec3d & | point,
|  | osg::Node::NodeMask | traversalMask = 0xffffffff )

static

Compute the vertical distance between the specified scene graph and a single HAT point.

## computeIntersections()

void osgSim::HeightAboveTerrain::computeIntersections | ( | osg::Node * | scene,
|  | osg::Node::NodeMask | traversalMask = 0xffffffff )

Compute the HAT intersections with the specified scene graph. The results are all stored in the form of a single height above terrain value per HAT test. Note, if the topmost node is a CoordinateSystemNode then the input points are assumed to be geocentric, with the up vector defined by the EllipsoidModel attached to the CoordinateSystemNode. If the topmost node is not a CoordinateSystemNode then a local coordinates frame is assumed, with a local up vector.

## getDatabaseCacheReadCallback()

DatabaseCacheReadCallback * osgSim::HeightAboveTerrain::getDatabaseCacheReadCallback | ( |  | ) |

inline

Get the ReadCallback that does the reading of external PagedLOD models, and caching of loaded subgraphs.

References _dcrc.

## getHeightAboveTerrain()

double osgSim::HeightAboveTerrain::getHeightAboveTerrain | ( | unsigned int | i | ) | const

inline

Get the intersection height for a single height above terrain test. Note, you must call computeIntersections(..) before you can query the HeightAboveTerrain. If no intersections are found then height returned will be the height above mean sea level.

References _HATList.

## getLowestHeight()

double osgSim::HeightAboveTerrain::getLowestHeight | ( |  | ) | const

inline

Get the lowest height that the should be tested for.

References _lowestHeight.

## getNumPoints()

unsigned int osgSim::HeightAboveTerrain::getNumPoints | ( |  | ) | const

inline

Get the number of height above terrain tests.

References _HATList.

## getPoint()

const osg::Vec3d & osgSim::HeightAboveTerrain::getPoint | ( | unsigned int | i | ) | const

inline

Get the source point of single height above terrain test.

References _HATList.

## setDatabaseCacheReadCallback()

void osgSim::HeightAboveTerrain::setDatabaseCacheReadCallback | ( | DatabaseCacheReadCallback * | dcrc | ) |

Set the ReadCallback that does the reading of external PagedLOD models, and caching of loaded subgraphs. Note, if you have multiple LineOfSight or HeightAboveTerrain objects in use at one time then you should share a single DatabaseCacheReadCallback between all of them.

## setLowestHeight()

void osgSim::HeightAboveTerrain::setLowestHeight | ( | double | lowestHeight | ) |

inline

Set the lowest height that the should be tested for. Defaults to -1000, i.e. 1000m below mean sea level.

References _lowestHeight.

## setPoint()

void osgSim::HeightAboveTerrain::setPoint | ( | unsigned int | i,
|  | const osg::Vec3d & | point )

inline

Set the source point of single height above terrain test.

References _HATList.

## Member Data Documentation

## _dcrc

osg::ref_ptr<DatabaseCacheReadCallback> osgSim::HeightAboveTerrain::_dcrc

protected

Referenced by clearDatabaseCache(), and getDatabaseCacheReadCallback().

## _HATList

HATList osgSim::HeightAboveTerrain::_HATList

protected

Referenced by getHeightAboveTerrain(), getNumPoints(), getPoint(), and setPoint().

## _intersectionVisitor

osgUtil::IntersectionVisitor osgSim::HeightAboveTerrain::_intersectionVisitor

protected

## _lowestHeight

double osgSim::HeightAboveTerrain::_lowestHeight

protected

Referenced by getLowestHeight(), and setLowestHeight().

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

- HeightAboveTerrain