VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions
makVrv::DtDummyCharacterIntersector Class Reference
Inheritance diagram for makVrv::DtDummyCharacterIntersector:
Inheritance graph
[legend]

Public Member Functions

 DtDummyCharacterIntersector (DtDe &de)
 
virtual ~DtDummyCharacterIntersector ()
 
virtual bool findNearestIntersectionToPoint (double, double, double, double, double, double, DtIntersectorResult &, IntersectProperties=AllNodes, std::vector< DtElementID > *=0, bool=false, double=-1., bool=false) override
 
virtual bool findAllIntersectionsThroughPoint (double, double, double, double, double, double, DtIntersector::DtIntersections &, IntersectProperties=AllNodes, std::vector< DtElementID > *=0, bool=true, bool=false) override
 
virtual bool findFirstIntersectWithLineSegment (double, double, double, double, double, double, DtIntersectorResult &, IntersectProperties=AllNodes, std::vector< DtElementID > *=0, bool=false) override
 
virtual bool findAllIntersectWithLineSegment (double, double, double, double, double, double, DtIntersector::DtIntersections &, IntersectProperties=AllNodes, std::vector< DtElementID > *=0, bool=true, bool=false) override
 
virtual bool pick (DtChannel &, double, double, DtIntersectorResult &, IntersectProperties=AllNodes, std::vector< DtElementID > *=0) override
 
virtual bool pickAll (DtChannel *, double, double, DtIntersector::DtIntersections &, IntersectProperties=AllNodes, std::vector< DtElementID > *=0) override
 
- Public Member Functions inherited from makVrv::DtIntersector
 DtIntersector (DtDe &de, int modelSet)
 
virtual ~DtIntersector ()
 
virtual void setDynamicOceanProperties (DynamicOceanProperties properties)
 
DynamicOceanProperties dynamicOceanProperties () const
 
virtual int modelSet (void) const
 
virtual void setDefaultMaxClamp (double maximumIsectorLength)
 
virtual double defaultMaxClamp () const
 

Additional Inherited Members

- Public Types inherited from makVrv::DtIntersector
enum  IntersectProperties {
  AllNodes = 0, PickableNodes = 1, SupportNodes = 2, NodesThatReceivesShadows = 4,
  NodesThatCastsShadows = 8, OsgEarthTerrainSkin = 16, TerrainPatchInsetNotOsgEarth = 32
}
 
enum  DynamicOceanProperties { DynamicOceanPropertyMsl = 0, DynamicOceanPropertyWaves = 1, DynamicOceanPropertyIgnore = 2 }
 
typedef std::vector
< DtIntersectorResult
DtIntersections
 
- Protected Attributes inherited from makVrv::DtIntersector
DtDemyDe
 
DynamicOceanProperties myDynamicOceanProperties
 
CachedPick myLastPick
 
bool myLastPickSucceeded
 
DtIntersectorResult myLastResult
 
double myDefaultMaxClamp
 
const int myModelSet
 

Constructor & Destructor Documentation

makVrv::DtDummyCharacterIntersector::DtDummyCharacterIntersector ( DtDe de)
inline
virtual makVrv::DtDummyCharacterIntersector::~DtDummyCharacterIntersector ( )
inlinevirtual

Member Function Documentation

virtual bool makVrv::DtDummyCharacterIntersector::findNearestIntersectionToPoint ( double  x,
double  y,
double  z,
double  vx,
double  vy,
double  vz,
DtIntersectorResult intersection,
IntersectProperties  properties = AllNodes,
std::vector< DtElementID > *  ignoreList = 0,
bool  returnTriangle = false,
double  maxIsectorLength = -1.,
bool  useHighLod = false 
)
inlineoverridevirtual

Find the nearest scene intersection from a point (x,y,z) along a vector(vx,vy,vz) The useHighLod argument tells the intersector that if the terrain is an osgEarth terrain, don't settle for whatever is paged in; get the highest LOD from the map server for this location and use that Note that if maxIsectorLength is not set, the default is the diameter of the database, which for large (and especially geocentric) databases and world databases, may be too large to get adequate precision when trying to interect small (high resolution) triangles. It is recommended that you set the isector length to something more specific if possible, like the altitude of the observer + a constant, for example; or, for osgEarth databases, useHighLod=true, which will also eliminate the problem.

Return values
falseif no intersection was found (and the isect record is NOT set).

Implements makVrv::DtIntersector.

virtual bool makVrv::DtDummyCharacterIntersector::findAllIntersectionsThroughPoint ( double  x,
double  y,
double  z,
double  vx,
double  vy,
double  vz,
DtIntersector::DtIntersections intersections,
IntersectProperties  properties = AllNodes,
std::vector< DtElementID > *  ignoreList = 0,
bool  sort = true,
bool  useHighLod = false 
)
inlineoverridevirtual

Return a list of all intersections along the line passing through <x,y,z> and directed by <vx, vy, vz> The useHighLod argument tells the intersector that if the terrain is an osgEarth terrain, don't settle for whatever is paged in; get the highest LOD from the map server for this location and use that.

Return values
falseif no intersection was found (and the isect record list has size 0).

Implements makVrv::DtIntersector.

virtual bool makVrv::DtDummyCharacterIntersector::findFirstIntersectWithLineSegment ( double  x,
double  y,
double  z,
double  end_x,
double  end_y,
double  end_z,
DtIntersectorResult intersection,
IntersectProperties  properties = AllNodes,
std::vector< DtElementID > *  ignoreList = 0,
bool  useHighLod = false 
)
inlineoverridevirtual

find first intersection along segment x,y,z to end_x, end_y, end_z. The useHighLod argument tells the intersector that if the terrain is an osgEarth terrain, don't settle for whatever is paged in; get the highest LOD from the map server for this location and use that

Return values
falseif no intersection was found (and the isect record is NOT set).

Implements makVrv::DtIntersector.

virtual bool makVrv::DtDummyCharacterIntersector::findAllIntersectWithLineSegment ( double  x,
double  y,
double  z,
double  end_x,
double  end_y,
double  end_z,
DtIntersector::DtIntersections intersections,
IntersectProperties  properties = AllNodes,
std::vector< DtElementID > *  ignoreList = 0,
bool  sort = true,
bool  useHighLod = false 
)
inlineoverridevirtual

find all intersections along segment x,y,z to end_x, end_y, end_z. The useHighLod argument tells the intersector that if the terrain is an osgEarth terrain, don't settle for whatever is paged in; get the highest LOD from the map server for this location and use that

Return values
falseif no intersection was found (and the isect record list has size 0).

Implements makVrv::DtIntersector.

virtual bool makVrv::DtDummyCharacterIntersector::pick ( DtChannel channel,
double  mx,
double  my,
DtIntersectorResult intersection,
IntersectProperties  properties = AllNodes,
std::vector< DtElementID > *  ignoreList = 0 
)
inlineoverridevirtual

Find the object (if any) under the mouse mx, my are in window coordinates; cx, cy, cz are returned in database coordinates.

Return values
falseif no intersection was found (and the isect record is NOT set).

Implements makVrv::DtIntersector.

virtual bool makVrv::DtDummyCharacterIntersector::pickAll ( DtChannel channel,
double  mx,
double  my,
DtIntersector::DtIntersections intersections,
IntersectProperties  properties = AllNodes,
std::vector< DtElementID > *  ignoreList = 0 
)
inlineoverridevirtual

Find all the objects (if any) under the mouse mx, my are in window coordinates.

Return values
falseif no intersection was found (and the isect record list has size 0).

Implements makVrv::DtIntersector.


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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)