VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
makVrv::DtSimpleIntersector Class Reference

DtSimpleIntersector is a higher-level intersector class which adds functions for line of sight, height above terrain and height over terrain. This also enables the user to find out the type of element intersected with (terrain patch, entity, prop, etc)

Inheritance diagram for makVrv::DtSimpleIntersector:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtSimpleIntersector ()
 
virtual double heightAboveTerrain (const DtVector &loc, DtSimpleIntersectorResult &result, DtModelSetId modelSet=DtModelSetId::Models3D, bool useHighLod=false, bool includeEntities=false, std::vector< DtElementID > *ignoreList=0)
 
virtual double heightAboveTerrain (DtElementID element, DtSimpleIntersectorResult &result, DtModelSetId modelSet=DtModelSetId::Models3D, bool useHighLod=false, bool includeEntities=false, std::vector< DtElementID > *ignoreList=0)
 
virtual double heightOfTerrain (const DtVector &loc, DtSimpleIntersectorResult &result, DtModelSetId modelSet=DtModelSetId::Models3D, bool useHighLod=false)
 
virtual bool hasLineOfSight (const DtVector &fromLoc, const DtVector &toLoc, DtSimpleIntersectorResult &result, DtModelSetId modelSet=DtModelSetId::Models3D, bool useHighLod=false, bool includeEntities=false, std::vector< DtElementID > *ignoreList=0)
 
virtual bool hasLineOfSight (DtElementID fromElem, DtElementID toElem, DtSimpleIntersectorResult &result, DtModelSetId modelSet=DtModelSetId::Models3D, bool useHighLod=false, bool includeEntities=false, std::vector< DtElementID > *ignoreList=0)
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtSimpleIntersectorinstance (DtDe &de)
 
static void registerInstance (DtDe &de, DtSimpleIntersector *anInstance)
 

Protected Member Functions

 DtSimpleIntersector (DtDe &de)
 
virtual DtUniqueID sceneObjectIdFromElementId (DtElementID element, DtModelSetId modelSet)
 
virtual DtVector positionFromSceneObjectId (DtUniqueID sceneObjectId)
 
virtual bool getTerrainIntersection (const DtVector &loc, DtIntersectorResult &result, DtModelSetId modelSet=DtModelSetId::Models3D, bool useHighLod=false, bool includeEntities=false, std::vector< DtElementID > *ignoreList=0)
 
virtual void fillInElementType (DtSimpleIntersectorResult &result)
 
virtual void slot_coordinateSystemChanged ()
 

Protected Attributes

DtDemyDe
 
DtIntersectorsContainermyIntersectors = nullptr
 
DtSignalConnectionManager myConnections
 
DtCoordinateSystemmyCoordinateSystem = nullptr
 

Constructor & Destructor Documentation

virtual makVrv::DtSimpleIntersector::~DtSimpleIntersector ( )
virtual

DTOR.

makVrv::DtSimpleIntersector::DtSimpleIntersector ( DtDe de)
protected

Member Function Documentation

static DtSimpleIntersector& makVrv::DtSimpleIntersector::instance ( DtDe de)
static

Get the instance of the DtSimpleIntersector.

static void makVrv::DtSimpleIntersector::registerInstance ( DtDe de,
DtSimpleIntersector anInstance 
)
static

Register the instance with the DtDe.

virtual double makVrv::DtSimpleIntersector::heightAboveTerrain ( const DtVector loc,
DtSimpleIntersectorResult result,
DtModelSetId  modelSet = DtModelSetId::Models3D,
bool  useHighLod = false,
bool  includeEntities = false,
std::vector< DtElementID > *  ignoreList = 0 
)
virtual

Returns the height above the terrain at location loc. The position of the terrain is returned in terrainLoc.

virtual double makVrv::DtSimpleIntersector::heightAboveTerrain ( DtElementID  element,
DtSimpleIntersectorResult result,
DtModelSetId  modelSet = DtModelSetId::Models3D,
bool  useHighLod = false,
bool  includeEntities = false,
std::vector< DtElementID > *  ignoreList = 0 
)
virtual
virtual double makVrv::DtSimpleIntersector::heightOfTerrain ( const DtVector loc,
DtSimpleIntersectorResult result,
DtModelSetId  modelSet = DtModelSetId::Models3D,
bool  useHighLod = false 
)
virtual

Returns the height of the terrain at the given location using local coordinates. It will return the altutide in geodetic coordinates. Hit location defaults to the supplied location if no intersection occurred.

virtual bool makVrv::DtSimpleIntersector::hasLineOfSight ( const DtVector fromLoc,
const DtVector toLoc,
DtSimpleIntersectorResult result,
DtModelSetId  modelSet = DtModelSetId::Models3D,
bool  useHighLod = false,
bool  includeEntities = false,
std::vector< DtElementID > *  ignoreList = 0 
)
virtual

Returns true if there is nothing blocking line of sight between the two points. If false is returned, the location of the intersection will be stored in hitLoc.

virtual bool makVrv::DtSimpleIntersector::hasLineOfSight ( DtElementID  fromElem,
DtElementID  toElem,
DtSimpleIntersectorResult result,
DtModelSetId  modelSet = DtModelSetId::Models3D,
bool  useHighLod = false,
bool  includeEntities = false,
std::vector< DtElementID > *  ignoreList = 0 
)
virtual
virtual DtUniqueID makVrv::DtSimpleIntersector::sceneObjectIdFromElementId ( DtElementID  element,
DtModelSetId  modelSet 
)
protectedvirtual

Gets the scene object ID from the element ID.

virtual DtVector makVrv::DtSimpleIntersector::positionFromSceneObjectId ( DtUniqueID  sceneObjectId)
protectedvirtual

Gets the position of the scene object.

virtual bool makVrv::DtSimpleIntersector::getTerrainIntersection ( const DtVector loc,
DtIntersectorResult result,
DtModelSetId  modelSet = DtModelSetId::Models3D,
bool  useHighLod = false,
bool  includeEntities = false,
std::vector< DtElementID > *  ignoreList = 0 
)
protectedvirtual

Returns true if there is an intersection, putting the intersection result in result.

virtual void makVrv::DtSimpleIntersector::fillInElementType ( DtSimpleIntersectorResult result)
protectedvirtual
virtual void makVrv::DtSimpleIntersector::slot_coordinateSystemChanged ( )
protectedvirtual

slot for when the coordinate system changes

Member Data Documentation

DtDe& makVrv::DtSimpleIntersector::myDe
protected
DtIntersectorsContainer* makVrv::DtSimpleIntersector::myIntersectors = nullptr
protected
DtSignalConnectionManager makVrv::DtSimpleIntersector::myConnections
protected
DtCoordinateSystem* makVrv::DtSimpleIntersector::myCoordinateSystem = nullptr
protected

local clone of the system wide coordinate system. for thread safety.


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

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)