osgSim::ElevationSlice Class Reference

`#include <ElevationSlice>`

## Public Types

typedef std::vector< osg::Vec3d > | Vec3dList
typedef std::pair< double, double > | DistanceHeight
typedef std::vector< DistanceHeight > | DistanceHeightList

## Public Member Functions

| ElevationSlice ()
void | setStartPoint (const osg::Vec3d &startPoint)
const osg::Vec3d & | getStartPoint () const
void | setEndPoint (const osg::Vec3d &endPoint)
const osg::Vec3d & | getEndPoint () const
const Vec3dList & | getIntersections () const
const DistanceHeightList & | getDistanceHeightIntersections () const
void | computeIntersections (osg::Node *scene, osg::Node::NodeMask traversalMask=0xffffffff)
void | clearDatabaseCache ()
void | setDatabaseCacheReadCallback (DatabaseCacheReadCallback *dcrc)
DatabaseCacheReadCallback * | getDatabaseCacheReadCallback ()

## Static Public Member Functions

static Vec3dList | computeElevationSlice (osg::Node *scene, const osg::Vec3d &startPoint, const osg::Vec3d &endPoint, osg::Node::NodeMask traversalMask=0xffffffff)

## Protected Attributes

osg::Vec3d | _startPoint
osg::Vec3d | _endPoint
Vec3dList | _intersections
DistanceHeightList | _distanceHeightIntersections
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

## DistanceHeight

typedef std::pair<double,double> osgSim::ElevationSlice::DistanceHeight

## DistanceHeightList

typedef std::vector<DistanceHeight> osgSim::ElevationSlice::DistanceHeightList

## Vec3dList

typedef std::vector<osg::Vec3d> osgSim::ElevationSlice::Vec3dList

## Constructor & Destructor Documentation

## ElevationSlice()

osgSim::ElevationSlice::ElevationSlice | ( |  | ) |

## Member Function Documentation

## clearDatabaseCache()

void osgSim::ElevationSlice::clearDatabaseCache | ( |  | ) |

inline

Clear the database cache.

References _dcrc.

## computeElevationSlice()

Vec3dList osgSim::ElevationSlice::computeElevationSlice | ( | osg::Node * | scene,
|  | const osg::Vec3d & | startPoint,
|  | const osg::Vec3d & | endPoint,
|  | osg::Node::NodeMask | traversalMask = 0xffffffff )

static

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

## computeIntersections()

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

Compute the intersections with the specified scene graph, the results are stored in vectors of Vec3d. 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::ElevationSlice::getDatabaseCacheReadCallback | ( |  | ) |

inline

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

References _dcrc.

## getDistanceHeightIntersections()

const DistanceHeightList & osgSim::ElevationSlice::getDistanceHeightIntersections | ( |  | ) | const

inline

Get the intersections in the form a vector of pair<double,double> representing distance along the slice and height.

References _distanceHeightIntersections.

## getEndPoint()

const osg::Vec3d & osgSim::ElevationSlice::getEndPoint | ( |  | ) | const

inline

Get the end point of the slice.

References _endPoint.

## getIntersections()

const Vec3dList & osgSim::ElevationSlice::getIntersections | ( |  | ) | const

inline

Get the intersections in the form of a vector of Vec3d.

References _intersections.

## getStartPoint()

const osg::Vec3d & osgSim::ElevationSlice::getStartPoint | ( |  | ) | const

inline

Get the start point of the slice.

References _startPoint.

## setDatabaseCacheReadCallback()

void osgSim::ElevationSlice::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 ElevationSlice objects in use at one time then you should share a single DatabaseCacheReadCallback between all of them.

## setEndPoint()

void osgSim::ElevationSlice::setEndPoint | ( | const osg::Vec3d & | endPoint | ) |

inline

Set the end point of the slice.

References _endPoint.

## setStartPoint()

void osgSim::ElevationSlice::setStartPoint | ( | const osg::Vec3d & | startPoint | ) |

inline

Set the start point of the slice.

References _startPoint.

## Member Data Documentation

## _dcrc

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

protected

Referenced by clearDatabaseCache(), and getDatabaseCacheReadCallback().

## _distanceHeightIntersections

DistanceHeightList osgSim::ElevationSlice::_distanceHeightIntersections

protected

Referenced by getDistanceHeightIntersections().

## _endPoint

osg::Vec3d osgSim::ElevationSlice::_endPoint

protected

Referenced by getEndPoint(), and setEndPoint().

## _intersections

Vec3dList osgSim::ElevationSlice::_intersections

protected

Referenced by getIntersections().

## _intersectionVisitor

osgUtil::IntersectionVisitor osgSim::ElevationSlice::_intersectionVisitor

protected

## _startPoint

osg::Vec3d osgSim::ElevationSlice::_startPoint

protected

Referenced by getStartPoint(), and setStartPoint().

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

- ElevationSlice