OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | List of all members
osgSim::LineOfSight Class Reference

#include <LineOfSight.h>

Collaboration diagram for osgSim::LineOfSight:
Collaboration graph
[legend]

Classes

struct  LOS
 

Public Types

typedef std::vector< osg::Vec3dIntersections
 

Public Member Functions

 LineOfSight ()
 
void clear ()
 
unsigned int addLOS (const osg::Vec3d &start, const osg::Vec3d &end)
 
unsigned int getNumLOS () const
 
void setStartPoint (unsigned int i, const osg::Vec3d &start)
 
const osg::Vec3dgetStartPoint (unsigned int i) const
 
void setEndPoint (unsigned int i, const osg::Vec3d &end)
 
const osg::Vec3dgetEndPoint (unsigned int i) const
 
const IntersectionsgetIntersections (unsigned int i) const
 
void computeIntersections (osg::Node *scene, osg::Node::NodeMask traversalMask=0xffffffff)
 
void clearDatabaseCache ()
 
void setDatabaseCacheReadCallback (DatabaseCacheReadCallback *dcrc)
 
DatabaseCacheReadCallbackgetDatabaseCacheReadCallback ()
 

Static Public Member Functions

static Intersections computeIntersections (osg::Node *scene, const osg::Vec3d &start, const osg::Vec3d &end, osg::Node::NodeMask traversalMask=0xffffffff)
 

Protected Types

typedef std::vector< LOSLOSList
 

Protected Attributes

LOSList _LOSList
 
osg::ref_ptr
< DatabaseCacheReadCallback
_dcrc
 
osgUtil::IntersectionVisitor _intersectionVisitor
 

Detailed Description

Helper class for setting up and acquiring line of sight 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.

Definition at line 54 of file LineOfSight.h.

Member Typedef Documentation

Definition at line 81 of file LineOfSight.h.

typedef std::vector<LOS> osgSim::LineOfSight::LOSList
protected

Definition at line 119 of file LineOfSight.h.

Constructor & Destructor Documentation

osgSim::LineOfSight::LineOfSight ( )

Member Function Documentation

unsigned int osgSim::LineOfSight::addLOS ( const osg::Vec3d start,
const osg::Vec3d end 
)

Add a line of sight test, consisting of start and end point. Returns the index number of the newly adding LOS test.

void osgSim::LineOfSight::clear ( )

Clear the internal LOS List so it contains no line of sight tests.

void osgSim::LineOfSight::clearDatabaseCache ( )
inline

Clear the database cache.

Definition at line 95 of file LineOfSight.h.

void osgSim::LineOfSight::computeIntersections ( osg::Node scene,
osg::Node::NodeMask  traversalMask = 0xffffffff 
)

Compute the LOS intersections with the specified scene graph. The results are all stored in the form of Intersections list, one per LOS test.

static Intersections osgSim::LineOfSight::computeIntersections ( osg::Node scene,
const osg::Vec3d start,
const osg::Vec3d end,
osg::Node::NodeMask  traversalMask = 0xffffffff 
)
static

Compute the intersection between the specified scene graph and a single LOS start,end pair. Returns an IntersectionList, of all the points intersected.

DatabaseCacheReadCallback* osgSim::LineOfSight::getDatabaseCacheReadCallback ( )
inline

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

Definition at line 103 of file LineOfSight.h.

const osg::Vec3d& osgSim::LineOfSight::getEndPoint ( unsigned int  i) const
inline

Get the end point of single line of sight test.

Definition at line 79 of file LineOfSight.h.

const Intersections& osgSim::LineOfSight::getIntersections ( unsigned int  i) const
inline

Get the intersection points for a single line of sight test.

Definition at line 84 of file LineOfSight.h.

unsigned int osgSim::LineOfSight::getNumLOS ( ) const
inline

Get the number of line of sight tests.

Definition at line 67 of file LineOfSight.h.

const osg::Vec3d& osgSim::LineOfSight::getStartPoint ( unsigned int  i) const
inline

Get the start point of single line of sight test.

Definition at line 73 of file LineOfSight.h.

void osgSim::LineOfSight::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.

void osgSim::LineOfSight::setEndPoint ( unsigned int  i,
const osg::Vec3d end 
)
inline

Set the end point of single line of sight test.

Definition at line 76 of file LineOfSight.h.

void osgSim::LineOfSight::setStartPoint ( unsigned int  i,
const osg::Vec3d start 
)
inline

Set the start point of single line of sight test.

Definition at line 70 of file LineOfSight.h.

Member Data Documentation

osg::ref_ptr<DatabaseCacheReadCallback> osgSim::LineOfSight::_dcrc
protected

Definition at line 122 of file LineOfSight.h.

osgUtil::IntersectionVisitor osgSim::LineOfSight::_intersectionVisitor
protected

Definition at line 123 of file LineOfSight.h.

LOSList osgSim::LineOfSight::_LOSList
protected

Definition at line 120 of file LineOfSight.h.


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