|
| | DtRoadPathFunctions (DtRoadMovementController *parentController) |
| |
| | ~DtRoadPathFunctions () |
| |
| virtual bool | setupRoadFromRailPath (const DtRailSegmentList &railPath, const Coordinate_System *localCoordinateSystem, bool drivingOnLeft, DtRoadSegmentList &roadPath, const bool debug=false) |
| |
| virtual bool | getRoadPathAltitudes (DtRoadSegmentList &roadPath, const DtAttachedTerrain *terrain, bool &allTerrainAvailable, bool debug=false) |
| |
| virtual bool | generatePathCenterlinePoints (const DtRoadSegmentList &roadPath, bool drivingOnLeft, std::vector< DtVector > &pointList, std::map< DtRoadSegment *, unsigned > &segmentToPointsMap) |
| |
| virtual void | findIntersectionControlAlongPath (DtRoadSegmentList &roadPath, bool drivingOnLeft, bool debug) |
| |
|
| virtual bool | makeRoadPathListFromRailPath (const DtRailSegmentList &railPath, DtRoadSegmentList &roadPath, const Coordinate_System *localCoordinateSystem, bool isDrivingOnLeft, int &roadSegNum, bool debug) |
| |
| virtual void | connectSegmentLanes (const DtRoadSegmentList &roadPath, bool drivingOnLeft, bool debug) |
| |
| virtual void | calculatePathTemporaryGeometry (DtRoadSegmentList &roadPath, bool isDrivingOnLeft, double maxSmallBendTurnRadius, bool debug) |
| |
| virtual void | reconnectRoadSegments (DtRoadSegment *prevRoadSegment, DtRoadSegment *nextRoadSegment, const bool isDrivingOnLeft, const double maxSmallBendTurnRadius, const bool debug) |
| |
| virtual bool | adjustShortSegmentsInCurve (DtRoadSegmentList &roadPath, const bool isDrivingOnLeft, const Coordinate_System *localCoordinateSystem, const double maxSmallBendTurnRadius, const bool debug) |
| |
| virtual bool | adjustShortSegmentInS (DtRoadSegmentList &roadPath, bool isDrivingOnLeft, const Coordinate_System *localCoordinateSystem, double maxSmallBendTurnRadius, bool debug) |
| |
| virtual void | calculateCurvesBetweenSegments (DtRoadSegmentList &roadPath, bool isDrivingOnLeft, double maxSmallBendTurnRadius, bool debug) |
| |
| virtual DtObjectType | trafficLightType () const |
| |
| virtual double | trafficLightFacingOffset () |
| |
| virtual DtObjectType | stopSignType () const |
| |
| virtual double | stopSignFacingOffset () |
| |
| virtual DtObjectType | stopLineType () const |
| |
| virtual void | intersectionControlObjectTypes (std::vector< DtObjectType > &tcdTypes) |
| |
| virtual bool | isIntersectionControlDevice (const DtObjectType &objType) |
| |
| DtRoadPathFunctions::~DtRoadPathFunctions |
( |
| ) |
|
Generate a road path from the rail path, including computing the geometry of the curves connecting lane centerlines in adjacent segments. If drivingOnLeft is true, then a mirror image geometry will be set up. Return true if successful.
Compute the coordinate transform from road segment to local coordinates, as well as the side slope at the beginning and end of the segment. These values will be used to compute positions in local coordinates of locations on the segment. Fills in value of mySegmentToLocal.
The function loops through all of the segments, and for each that does have myAllAltitudesDetermined == true, it generates the xy location of points in the left and right lanes at the beginning and end of the segment and looks up altitude for them. If (and only if) all altitude data is available, it sets the segment coordinate transform and sets myAllAltitudesDetermined to true.
- Parameters
-
| roadPath | is the road path whose segment-to-local coordinate transform and edge altitudes are being set. This path must match the rail path above. |
| terrain | is the terrain the entity is attached to. |
| terrainAvailable | a flag that indicates if the elevations were all found, vs. at least one terrain call returning "not available." |
- Returns
- False if there was an error, other than terrain not available. True if no error, although possibly terrain might not have been available. In this case the transform is not computed for those segments.
Generate a vector of points that indicate the road path. This is used for visualization.
| virtual void DtRoadPathFunctions::findIntersectionControlAlongPath |
( |
DtRoadSegmentList & |
roadPath, |
|
|
bool |
drivingOnLeft, |
|
|
bool |
debug |
|
) |
| |
|
virtual |
Place holder– does nothing but return. Possible use:
Finds traffic control objects (lights and stop signs) and the associated stop lines along the path. Puts the data into the relevant road segments. The lights and signs are only accepted if there is a corresponding stop line to indicate where the TCD takes effect.
This function creates road segment objects from the rail path objects and puts them in a list. It fills in basic attributes such as # lanes, lane width, one-way, etc. This is used by setupRoadFromRailPath.
Fill in the upstream and downstream lane numbers for all of the lanes in each segment. Depending on segment geometry, all of the lanes may be connected, or only one. If the road bends enough where the segments join, then only the inner lane will connect. This function accounts for alignment offsets where one-way segments meet two-way segments too. This is used by setupRoadFromRailPath.
| virtual void DtRoadPathFunctions::calculatePathTemporaryGeometry |
( |
DtRoadSegmentList & |
roadPath, |
|
|
bool |
isDrivingOnLeft, |
|
|
double |
maxSmallBendTurnRadius, |
|
|
bool |
debug |
|
) |
| |
|
protectedvirtual |
Calculates the desired radius and desired intersection points of the curves connecting the road segments. The desired intersection points are where lanes centerlines with possibly different offsets from the rail segment (ie left edge) intersect. The "desired" radii are as large as possible without causing the design vehicle to go outside the lane, and are at least as large as the design vehicle minimum turn radius. These parameters may be adjusted later if the segments are not long enough to use them. This is used by setupRoadFromRailPath.
| virtual void DtRoadPathFunctions::reconnectRoadSegments |
( |
DtRoadSegment * |
prevRoadSegment, |
|
|
DtRoadSegment * |
nextRoadSegment, |
|
|
const bool |
isDrivingOnLeft, |
|
|
const double |
maxSmallBendTurnRadius, |
|
|
const bool |
debug |
|
) |
| |
|
protectedvirtual |
Looks for segments that are too short for the intersection point and desired turn radius identified in #calculatePathTemoraryGeometry, and that have entry and exit heading changes in the same direction (i.e. are part of a curve). Attempts to improve the path by lengthening or removing such segments.
- Returns
- true when no short curve segments are found in the path.
Looks for segments that are too short for the intersection point and desired turn radius identified in #calculatePathTemoraryGeometry, and that have entry and exit heading changes in different directions (i.e., the path makes a small S at this segment). Attempts to improve the path by lengthening or removing such segments.
- Returns
- true when no short S segments are found in the path.
| virtual void DtRoadPathFunctions::calculateCurvesBetweenSegments |
( |
DtRoadSegmentList & |
roadPath, |
|
|
bool |
isDrivingOnLeft, |
|
|
double |
maxSmallBendTurnRadius, |
|
|
bool |
debug |
|
) |
| |
|
protectedvirtual |
Calculates the curves connecting segments– calculates the radius and how far from the end of the straight road feature the curve must start.
| virtual DtObjectType DtRoadPathFunctions::trafficLightType |
( |
| ) |
const |
|
inlineprotectedvirtual |
Indicates whether the given object type is a traffic light.
| virtual double DtRoadPathFunctions::trafficLightFacingOffset |
( |
| ) |
|
|
inlineprotectedvirtual |
This is the offset of the facing of a light from its entity heading.
| virtual DtObjectType DtRoadPathFunctions::stopSignType |
( |
| ) |
const |
|
inlineprotectedvirtual |
Indicates whether the given object type is a stop sign.
| virtual double DtRoadPathFunctions::stopSignFacingOffset |
( |
| ) |
|
|
inlineprotectedvirtual |
This is the offset of the facing of a sign from its entity heading.
| virtual DtObjectType DtRoadPathFunctions::stopLineType |
( |
| ) |
const |
|
inlineprotectedvirtual |
Provides the type of a stop line object.
| virtual void DtRoadPathFunctions::intersectionControlObjectTypes |
( |
std::vector< DtObjectType > & |
tcdTypes | ) |
|
|
protectedvirtual |
Provides the types of available intersection control objects.
| virtual bool DtRoadPathFunctions::isIntersectionControlDevice |
( |
const DtObjectType & |
objType | ) |
|
|
protectedvirtual |
Returns true if the given type matches any of the known intersection control types.
This member is made available so that this class can refer to controller data including the descriptor.
The documentation for this class was generated from the following file:
- /data/exports/nrhent7-1/nightly/docs/vrForces.vrf5-0-branch/include/vrfmodel/roadPathFunctions.h