18 #include <boost/unordered_map.hpp>
28 class DtSceneObjectAgent;
29 class Dt3DSegmentedLineModelAgent;
56 return !(*
this == rhs);
140 NodesThatReceivesShadows = 4,
141 NodesThatCastsShadows = 8,
142 OsgEarthTerrainSkin = 16,
143 TerrainPatchInsetNotOsgEarth = 32
148 DynamicOceanPropertyMsl = 0,
149 DynamicOceanPropertyWaves = 1,
150 DynamicOceanPropertyIgnore = 2
183 virtual bool findNearestIntersectionToPoint(
double x,
double y,
double z,
186 std::vector<DtElementID>* ignoreList = 0,
bool returnTriangle =
false,
187 double maxIsectorLength = -1.,
bool useHighLod =
false ) = 0;
196 virtual bool findAllIntersectionsThroughPoint(
double x,
double y,
double z,
199 std::vector<DtElementID>* ignoreList = 0,
bool sort =
true,
200 bool useHighLod =
false ) = 0;
208 virtual bool findFirstIntersectWithLineSegment(
209 double x,
double y,
double z,
double end_x,
double end_y,
double end_z,
212 std::vector<DtElementID>* ignoreList=0,
213 bool useHighLod =
false) = 0;
221 virtual bool findAllIntersectWithLineSegment(
222 double x,
double y,
double z,
double end_x,
double end_y,
double end_z,
225 std::vector<DtElementID>* ignoreList=0,
bool sort=
true,
226 bool useHighLod =
false ) = 0;
233 virtual bool pick(
DtChannel& channel,
double mx,
double my,
236 std::vector<DtElementID>* ignoreList=0) = 0;
242 virtual bool pickAll(
DtChannel* channel,
double mx,
double my,
245 std::vector<DtElementID>* ignoreList=0) = 0;
248 virtual void setDefaultMaxClamp(
double maximumIsectorLength);
256 virtual double defaultMaxClamp()
const;
310 virtual void setColors(
const DtColorValue& failedColor,
330 virtual void update(
DtTime tNow );
332 virtual void drawIntersection(
365 virtual void registerCharacterIntersector(
DtIntersector* intersector);
371 virtual void drawIntersection(
IntersectProperties
The IntersectProperties enum is a flag set that indicates the.
Definition: DtIntersector.h:135
IntersectProperties properties
Definition: DtIntersector.h:291
std::vector< Dt3DSegmentedLineModelAgent * > LineModelList
Definition: DtIntersector.h:315
double normalX
The x coordinate of the vector normal to the point of intersection, if requested. ...
Definition: DtIntersector.h:76
Virtual base class.
Definition: DtVirtualBaseClass.h:22
double endY
for debugging, the y coordinate of the line segment that was used to end the intersection ...
Definition: DtIntersector.h:117
DtIntersectorResult myLastResult
Definition: DtIntersector.h:297
CachedPick()
Definition: DtIntersector.h:267
bool hasIntersectTriangle
Indicates whether or not the DtIntersectorResult contains intersected triangle data.
Definition: DtIntersector.h:91
double normalZ
The z coordinate of the vector normal to the point of intersection, if requested. ...
Definition: DtIntersector.h:84
DtDrawnIntersectorManager myDrawnIntersectorManager
Definition: DtIntersector.h:382
DtIntersector is an abstract class that provides the interface for requesting intersections with the ...
Definition: DtIntersector.h:129
DtColorValue myEvenSegmentIntersectorColor
Definition: DtIntersector.h:321
CachedPick myLastPick
Definition: DtIntersector.h:295
Descriptor for a single intersection result.
Definition: DtIntersector.h:33
std::vector< DtIntersectorResult > DtIntersections
A vector of DtIntersectionRecords.
Definition: DtIntersector.h:154
DtDe & myDe
Definition: DtIntersector.h:260
An abstract base class for objects that require updates.
Definition: DtTickable.h:26
Definition: DtIntersector.h:302
DtIntersectTriangle isectTriangle
The triangle intersection, if requested.
Definition: DtIntersector.h:94
DtDrawnIntersectorMap myDrawnIntersectorMap
Definition: DtIntersector.h:339
double y
y coordinate, in database coordinates of the intersection
Definition: DtIntersector.h:69
bool hasIntersect
Indicate whether this DtIntersectorResult object actually contains the result of an intersection...
Definition: DtIntersector.h:63
double startY
for debugging, the y coordinate of the line segment that was used to start the intersection ...
Definition: DtIntersector.h:105
DynamicOceanProperties
Definition: DtIntersector.h:146
bool myLastPickSucceeded
Definition: DtIntersector.h:296
The abstract Channel Class.
Definition: DtChannel.h:29
DtColorValue myFailedIntersectorColor
Definition: DtIntersector.h:319
double startX
for debugging, the x coordinate of the line segment that was used to start the intersection ...
Definition: DtIntersector.h:101
Contains makVrv::DtVirtualBaseClass class.
DtUniqueID id
The elementID of the node intersected.
Definition: DtIntersector.h:87
double z
z coordinate, in database coordinates of the intersection
Definition: DtIntersector.h:72
double normalY
The y coordinate of the vector normal to the point of intersection, if requested. ...
Definition: DtIntersector.h:80
DtDe & myDe
Definition: DtIntersector.h:314
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool operator==(const CachedPick &b)
Definition: DtIntersector.h:277
double simTime
Definition: DtIntersector.h:287
double mx
Definition: DtIntersector.h:289
DynamicOceanProperties myDynamicOceanProperties
Definition: DtIntersector.h:261
Definition: DtIntersector.h:324
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
SceneObjectList mySceneObjects
Definition: DtIntersector.h:318
The DtIntersectorManager class manages instances of inter sectors.
Definition: DtIntersector.h:345
std::multimap< double, DtDrawnIntersector * > DtDrawnIntersectorMap
Definition: DtIntersector.h:338
DT_DLL_vrfutil bool intersection(const DtRailSegment *currentSegment, const DtRailSegment *nextSegment)
Given two segments, determine if where they meet is an intersection or just a bend in the road...
std::vector< DtSceneObjectAgent * > SceneObjectList
Definition: DtIntersector.h:317
Contains the declaration for makVrv::DtTickable.
CachedPick is a container class for the information to cache a pick request.
Definition: DtIntersector.h:265
DtDe & myDe
Definition: DtIntersector.h:379
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:153
bool operator!=(const DtIntersectorResult &rhs) const
Inequality Operator.
Definition: DtIntersector.h:54
Contains makVrv::DtUniqueID type.
double endZ
for debugging, the z coordinate of the line segment that was used to end the intersection ...
Definition: DtIntersector.h:121
DtDe & myDe
Definition: DtIntersector.h:336
double x
x coordinate, in database coordinates of the intersection
Definition: DtIntersector.h:66
double myDefaultMaxClamp
Definition: DtIntersector.h:298
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtColorValue myOddSegmentIntersectorColor
Definition: DtIntersector.h:320
Abstract creator base class.
Definition: DtIntersector.h:387
double my
Definition: DtIntersector.h:290
boost::unordered_map< int, DtIntersector * > IntersectorMap
Definition: DtIntersector.h:378
IntersectorMap myIntersectors
Definition: DtIntersector.h:380
LineModelList myLineModels
Definition: DtIntersector.h:316
std::vector< double > DtIntersectTriangle
Definition: DtIntersector.h:38
std::vector< DtElementID > * ignoreList
Definition: DtIntersector.h:292
Template for Color values in [0,1] range.
Definition: DtColorValue.h:18
double startZ
for debugging, the z coordinate of the line segment that was used to start the intersection ...
Definition: DtIntersector.h:109
double endX
for debugging, the x coordinate of the line segment that was used to end the intersection ...
Definition: DtIntersector.h:113
DtChannel * channel
Definition: DtIntersector.h:288
bool dynamicOcean
Indicates whether the intersection was with dynamic ocean, if in use.
Definition: DtIntersector.h:97
DtIntersector * myCharacterIntersector
Definition: DtIntersector.h:381
Contains DLL export macros.