ad_map_access
|
Logical representation of an intersection along the route. More...
#include <ad/map/intersection/Intersection.hpp>
Static Public Member Functions | |
static IntersectionPtr | getIntersectionForRoadSegment (route::RouteIterator const &routeIterator) |
retrieve the intersection for the given routeIterator More... | |
static std::vector< IntersectionPtr > | getIntersectionsForRoute (route::FullRoute const &route) |
retrieve all intersections for the given route More... | |
static IntersectionPtr | getNextIntersectionOnRoute (route::FullRoute const &route) |
retrieve the next intersection for the given route More... | |
Static Public Member Functions inherited from ad::map::intersection::CoreIntersection | |
static bool | isLanePartOfAnIntersection (lane::LaneId const laneId) |
check if a lane is part of any intersection | |
static bool | isRoutePartOfAnIntersection (route::FullRoute const &route) |
check if any lane in the route is part of any intersection More... | |
static bool | isIntersectionOnRoute (route::FullRoute const &route) |
check if there is an intersection for the given route More... | |
static bool | isRoadSegmentEnteringIntersection (route::RouteIterator const &routeIterator, route::RoadSegmentList::const_iterator &routePreviousSegmentIter) |
check if the road segment enters an intersection More... | |
static CoreIntersectionPtr | getCoreIntersectionFor (lane::LaneId const &laneId) |
retrieve the core intersection for the given laneId More... | |
static std::vector< CoreIntersectionPtr > | getCoreIntersectionsFor (lane::LaneIdSet const &laneIds) |
retrieve all CoreIntersection objects for the given lane Ids More... | |
static std::vector< CoreIntersectionPtr > | getCoreIntersectionsFor (lane::LaneIdList const &laneIds) |
retrieve all CoreIntersection objects for the given lane Ids More... | |
static std::vector< CoreIntersectionPtr > | getCoreIntersectionsForMap () |
retrieve all CoreIntersection objects of the map More... | |
static CoreIntersectionPtr | getCoreIntersectionFor (match::MapMatchedPosition const &mapMatchedPosition) |
retrieve the core intersection for the given mapMatchedPosition More... | |
static std::vector< CoreIntersectionPtr > | getCoreIntersectionsForInLaneMatches (point::ENUPoint const &position) |
retrieve the core intersection for the given ENU position More... | |
static std::vector< CoreIntersectionPtr > | getCoreIntersectionsForInLaneMatches (match::MapMatchedPositionConfidenceList const &mapMatchedPositionConfidenceList) |
retrieve the core intersection for the given mapMatchedPositionConfidenceList More... | |
static std::vector< CoreIntersectionPtr > | getCoreIntersectionsForInLaneMatches (match::MapMatchedObjectBoundingBox const &object) |
retrieve the core intersection for the given object More... | |
Additional Inherited Members | |
Protected Types inherited from ad::map::intersection::CoreIntersection | |
enum | SuccessorMode { OwnIntersection, AnyIntersection } |
Protected Member Functions inherited from ad::map::intersection::CoreIntersection | |
bool | isLanePartOfCoreIntersection (lane::LaneId const laneId) const |
check if given lane is inside the intersection | |
void | extractLanesOfCoreIntersection (lane::LaneId const laneId) |
bool | isLanePartOfIntersection (lane::LaneId const laneId, SuccessorMode const successorMode) const |
std::pair< lane::LaneIdSet, lane::LaneIdSet > | getDirectSuccessorsInLaneDirection (lane::LaneId const laneId, SuccessorMode const successorMode) const |
Provide the direct successor lane segments in lane direction within and outside of the intersection. More... | |
lane::LaneIdSet | getDirectSuccessorsInLaneDirectionWithinIntersection (lane::LaneId const laneId, SuccessorMode const successorMode) const |
Provide the direct successor lane segments in lane direction within the intersection. More... | |
lane::LaneIdSet | getAllSuccessorsInLaneDirectionWithinIntersection (lane::LaneId const laneId, SuccessorMode const successorMode) const |
Provide the successor lane segments in lane direction within the intersection recursively until the intersection is left. More... | |
lane::LaneIdSet | getLaneAndAllSuccessorsInLaneDirectionWithinIntersection (lane::LaneId const laneId, SuccessorMode const successorMode) const |
Provide the successor lane segments in lane direction within the intersection recursively until the intersection is left including the input laneId if part of the inner lanes. More... | |
lane::LaneIdSet | getAllReachableOutgoingLanes (lane::LaneId const laneId, SuccessorMode const successorMode) const |
Provide the outgoing lane segments that are reachable in lane direction. More... | |
std::pair< lane::LaneIdSet, lane::LaneIdSet > | getAllReachableInternalAndOutgoingLanes (lane::LaneId const laneId, SuccessorMode const successorMode) const |
Provide the outgoing lane segments that are reachable in lane direction as well as the intersection internal lanes. More... | |
point::ParaPoint | getEntryParaPointOfExternalLane (lane::LaneId const &laneId) const |
point::ParaPoint | getExitParaPointOfExternalLane (lane::LaneId const &laneId) const |
point::ParaPoint | getEntryParaPointOfInternalLane (lane::LaneId const &laneId) const |
point::ParaPoint | getExitParaPointOfInternalLane (lane::LaneId const &laneId) const |
Protected Attributes inherited from ad::map::intersection::CoreIntersection | |
lane::LaneIdSet | mInternalLanes {} |
all lanes inside the intersection | |
lane::LaneIdSet | mEntryLanes {} |
lanes going into the intersection | |
point::ParaPointList | mEntryParaPoints {} |
lanes going into the intersection represented as ParaPoint | |
lane::LaneIdSet | mExitLanes {} |
lanes going out of the intersection | |
point::ParaPointList | mExitParaPoints {} |
lanes going out of the intersection represented as ParaPoint | |
std::map< lane::LaneId, lane::LaneIdSet > | mOverlapping |
std::map< lane::LaneId, lane::LaneIdSet > | mSuccessor |
std::map< lane::LaneId, lane::LaneIdSet > | mPredecessor |
point::BoundingSphere | mInternalLanesBoundingSphere |
Logical representation of an intersection along the route.
There is no public constructor but the static method getIntersectionForRoadSegment which creates an Intersection for a specific road segment of a route and the static method getIntersectionsForRoute which extracts all intersections along the given route. The returned intersections provide the following information:
const lane::LaneIdSet& ad::map::intersection::Intersection::crossingLanes | ( | ) | const |
|
static |
retrieve the intersection for the given routeIterator
[in] | routeIterator | the route iterator of the road segment |
|
static |
retrieve all intersections for the given route
[in] | route | planned route |
route::RouteParaPoint ad::map::intersection::Intersection::getIntersectionStartOnRoute | ( | ) | const |
That point marks the start of the intersection on the route.
|
static |
retrieve the next intersection for the given route
[in] | route | planned route |
route::RoutePlanningCounter ad::map::intersection::Intersection::getRoutePlanningCounter | ( | ) | const |
route::SegmentCounter ad::map::intersection::Intersection::getRouteSegmentCountFromDestination | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::incomingLanes | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::incomingLanesOnRoute | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::incomingLanesWithHigherPriority | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::incomingLanesWithLowerPriority | ( | ) | const |
const point::ParaPointList& ad::map::intersection::Intersection::incomingParaPoints | ( | ) | const |
const point::ParaPointList& ad::map::intersection::Intersection::incomingParaPointsOnRoute | ( | ) | const |
const point::ParaPointList& ad::map::intersection::Intersection::incomingParaPointsWithHigherPriority | ( | ) | const |
const point::ParaPointList& ad::map::intersection::Intersection::incomingParaPointsWithLowerPriority | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::internalLanesWithHigherPriority | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::internalLanesWithLowerPriority | ( | ) | const |
IntersectionType ad::map::intersection::Intersection::intersectionType | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::lanesOnRoute | ( | ) | const |
physics::Distance ad::map::intersection::Intersection::objectInterpenetrationDistanceWithIntersection | ( | match::Object const & | object | ) | const |
calculate and return the physics::Distance the object interpenetrates with the intersection
If the object is not within the intersection: result == 0. If the object is partly within the intersection: 0. < result < object length If the object is fully within the intersection: result == object length If the object is touching incoming/outgoing lanes of different intersection arms at the same time: result == object length
bool ad::map::intersection::Intersection::objectOnCrossingLane | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the crossing lanes bool ad::map::intersection::Intersection::objectOnIncomingLane | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the incoming lanes bool ad::map::intersection::Intersection::objectOnIncomingLaneWithHigherPriority | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the incoming lanes with higher priority bool ad::map::intersection::Intersection::objectOnIncomingLaneWithLowerPriority | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the incoming lanes with lower priority bool ad::map::intersection::Intersection::objectOnInternalLaneWithHigherPriority | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the internal lanes with higher priority bool ad::map::intersection::Intersection::objectOnInternalLaneWithLowerPriority | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the internal lanes with lower priority bool ad::map::intersection::Intersection::objectOnIntersectionRoute | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches the route of the intersection bool ad::map::intersection::Intersection::objectOnLaneWithHigherPriority | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the incoming or internal lanes with higher priority bool ad::map::intersection::Intersection::objectOnLaneWithLowerPriority | ( | match::MapMatchedObjectBoundingBox const & | object | ) | const |
true
if the object touches one of the incoming or internal lanes with lower priority bool ad::map::intersection::Intersection::objectRouteCrossesIntersectionRoute | ( | route::FullRoute const & | objectRoute | ) | const |
true
if the provided objectRoute
crosses the route of the intersectionThis is the case if one of the crossingLanes() is part of the objectRoute.
bool ad::map::intersection::Intersection::objectRouteCrossesLanesWithHigherPriority | ( | route::FullRoute const & | objectRoute | ) | const |
true
if the provided objectRoute
crosses a internal lane with higher priorityThis is the case if one of the internalLanesWithHigherPriority() is part of the objectRoute.
bool ad::map::intersection::Intersection::objectRouteFromSameArmAsIntersectionRoute | ( | route::FullRoute const & | objectRoute | ) | const |
true
if the beginning of the provided objectRoute
is coming from the same arm as the intersection routeThis means the object is driving from same direction through the intersection.
bool ad::map::intersection::Intersection::objectRouteOppositeToIntersectionRoute | ( | route::FullRoute const & | objectRoute | ) | const |
true
if the beginning of the provided objectRoute
is coming from the same arm where the intersection route exits and leaves the intersection from the same arm the intersection route enters.This means the object is driving from exactly the opposite direction through the intersection.
bool ad::map::intersection::Intersection::onlySolidTrafficLightsOnRoute | ( | ) |
checks if there is just solid traffic lights on the intersection entry.
const lane::LaneIdSet& ad::map::intersection::Intersection::outgoingLanes | ( | ) | const |
const lane::LaneIdSet& ad::map::intersection::Intersection::outgoingLanesOnRoute | ( | ) | const |
const point::ParaPointList& ad::map::intersection::Intersection::outgoingParaPoints | ( | ) | const |
const point::ParaPointList& ad::map::intersection::Intersection::outgoingParaPointsOnRoute | ( | ) | const |
const point::ParaPointList& ad::map::intersection::Intersection::paraPointsOnRoute | ( | ) | const |
TurnDirection ad::map::intersection::Intersection::turnDirection | ( | ) | const |