VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
roadSegment.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
16 #include <vector>
17 #include <list>
18 #include <matrix/vlVector.h>
19 #include <matrix/coordTransform.h>
20 #include <vlpi/appearance.h>
22 #include "vrfutil/railSegment.h"
23 #include <vrfobjcore/simObject.h>
24 
25 class DtRailSegment;
26 class Coordinate_System;
27 class DtRoadSegment;
28 
31 #define DT_ROAD_SEGMENT_NO_LANE -1
32 
34 #define CENTERLINE_EPSILON 0.001
35 
39 {
40 public:
42  virtual ~DtTrafficControlDevice();
44  DtTrafficControlDevice& operator=(const DtTrafficControlDevice& orig);
45  virtual DtTrafficControlDevice* clone();
46 
48  {
57  DtIndicationRed
58  };
59 
62  virtual DtTrafficControlIndication currentIndication() const;
63  virtual DtString indicationString(DtTrafficControlIndication ind) const;
67  virtual void setCurrentIndication(const DtTrafficControlIndication signal);
68 
71  virtual bool isStatic()const;
72  virtual void setIsStatic(const bool isStatic);
74 
77  virtual DtSimObjectReference trafficLightObject();
78  virtual void setTrafficLightObject(DtSimObjectReference trafficLight);
80 
83  virtual double positionAlongLane() const;
84  virtual void setPositionAlongLane(const double p);
85 
86  virtual bool hasRedIndication(const DtAppearance& app) const
87  {
88  return app.powerPlantOn();
89  }
90 
91  virtual bool hasYellowIndication(const DtAppearance& app) const
92  {
93  return app.flamesPresent();
94  }
95 
96  virtual bool hasGreenIndication(const DtAppearance& app) const
97  {
98  return app.smokePlumePresent();
99  }
100 
101 protected:
102 
109 
112 };
113 
114 
116 
119 {
120 public:
121  DtLaneSegment();
122  virtual ~DtLaneSegment();
123  DtLaneSegment(const DtLaneSegment& orig);
124  DtLaneSegment& operator=(const DtLaneSegment& orig);
125  virtual DtLaneSegment* clone();
126 
154  {
162 
172 
176 
181 
188 
193 
198 
199  double myWidth;
200 
201  //Lane line traffic control would go here
202  };
203 
206  virtual DtLaneGeometry& laneGeometry();
207  virtual const DtLaneGeometry& laneGeometry() const;
208 
211  virtual DtTrafficControlDevice* trafficControlDevice();
213  virtual void setTrafficControlDevice(DtTrafficControlDevice* device);
214 
215  //@ Get /set the lane. The right lane is lane 0.
216  virtual int laneNumber()const { return myLaneNumber; }
217  virtual void setLaneNumber(const int lane){ myLaneNumber = lane; }
218 
219  virtual DtRoadSegment* parentRoadSegment() const { return myRoadSegment; }
220  virtual void setParentRoadSegment(DtRoadSegment* parent)
221  {
222  myRoadSegment = parent;
223  }
224 
229 
237  virtual void generateFirstHalfLanePoints(std::vector<DtVector>& pointList,
238  bool drivingOnLeft,
239  int pointsInCurve = 5);
240 
248  virtual void generateSecondHalfLanePoints(std::vector<DtVector>& pointList,
249  bool drivingOnLeft,
250  int pointsInCurve = 5);
252 
264  virtual int connectingDownstreamLane() const {return myConnectingDownstreamLane;}
265  virtual void setConnectingDownstreamLane(const int lane)
266  {
267  myConnectingDownstreamLane = lane;
268  }
269  virtual int connectingUpstreamLane() const {return myConnectingUpstreamLane;}
270  virtual void setConnectingUpstreamLane(const int lane)
271  {
272  myConnectingUpstreamLane = lane;
273  }
275 
278 
297  virtual double calculateInsideEntryCurveGeometry(double headingChange,
298  double cosHeadingChange, double sinHeadingChange,
299  bool debug = false);
300 
305  virtual void calculateEntryCurveGeometry(double segmentLeftEdgeRadius,
306  double headingChange,
307  bool debug = false);
308 
340  virtual double calculateInsideExitCurveGeometry(double segmentLeftEdgeRadius,
341  double headingChange,
342  double cosHeadingChange, double sinHeadingChange,
343  bool debug = false);
344 
349  virtual void calculateExitCurveGeometry(double segmentLeftEdgeRadius,
350  double headingChange,
351  bool debug = false);
352 
354 
355 protected:
364 
367 
370 
373 
374 };
376 
377 typedef std::list<DtRoadSegment *> DtRoadSegmentList;
378 
382 {
387 };
388 
395 {
396 
397 public:
402  {
403  public:
404  DtTmpGeometry();
405 
418 
429  };
430 
431  DtRoadSegment();
432 
433  virtual ~DtRoadSegment();
434 
435  DtRoadSegment(const DtRoadSegment& orig);
436  DtRoadSegment& operator=(const DtRoadSegment& orig);
437  virtual DtRoadSegment* clone();
438 
442 
452  virtual bool initializeFromRailSegment(DtRailSegment* railSegment,
453  const Coordinate_System* localCoordinateSystem, bool isDrivingOnLeft,
454  DtRoadSegment* opposingSegment, bool debug = false);
455 
483  virtual bool calculateTemporaryExitGeometry(const double maxSmallBendRadius,
484  const double vehicleWidth, const double headingChange,
485  const double cosHeadingChange, const double sinHeadingChange,
486  bool debug);
487 
500  virtual bool calculateTemporaryEntryGeometry(const double headingChange,
501  const double cosHeadingChange, const double sinHeadingChange,
502  bool debug);
503 
523  virtual bool initializeExitCurve(
524  const double maxSmallBendTurnRadius, const double vehicleWidth,
525  const double headingChange,
526  const double cosHeadingChange, const double sinHeadingChange,
527  bool debug = false);
528 
544  virtual bool initializeEntryCurve(const double headingChange,
545  const double cosHeadingChange, const double sinHeadingChange,
546  bool debug = false);
547 
554  virtual void setExitCurvesForEndingLanes();
555 
575  virtual void connectWithNext(DtRoadSegment* nextSegment,
576  bool isDrivingOnLeft,
577  bool debug,
578  bool fillOpposingSegment = true);
579 
587  virtual void determineIfIntersectionApproach(const DtRoadSegment* next);
588 
595  virtual bool allAltitudesDetermined() const { return myAllAltitudesDetermined; }
596  virtual void setAllAltitudesDetermined(const bool b)
597  {
598  myAllAltitudesDetermined = b;
599  }
601 
602  //---------------------
603 
608 
611  virtual DtRoadSegmentPart segmentPart(const int laneN,
612  const double positionAlongLane);
613 
616  virtual double distanceFromLaneEnd(const int laneN,
617  const double positionAlongLane);
618 
621  virtual double evenPositionAlongLane(const double positionAlongLaneA,
622  const int laneA, const int laneB);
623 
644  virtual bool localPositionFromLanePosition(const int laneN,
645  const double positionAlongLane, const double lateralOffset, bool isDrivingOnLeft,
646  DtVector& localPosition, double& headingOffset,
647  double& distanceBeyond) const;
648 
653  virtual bool lanePositionFromLocalPosition(const DtVector localPosition,
654  const int laneN, bool isDrivingOnLeft,
655  double &positionInLane, double& laneOffset,
656  bool debug);
658 
659  //---------------------------
660 
665 
670  virtual int rightmostContinuingLane() const;
671 
682  virtual int findNearestContinuingLane(const int laneN,
683  const double positionAlongLane, const double lookAheadDistance, bool debug = false);
684 
694  virtual bool laneContinuesForDistance(const int laneN,
695  const double positionAlongLane, const double lookDistance,
696  double & actualDistance, bool & pathContinues, bool debug = false);
697 
700  virtual int matchingLane(const double offset);
701 
703 
706 
707  virtual double heading() const {return myHeading;}
708  virtual void setHeading(const double h) {myHeading = h;}
709 
714  virtual double length() const {return myLength;}
715  virtual void setLength(const double l){myLength = l;}
716 
719  virtual double medianWidth() const { return myMedianWidth; }
720  virtual void setMedianWidth(const double w) { myMedianWidth = w; }
721 
723  virtual DtString roadName() const { return myRoadName; }
724  virtual void setRoadName(const DtString& name) { myRoadName = name; }
725 
731  virtual const DtCoordTransform& segmentToLocalTransform() const {return mySegmentToLocal;}
732  virtual void setSegmentToLocalTransform(const DtCoordTransform& xform)
733  {
734  mySegmentToLocal = xform;
735  }
736 
737  virtual int numLanes() const {return myNumberLanes;}
738  virtual void setNumLanes(const int nLanes) {myNumberLanes = nLanes;}
739 
740  virtual DtLaneSegment* lanes() {return myLanes;}
741  virtual const DtLaneSegment* lanes() const { return myLanes;}
742 
743  virtual bool isOneWay() const {return myIsOneWay;}
744  virtual void setIsOneWay(const bool oneWay) {myIsOneWay = oneWay;}
745 
746  virtual bool exitIsRightTurn() const {return myExitBendsRight;}
747  virtual void setExitIsRightTurn(const bool r) {myExitBendsRight = r;}
748 
755  virtual bool entryIsRightTurn() const {return myEntryBendsRight;}
756  virtual void setEntryIsRightTurn(const bool r) {myEntryBendsRight = r;}
757 
758  virtual double entryCurveEndOffset() const {return myEntryCurveEndOffset;}
759  virtual void setEntryCurveEndOffset(const double o){myEntryCurveEndOffset = o;}
760 
761  virtual double exitCurveStartOffset() const {return myExitCurveStartOffset;}
762  virtual void setExitCurveStartOffset(const double o){myExitCurveStartOffset = o;}
763 
764  virtual bool isIntersectionApproach() const {return myIsIntersectionApproach;}
765  virtual void setIsIntersectionApproach(const bool i) {myIsIntersectionApproach = i;}
766 
767  virtual double stopLineSetBack() const {return myStopLineSetback;}
768  virtual void setStopLineSetBack(const double sb) {myStopLineSetback = sb;}
769 
770  virtual double speedLimit() const {return mySpeedLimit;}
771  virtual void setSpeedLimit(const double limit) {mySpeedLimit = limit;}
772 
778  virtual double defaultSpeedLimit(const int numLanes);
779 
780  virtual double freeFlowSpeed() const { return myFreeFlowSpeed; }
781  virtual void setFreeFlowSpeed(const double ff) {myFreeFlowSpeed = ff;}
782 
783  virtual DtRoadSegment* nextRoadSegment()const {return myNextSegment;}
784  virtual void setNextRoadSegment(DtRoadSegment* s) {myNextSegment = s;}
785 
786  virtual DtRoadSegment* previousRoadSegment() const {return myPreviousSegment;}
788  DtRoadSegment* s) {myPreviousSegment = s;}
789 
790  virtual DtRoadSegment* opposingSegment() const {return myOpposingSegment;}
792  {
793  myOpposingSegment = s;
794  }
795 
796  virtual bool isOpposing() const {return myIsOpposing;}
797  virtual void setIsOpposing(const bool opposing) {myIsOpposing = opposing;}
798 
804  virtual DtTmpGeometry* temporaryGeometry() ;
805 
807 
808 
809 
810 protected:
815  virtual void findRightMostAlignedLane(DtRoadSegment* nextSegment,
816  int& rightMostLane, int& nextSegmentRightMostLane,
817  int& numAlignedLanes);
818 
823  virtual void findLeftMostAlignedLane(DtRoadSegment* nextSegment,
824  int& leftMostLane, int& nextSegmentLeftMostLane,
825  int& numAlignedLanes);
826 
827  //------------------------------------------------------------------------
828 
829 public:
830 
837 
849  virtual double minIntersectionBendAngle(){ return 0.7854; }
850 
865  virtual double intrxThresholdAngleToConnectEdgeLanes(){ return 0.3; }
866 
878  virtual double intrxThresholdAngleToConnectAllLanes() { return 0.2; }
879 
891  virtual double nonIntrxThresholdAngleToConnectEdgeLanes(){ return 0.7854; }
892 
896  virtual double minimumLaneWidth(){ return 2.0; }
898 
899  //------------------------------------------------------------------------
900 
901 protected:
902 
904  double myLength;
905 
910  DtCoordTransform mySegmentToLocal;
911 
913 
914  double myHeading;
916  double myNextHeading;
921 
929 
941 
948 
954 
958 
960  double mySpeedLimit;
961 
966 
969 
972 
977 
985 };
986 
double myExitCurveStartOffset
Similarly, where the exit curve starts, relative to the end of the segment.
Definition: roadSegment.h:928
virtual bool isIntersectionApproach() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:764
virtual double freeFlowSpeed() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:780
virtual bool isOpposing() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:796
virtual void setExitCurveStartOffset(const double o)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:762
virtual double minIntersectionBendAngle()
This defines how much of an angle between segments is required for the connection to be considered an...
Definition: roadSegment.h:849
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
virtual void setAllAltitudesDetermined(const bool b)
Fills in values for lane width, number of lanes, median width, and so forth from the rail segment...
Definition: roadSegment.h:596
virtual double stopLineSetBack() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:767
DtSimObjectReference myTrafficLight
If and only if the TCD is not static, then consult this for indication:
Definition: roadSegment.h:107
double myDesiredLeftEdgeEntryRadius
Desired R for the segment left edge. R for the inside lane is computed from this by adding/subtractin...
Definition: roadSegment.h:417
virtual int laneNumber() const
Definition: roadSegment.h:216
bool myEntryBendsRight
Refers to the connection from the upstream segment:
Definition: roadSegment.h:920
DtRoadSegment * myOpposingSegment
Only valid if not a one-way segment.
Definition: roadSegment.h:939
virtual double intrxThresholdAngleToConnectAllLanes()
This defines a threshold between segments at an intersection that determines whether all aligned lane...
Definition: roadSegment.h:878
int myConnectingUpstreamLane
Upstream connecting lane.
Definition: roadSegment.h:366
virtual void setRoadName(const DtString &name)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:724
virtual void setParentRoadSegment(DtRoadSegment *parent)
Definition: roadSegment.h:220
virtual double speedLimit() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:770
virtual int connectingDownstreamLane() const
Definition: roadSegment.h:264
virtual double minimumLaneWidth()
The minimum lane width expected from the feature data. Default value 2.0.
Definition: roadSegment.h:896
virtual void setStopLineSetBack(const double sb)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:768
DtTrafficControlIndication myTrafficControlIndication
Definition: roadSegment.h:105
double myLength
The length of the underlying road feature, ie the rail segment.
Definition: roadSegment.h:904
virtual const DtLaneSegment * lanes() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:741
Definition: roadSegment.h:386
virtual bool hasRedIndication(const DtAppearance &app) const
Definition: roadSegment.h:86
Definition: roadSegment.h:384
bool myAllAltitudesDetermined
Definition: roadSegment.h:912
virtual DtRoadSegment * parentRoadSegment() const
Definition: roadSegment.h:219
virtual void setIsOpposing(const bool opposing)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:797
double myStraightSectionLength
This is the length of the straight section between the entry and exit curves. If this road segment an...
Definition: roadSegment.h:187
double myExitCurveLength
Exit curve, at end of segment:
Definition: roadSegment.h:192
virtual double entryCurveEndOffset() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:758
virtual int numLanes() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:737
virtual void setOpposingSegment(DtRoadSegment *s)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:791
virtual bool hasYellowIndication(const DtAppearance &app) const
Definition: roadSegment.h:91
double myMinExitCurveSpace
Ditto for exit curve. Note that offset (or setback) is positive along the positive segment X coordina...
Definition: roadSegment.h:426
double myExitCurveStartOffset
This offset is normally negative, meaning that the curve starts before the end of the segment...
Definition: roadSegment.h:196
virtual void setLength(const double l)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:715
double mySpeedLimit
If available; 0 indicates not set.
Definition: roadSegment.h:960
virtual DtLaneSegment * lanes()
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:740
Definition: roadSegment.h:51
DtRailSegment are segments entities can follow when using the rail movement system.
Definition: railSegment.h:23
virtual const DtCoordTransform & segmentToLocalTransform() const
Converts from a road-segment coordinate system to local database coordinates. The road segment coordi...
Definition: roadSegment.h:731
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
double myDesiredExitCurveSpace
Ditto for exit curve. Note that offset (or setback) is positive along the positive segment X coordina...
Definition: roadSegment.h:425
int myNumberLanes
Definition: roadSegment.h:942
double myExitCurveRadius
Exit curve, at end of segment:
Definition: roadSegment.h:191
double myExitLaneIntersectSetback
Ditto for exit curve. Note that offset (or setback) is positive along the positive segment X coordina...
Definition: roadSegment.h:424
int myConnectingDownstreamLane
What lane this connects to in the downstream segment. RoadSegment lanes, ie 0-based numbering...
Definition: roadSegment.h:363
int myExitInsideLaneNum
Ditto for exit curve. Note that offset (or setback) is positive along the positive segment X coordina...
Definition: roadSegment.h:423
virtual double length() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:714
int myEntryInsideLaneNum
The inside lane that connects, ie generates the radius constraint.
Definition: roadSegment.h:407
virtual void setNextRoadSegment(DtRoadSegment *s)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:784
DtTrafficControlIndication
Definition: roadSegment.h:47
std::list< DtRoadSegment * > DtRoadSegmentList
Definition: roadSegment.h:377
virtual void setEntryCurveEndOffset(const double o)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:759
double myEntryCurveRadius
Entry curve:Arc radius. Note that the arc center is at (myEntryCurveEndOffset, myLaneOffsetDistance +...
Definition: roadSegment.h:171
virtual void setNumLanes(const int nLanes)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:738
A class to hold the initially computed geometry for the inside lane of each segment in the path; used...
Definition: roadSegment.h:401
bool myIsOpposing
Indicates that this segment goes in the opposite direction of the related rail segment. The opposing segments are filled out in the current implementation (4.5), but are not used.
Definition: roadSegment.h:976
double myMedianWidth
The width of the median in this (2-way) segment.
Definition: roadSegment.h:968
double myNextHeading
The segment downstream:
Definition: roadSegment.h:916
virtual void setPreviousRoadSegment(DtRoadSegment *s)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:787
virtual double exitCurveStartOffset() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:761
double myPositionAlongLane
Definition: roadSegment.h:108
Definition: coordSystem.h:54
virtual double medianWidth() const
Width of the median. Only applies to 2-way segments. The lanes are offset half this width from the se...
Definition: roadSegment.h:719
double myStopLineSetback
Distance before end of straight segment where stop line is located. (Note: in VRF 4...
Definition: roadSegment.h:957
virtual void setSpeedLimit(const double limit)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:771
DtRoadSegment * myNextSegment
These come directly from the rail path, thus there is a connection to only on other road segment befo...
Definition: roadSegment.h:936
virtual void setMedianWidth(const double w)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:720
virtual DtString roadName() const
Name of the road containing this segment.
Definition: roadSegment.h:723
virtual bool entryIsRightTurn() const
Indicates a positive heading change from the previous segment to this one, and that lanes to the righ...
Definition: roadSegment.h:755
virtual DtRoadSegment * opposingSegment() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:790
bool myIsOneWay
These come directly from the rail path, thus there is a connection to only on other road segment befo...
Definition: roadSegment.h:937
DtLaneGeometry myGeometry
Definition: roadSegment.h:356
double myWidth
Definition: roadSegment.h:199
virtual double intrxThresholdAngleToConnectEdgeLanes()
This defines a threshold between segments at an intersection that determines how lanes are connected...
Definition: roadSegment.h:865
virtual bool exitIsRightTurn() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:746
double myEntryLaneIntersectSetback
The offset (along the lane) from the start of the segment (straight part) that the inside lane inters...
Definition: roadSegment.h:410
virtual DtRoadSegment * nextRoadSegment() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:783
virtual void setIsOneWay(const bool oneWay)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:744
Description of one lane of a DtRoadSegment.
Definition: roadSegment.h:118
Definition: roadSegment.h:385
virtual void setFreeFlowSpeed(const double ff)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:781
virtual bool allAltitudesDetermined() const
This indicates that the altitude lookups needed to make the mySegmentToLocal transform (start and end...
Definition: roadSegment.h:595
double myEntryCurveEndOffset
The offset in X from the segment origin to the end of the entry arc; marks the beginning of the strai...
Definition: roadSegment.h:179
double myLaneOffsetDistance
This is the lateral offset (in y) from the segment origin to the centerline of this lane...
Definition: roadSegment.h:161
virtual int connectingUpstreamLane() const
Definition: roadSegment.h:269
double myMinEntryCurveSpace
Distance from lane intersection to the end of a curve of min radius.
Definition: roadSegment.h:414
virtual void setConnectingUpstreamLane(const int lane)
Definition: roadSegment.h:270
virtual void setExitIsRightTurn(const bool r)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:747
virtual bool isOneWay() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:743
DtTrafficControlDevice * myTrafficSignal
Not currently used (future work); the traffic control device controlling traffic flow in the lane of ...
Definition: roadSegment.h:360
DtTmpGeometry myTmpGeometry
This information is used when constructing the road path to find modifications to the segments when t...
Definition: roadSegment.h:984
DtRoadSegmentPart
This enumeration is a convenience for indicating what part of the lane geometry a point is on...
Definition: roadSegment.h:381
DtRoadSegment * myRoadSegment
The road segment this lane belongs to.
Definition: roadSegment.h:369
double myEntryCurveEndOffset
TODO – the following two members aren&#39;t used. See comment above. Where the entry curve ends and the s...
Definition: roadSegment.h:925
Definition: roadSegment.h:50
Definition: roadSegment.h:53
virtual void setConnectingDownstreamLane(const int lane)
Definition: roadSegment.h:265
bool myIsStatic
True for fixed indications–none, Stop, Yield, blinkers.
Definition: roadSegment.h:104
virtual DtRoadSegment * previousRoadSegment() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:786
A traffic control device for intersection flow, ie stop and yield signs, traffic lights, etc. Used for DtLaneSegment in DtRoadSegment.
Definition: roadSegment.h:38
DtString myRoadName
The name of the road.
Definition: roadSegment.h:971
virtual double heading() const
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:707
The geometry of the lane, especially the parameters of the circular arcs that define the entry and ex...
Definition: roadSegment.h:153
double myDesiredEntryCurveSpace
Distance from lane intersection to the end of the curve of desired radius.
Definition: roadSegment.h:412
Description of one segment of a road.
Definition: roadSegment.h:394
double myFreeFlowSpeed
This is the speed traffic flows on average, irrespective of the legal speed limit above...
Definition: roadSegment.h:965
Definition: roadSegment.h:55
DtPlatformSimObjectFacade myPlatformSimObjectFacade
Member to allow for access to platform specific data.
Definition: roadSegment.h:111
DtLaneSegment * myLanes
A vector of lanes, with lane 0 the right-most, and lane myNumberLanes-1 the left-most (or vice versa ...
Definition: roadSegment.h:947
Definition: roadSegment.h:383
virtual void setHeading(const double h)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:708
virtual void setIsIntersectionApproach(const bool i)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:765
double myDesiredLeftEdgeExitRadius
Ditto for exit curve. Note that offset (or setback) is positive along the positive segment X coordina...
Definition: roadSegment.h:427
bool myExitBendsRight
Refers to the connection to the downstream segment:
Definition: roadSegment.h:918
int myLaneNumber
The array index of this lane in the road segment&#39;s array of lanes.
Definition: roadSegment.h:372
virtual void setEntryIsRightTurn(const bool r)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:756
voidpf uLong offset
Definition: ioapi.h:42
virtual void setLaneNumber(const int lane)
Definition: roadSegment.h:217
DtCoordTransform mySegmentToLocal
Coordinate transformation from segment coordinates to local database coordinates. Segment coordinates...
Definition: roadSegment.h:910
DtRoadSegment * myPreviousSegment
These come directly from the rail path, thus there is a connection to only on other road segment befo...
Definition: roadSegment.h:935
virtual bool hasGreenIndication(const DtAppearance &app) const
Definition: roadSegment.h:96
double myHeading
Definition: roadSegment.h:914
bool myIsIntersectionApproach
Indicates that the connection at the downstream end is an intersection. Set in determineIfIntersectio...
Definition: roadSegment.h:953
virtual double nonIntrxThresholdAngleToConnectEdgeLanes()
Same as above, but for segments that define a bend in a through street rather than an intersection...
Definition: roadSegment.h:891
Definition: roadSegment.h:49
virtual void setSegmentToLocalTransform(const DtCoordTransform &xform)
This is the length of the associated rail segment. This is the same as the length of the straight par...
Definition: roadSegment.h:732
double myEntryCurveLength
This is the length of the arc from the midpoint of the turn to where it joins the straight part of th...
Definition: roadSegment.h:175

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)