OpenSceneGraph
osgSim::HeightAboveTerrain Class Reference

Helper class for setting up and acquiring height above terrain intersections with terrain. More...

struct  HAT

## Public Member Functions

HeightAboveTerrain ()

void clear ()
Clear the internal HAT List so it contains no height above terrain tests. More...

unsigned int addPoint (const osg::Vec3d &point)
Add a height above terrain test point in the CoordinateFrame. More...

unsigned int getNumPoints () const
Get the number of height above terrain tests. More...

void setPoint (unsigned int i, const osg::Vec3d &point)
Set the source point of single height above terrain test. More...

const osg::Vec3dgetPoint (unsigned int i) const
Get the source point of single height above terrain test. More...

double getHeightAboveTerrain (unsigned int i) const
Get the intersection height for a single height above terrain test. More...

void setLowestHeight (double lowestHeight)
Set the lowest height that the should be tested for. More...

double getLowestHeight () const
Get the lowest height that the should be tested for. More...

Compute the HAT intersections with the specified scene graph. More...

void clearDatabaseCache ()
Clear the database cache. More...

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

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

## Static Public Member Functions

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

## Protected Types

typedef std::vector< HATHATList

## Protected Attributes

double _lowestHeight

HATList _HATList

osgUtil::IntersectionVisitor _intersectionVisitor

## Detailed Description

Helper class for setting up and acquiring height above terrain intersections with terrain.

## ◆ HATList

 typedef std::vector osgSim::HeightAboveTerrain::HATList
protected

## ◆ HeightAboveTerrain()

 osgSim::HeightAboveTerrain::HeightAboveTerrain ( )

## Member Function Documentation

 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.

## ◆ computeHeightAboveTerrain()

 static 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.

inline

## ◆ 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.

## ◆ getLowestHeight()

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

Get the lowest height that the should be tested for.

## ◆ getNumPoints()

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

Get the number of height above terrain tests.

## ◆ getPoint()

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

Get the source point of single height above terrain test.

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.

## ◆ setPoint()

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

Set the source point of single height above terrain test.

## ◆ _dcrc

 osg::ref_ptr osgSim::HeightAboveTerrain::_dcrc
protected

## ◆ _HATList

 HATList osgSim::HeightAboveTerrain::_HATList
protected

## ◆ _intersectionVisitor

 osgUtil::IntersectionVisitor osgSim::HeightAboveTerrain::_intersectionVisitor
protected

## ◆ _lowestHeight

 double osgSim::HeightAboveTerrain::_lowestHeight
protected

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