DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

Maps.h File Reference

Detailed Description

NVIDIA DriveWorks API: Maps

Description: This file defines the API of the driveworks maps module.

Definition in file Maps.h.

Go to the source code of this file.

Data Structures

struct  dwMapsBoolBuffer
 User provided buffer of boolean variables. More...
 
struct  dwMapsElementId
 Identifier for general map elements. More...
 
struct  dwMapsFeature
 Road feature defined by a polyline, with attributes. More...
 
struct  dwMapsFeatureBuffer
 User provided buffer of dwMapsFeatures. More...
 
struct  dwMapsGeoPointBuffer
 User provided buffer of dwMapsGeoPoint. More...
 
struct  dwMapsGeoPolyline
 Polyline defined by a dwMapsGeoPoint list. More...
 
struct  dwMapsLane
 Lane defined by a polyline, with lane attributes. More...
 
struct  dwMapsLaneBuffer
 User provided buffer of dwMapsLane. More...
 
struct  dwMapsLaneConnection
 Represents a geometric connection to another lane in the map. More...
 
struct  dwMapsLaneDivider
 Lane divider defined by a polyline, with type, material and color information. More...
 
struct  dwMapsLaneDividerBuffer
 User provided buffer of dwMapsLaneDividers. More...
 
struct  dwMapsLaneDividerGroup
 Group of lane dividers, representing one boundary of a lane. More...
 
struct  dwMapsLaneDividerGroupId
 Globally unique identifier for lane divider groups. More...
 
struct  dwMapsLaneDividerLine
 Lane divider line defined by two points and the owner of a line. More...
 
struct  dwMapsLaneDividerLineBuffer
 User provided buffer of dwMapsLines. More...
 
struct  dwMapsLaneGroup
 A group of neighboring lanes and their traversability. More...
 
struct  dwMapsLaneId
 Globally unique identifier for lanes. More...
 
struct  dwMapsLaneMerge
 Lane merge on a lane plan. More...
 
struct  dwMapsLaneMergeDetails
 Lane merge on a lane plan. More...
 
struct  dwMapsLaneMeta
 Basic lane informatin. More...
 
struct  dwMapsLanePtrBuffer
 User provided buffer of dwMapsLane pointers. More...
 
struct  dwMapsLaneSplit
 Lane split on a lane plan. More...
 
struct  dwMapsLaneSplitDetails
 Lane split on a lane plan. More...
 
struct  dwMapsLaneTreeNode
 Lane Tree Node. More...
 
struct  dwMapsLaneTreeNodeBuffer
 User provided buffer of dwMapsLaneTreeNode. More...
 
struct  dwMapsLine
 Line defined by 2 points in user defined coordinates. More...
 
struct  dwMapsLocalBounds
 Local coordinate bounds. More...
 
struct  dwMapsLocalLayoutSegmentPose
 Provides information about road segment pose relative to layout component root. More...
 
struct  dwMapsPointBuffer
 User provided buffer of dwVector3f. More...
 
struct  dwMapsPolyline3fBuffer
 User provided buffer of dwPolyline3f. More...
 
struct  dwMapsRoadSegment
 Road Segment represents an atomic element of the core layer of a Map. More...
 
struct  dwMapsRoadSegmentBuffer
 User provided buffer of dwMapsRoadSegments. More...
 
struct  dwMapsRoadSegmentConnection
 Defines a graph connection to an adjacent road segment. More...
 
struct  dwMapsRoadSegmentId
 Globally unique identifier for road segments. More...
 
struct  dwMapsRoadSegmentPointerBuffer
 User provided buffer of dwMapsRoadSegment pointers. More...
 

Macros

#define DW_MAPS_INVALID_FEATURE_ID   (ULONG_MAX)
 
#define DW_MAPS_INVALID_LANE_INDEX   99999999
 Value that represents an invalid lane index. More...
 
#define DW_MAPS_MAX_LANE_CONNECTIONS   100
 
#define DW_MAPS_SERIALIZATION_FORMAT_XML_VERSION   5
 

Typedefs

typedef struct dwMapObject const * dwConstMapHandle_t
 
typedef struct dwMapsLaneTreeObject const * dwConstMapsLaneTreeHandle_t
 
typedef struct dwMapsLocalLayoutObject const * dwConstMapsLocalLayoutHandle_t
 
typedef struct dwMapTrackerObject const * dwConstMapTrackerHandle_t
 
typedef struct dwMapObject * dwMapHandle_t
 
typedef dwGeoBounds dwMapsBounds
 Map coordinate bounds. More...
 
typedef uint64_t dwMapsFeatureId
 
typedef dwGeoPoint dwMapsGeoPoint
 Point defined by WGS84 coordinates. More...
 
typedef uint32_t dwMapsLaneTraversabilityMask
 A mask composed of traversability information from enum dwMapsLaneTraversability. More...
 
typedef struct dwMapsLaneTreeObject * dwMapsLaneTreeHandle_t
 
typedef struct dwMapsLaneWaitElement dwMapsLaneWaitElement
 
typedef struct dwMapsLaneWaitGroup dwMapsLaneWaitGroup
 
typedef struct dwMapsLocalLayoutObject * dwMapsLocalLayoutHandle_t
 
typedef struct dwMapTrackerObject * dwMapTrackerHandle_t
 

Enumerations

enum  dwMapsColor {
  DW_MAPS_COLOR_UNKNOWN = 1 << 0,
  DW_MAPS_COLOR_WHITE = 1 << 1,
  DW_MAPS_COLOR_LIGHT_GRAY = 1 << 2,
  DW_MAPS_COLOR_GRAY = 1 << 3,
  DW_MAPS_COLOR_DARK_GRAY = 1 << 4,
  DW_MAPS_COLOR_BLACK = 1 << 5,
  DW_MAPS_COLOR_RED = 1 << 6,
  DW_MAPS_COLOR_YELLOW = 1 << 7,
  DW_MAPS_COLOR_GREEN = 1 << 8,
  DW_MAPS_COLOR_CYAN = 1 << 9,
  DW_MAPS_COLOR_BLUE = 1 << 10,
  DW_MAPS_COLOR_ORANGE = 1 << 11
}
 Colors. More...
 
enum  dwMapsDirection {
  DW_MAPS_DIRECTION_FORWARD = 1 << 0,
  DW_MAPS_DIRECTION_BACKWARD = 1 << 1,
  DW_MAPS_DIRECTION_BOTH = 1 << 2,
  DW_MAPS_DIRECTION_NONE = 1 << 3
}
 Direction compared to geometry (polyline order). More...
 
enum  dwMapsFeatureType {
  DW_MAPS_FEATURE_UNKNOWN = 0,
  DW_MAPS_FEATURE_TRAFFIC_SIGN = 1 << 16,
  DW_MAPS_FEATURE_TRAFFIC_LIGHT = 1 << 17,
  DW_MAPS_FEATURE_ROAD_MARKING = 1 << 18,
  DW_MAPS_FEATURE_POLE = 1 << 19,
  DW_MAPS_FEATURE_SPEEDBUMP = 1 << 20
}
 Feature types. More...
 
enum  dwMapsHDCompliance {
  DW_MAPS_HD_COMPLIANCE_NO = 0,
  DW_MAPS_HD_COMPLIANCE_YES = 1
}
 Enum for road segment hd compliance. More...
 
enum  dwMapsLaneDividerType {
  DW_MAPS_LANE_DIVIDER_TYPE_INVISIBLE = 1 << 0,
  DW_MAPS_LANE_DIVIDER_TYPE_LONG_DASHED = 1 << 1,
  DW_MAPS_LANE_DIVIDER_TYPE_DOUBLE_SOLID = 1 << 2,
  DW_MAPS_LANE_DIVIDER_TYPE_SINGLE_SOLID = 1 << 3,
  DW_MAPS_LANE_DIVIDER_TYPE_SOLID_DASHED = 1 << 4,
  DW_MAPS_LANE_DIVIDER_TYPE_DASHED_SOLID = 1 << 5,
  DW_MAPS_LANE_DIVIDER_TYPE_SHORT_DASHED = 1 << 6,
  DW_MAPS_LANE_DIVIDER_TYPE_SHADED_AREA = 1 << 7,
  DW_MAPS_LANE_DIVIDER_TYPE_DASHED_BLOCKS = 1 << 8,
  DW_MAPS_LANE_DIVIDER_TYPE_DOUBLE_DASHED = 1 << 9,
  DW_MAPS_LANE_DIVIDER_TYPE_CROSSING_ALERT = 1 << 10,
  DW_MAPS_LANE_DIVIDER_TYPE_CENTER_TURN_LANE = 1 << 12,
  DW_MAPS_LANE_DIVIDER_TYPE_PHYSICAL = 1 << 13,
  DW_MAPS_LANE_DIVIDER_TYPE_CURB = 1 << 14,
  DW_MAPS_LANE_DIVIDER_TYPE_WALL_FLAT = 1 << 15,
  DW_MAPS_LANE_DIVIDER_TYPE_WALL_TUNNEL = 1 << 16,
  DW_MAPS_LANE_DIVIDER_TYPE_BARRIER_JERSEY = 1 << 17,
  DW_MAPS_LANE_DIVIDER_TYPE_BARRIER_SOUND = 1 << 18,
  DW_MAPS_LANE_DIVIDER_TYPE_BARRIER_CABLE = 1 << 19,
  DW_MAPS_LANE_DIVIDER_TYPE_GUARDRAIL = 1 << 20,
  DW_MAPS_LANE_DIVIDER_TYPE_FENCE = 1 << 21,
  DW_MAPS_LANE_DIVIDER_TYPE_RUBBER_POLE = 1 << 22,
  DW_MAPS_LANE_DIVIDER_TYPE_ROAD_STUDS = 1 << 23,
  DW_MAPS_LANE_DIVIDER_TYPE_ROAD_EDGE = 1 << 24,
  DW_MAPS_LANE_DIVIDER_TYPE_ALL = (1u << 25) - 1u
}
 Lane divider type and filter values. More...
 
enum  dwMapsLaneEventType {
  DW_MAPS_LANEEVENTTYPE_NONE = 0,
  DW_MAPS_LANEEVENTTYPE_SPLIT = 1 << 0,
  DW_MAPS_LANEEVENTTYPE_MERGE = 1 << 1,
  DW_MAPS_LANEEVENTTYPE_BOTH = DW_MAPS_LANEEVENTTYPE_SPLIT | DW_MAPS_LANEEVENTTYPE_MERGE
}
 Lane event type indicates whether the next lane event is a lane split, a lane merge, or both. More...
 
enum  dwMapsLaneGeometry {
  DW_MAPS_LANE_GEOMETRY_LANEDIVIDERLEFT = DW_SIDE_LEFT,
  DW_MAPS_LANE_GEOMETRY_LANEDIVIDERRIGHT = DW_SIDE_RIGHT,
  DW_MAPS_LANE_GEOMETRY_LANECENTER = DW_SIDE_CENTER
}
 Enum for selection of lane geometry. More...
 
enum  dwMapsLaneTraversability {
  DW_MAPS_LANE_TRAVERSABILITY_NONE = 0,
  DW_MAPS_LANE_TRAVERSABILITY_LEFT_TO_RIGHT = 1 << 0,
  DW_MAPS_LANE_TRAVERSABILITY_RIGHT_TO_LEFT = 1 << 1
}
 
enum  dwMapsLaneTreeLimit {
  DW_MAPS_LANE_TREE_LIMIT_DISTANCE = 0,
  DW_MAPS_LANE_TREE_LIMIT_TIME = 1
}
 Enum to select the lane tree limit type. More...
 
enum  dwMapsLaneType {
  DW_MAPS_LANE_TYPE_REGULAR = 1 << 0,
  DW_MAPS_LANE_TYPE_SHOULDER = 1 << 1,
  DW_MAPS_LANE_TYPE_DRIVABLE_SHOULDER = 1 << 2,
  DW_MAPS_LANE_TYPE_CAR_POOL = 1 << 3,
  DW_MAPS_LANE_TYPE_ENTRY = 1 << 4,
  DW_MAPS_LANE_TYPE_EXIT = 1 << 5,
  DW_MAPS_LANE_TYPE_CONNECT = 1 << 6,
  DW_MAPS_LANE_TYPE_EMERGENCY = 1 << 7,
  DW_MAPS_LANE_TYPE_STOP = 1 << 8,
  DW_MAPS_LANE_TYPE_EMERGENCY_STOP = 1 << 9,
  DW_MAPS_LANE_TYPE_ACCELERATE = 1 << 10,
  DW_MAPS_LANE_TYPE_DECELERATE = 1 << 11,
  DW_MAPS_LANE_TYPE_AVOID_DANGER = 1 << 12,
  DW_MAPS_LANE_TYPE_INTERSECTION = 1 << 13,
  DW_MAPS_LANE_TYPE_TOLL_GATE = 1 << 14,
  DW_MAPS_LANE_TYPE_CHECK_POINT = 1 << 15,
  DW_MAPS_LANE_TYPE_TURN_AROUND = 1 << 16,
  DW_MAPS_LANE_TYPE_FORMING = 1 << 17,
  DW_MAPS_LANE_TYPE_DESTROY = 1 << 18,
  DW_MAPS_LANE_TYPE_RAMP = 1 << 19,
  DW_MAPS_LANE_TYPE_BICYCLE = 1 << 20,
  DW_MAPS_LANE_TYPE_PEDESTRIAN = 1 << 21
}
 Lane types. More...
 
enum  dwMapsMaterial {
  DW_MAPS_MATERIAL_UNKNOWN = 1 << 0,
  DW_MAPS_MATERIAL_METAL = 1 << 1,
  DW_MAPS_MATERIAL_CONCRETE = 1 << 2,
  DW_MAPS_MATERIAL_STONE = 1 << 3,
  DW_MAPS_MATERIAL_WOOD = 1 << 4,
  DW_MAPS_MATERIAL_PLASTIC = 1 << 5,
  DW_MAPS_MATERIAL_TRANSPARENT = 1 << 6,
  DW_MAPS_MATERIAL_PAINT = 1 << 7,
  DW_MAPS_MATERIAL_BOTTS_DOT = 1 << 8
}
 Material type values. More...
 
enum  dwMapsRoadMarkingType {
  DW_MAPS_ROAD_MARKING_TYPE_UNKNOWN = 0,
  DW_MAPS_ROAD_MARKING_TYPE_LINE = 1,
  DW_MAPS_ROAD_MARKING_TYPE_AREA = 1 << 1,
  DW_MAPS_ROAD_MARKING_TYPE_ENTRY = 1 << 2,
  DW_MAPS_ROAD_MARKING_TYPE_EXIT = 1 << 3,
  DW_MAPS_ROAD_MARKING_TYPE_CROSSWALK = 1 << 4,
  DW_MAPS_ROAD_MARKING_TYPE_SYMBOL = 1 << 5,
  DW_MAPS_ROAD_MARKING_TYPE_ARROW = 1 << 6,
  DW_MAPS_ROAD_MARKING_TYPE_ENTRY_LINE = DW_MAPS_ROAD_MARKING_TYPE_ENTRY | DW_MAPS_ROAD_MARKING_TYPE_LINE,
  DW_MAPS_ROAD_MARKING_TYPE_EXIT_LINE = DW_MAPS_ROAD_MARKING_TYPE_EXIT | DW_MAPS_ROAD_MARKING_TYPE_LINE,
  DW_MAPS_ROAD_MARKING_TYPE_ENTRY_AREA = DW_MAPS_ROAD_MARKING_TYPE_ENTRY | DW_MAPS_ROAD_MARKING_TYPE_AREA,
  DW_MAPS_ROAD_MARKING_TYPE_EXIT_AREA = DW_MAPS_ROAD_MARKING_TYPE_EXIT | DW_MAPS_ROAD_MARKING_TYPE_AREA
}
 Subtypes of DW_MAPS_FEATURE_ROAD_MARKING. More...
 
enum  dwMapsRoadSegmentType {
  DW_MAPS_ROAD_SEGMENT_TYPE_DEFAULT = 0,
  DW_MAPS_ROAD_SEGMENT_TYPE_CONTROLLED_ACCESS = 1 << 0,
  DW_MAPS_ROAD_SEGMENT_TYPE_BRIDGE = 1 << 1,
  DW_MAPS_ROAD_SEGMENT_TYPE_TUNNEL = 1 << 2,
  DW_MAPS_ROAD_SEGMENT_TYPE_RAMP = 1 << 3,
  DW_MAPS_ROAD_SEGMENT_TYPE_URBAN = 1 << 4,
  DW_MAPS_ROAD_SEGMENT_TYPE_TOLLWAY = 1 << 5,
  DW_MAPS_ROAD_SEGMENT_TYPE_INTERSECTION = 1 << 6,
  DW_MAPS_ROAD_SEGMENT_TYPE_HIGHWAY = 1 << 7
}
 Road segment types. More...
 
enum  dwMapsSerializationFormat {
  DW_MAPS_SERIALIZATION_FORMAT_BINARY = 0,
  DW_MAPS_SERIALIZATION_FORMAT_XML = 1
}
 Serialization formats. More...
 
enum  dwMapsSide {
  DW_MAPS_SIDE_LEFT = DW_SIDE_LEFT,
  DW_MAPS_SIDE_RIGHT = DW_SIDE_RIGHT,
  DW_MAPS_SIDE_NONE = DW_SIDE_CENTER
}
 Enum for sides. More...
 
enum  dwMapsTrafficSignalState {
  DW_MAPS_TRAFFIC_SIGNAL_STATE_NONE = 0,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_RED = 1 << 0,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_YELLOW = 1 << 1,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_GREEN = 1 << 2,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_STEADY = 1 << 3,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_FLASHING = 1 << 4,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_ARROW = 1 << 5,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_LEFT = 1 << 6,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_RIGHT = 1 << 7,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_STRAIGHT = 1 << 8,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_ANGLED = 1 << 9,
  DW_MAPS_TRAFFIC_SIGNAL_STATE_MAXIMUM = 1 << 10
}
 Bitmask to specify the state of a traffic signal. More...
 

Functions

DW_API_PUBLIC dwStatus dwMaps_closestPointOnPolyline (dwMapsGeoPoint *closestPoint, float64_t *distanceMeters, uint32_t *lineSegmentIndex, const dwMapsGeoPoint *p, const dwMapsGeoPolyline *polyline, bool ignoreHeight)
 Find closest point on a polyline of WGS84 points. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeBearingFromGeoPoints (float64_t *bearingRadian, const dwMapsGeoPoint *position, const dwMapsGeoPoint *headingPoint)
 Compute bearing in radian from two points. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeBearingFromRotation (float64_t *bearingRadian, const dwMatrix3d *localToENURotation33)
 Compute bearing in radian from localToENU rotation. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeBounds (dwMapsBounds *bounds, const dwMapsGeoPoint *p, float32_t radiusMeter)
 Compute WGS84 query bounds from position and radius in meters. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeBoundsSize (float32_t *width, float32_t *height, const dwMapsBounds *bounds)
 Compute width and height of bounds in meters. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeDistance (float64_t *distance, const dwMapsGeoPoint *p1, const dwMapsGeoPoint *p2)
 Compute Euclidean distance between two points. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeLocalToLocalTransform (dwTransformation3f *transform, const dwMapsGeoPoint *originSource, const dwMatrix3d *localToENURotationSource, const dwMapsGeoPoint *originTarget, const dwMatrix3d *localToENURotationTarget)
 Compute transform (translation and rotation) that changes a 3d point from one coordinate system to another. More...
 
DW_API_PUBLIC dwStatus dwMaps_computePolylineLength (float32_t *length, const dwMapsGeoPoint *points, uint32_t pointCount)
 Compute length of a polyline of wgs84 points in meters. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeRotationFromBearing (dwMatrix3d *localToENURotation33, float32_t bearingRadian)
 Create a rotation matrix that transfroms from a local coordinate system with x-axis pointing towards bearing into the ENU coordinate system. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeRotationFromGeoPoints (dwMatrix3d *localToENURotation33, const dwMapsGeoPoint *position, const dwMapsGeoPoint *headingPoint)
 Compute orientation matrix from two WGS84 points. More...
 
DW_API_PUBLIC dwStatus dwMaps_computeRotationFromLocalPoints (dwMatrix3d *localToENURotation33, const dwVector3f *position, const dwVector3f *headingPoint)
 Compute orientation matrix from two local points in an ENU space. More...
 
DW_API_PUBLIC dwStatus dwMaps_getBounds (dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
 Get bounds of map data currently in memory. More...
 
DW_API_PUBLIC dwStatus dwMaps_getClosestLaneFromGeoPoint (const dwMapsLane **closestLane, dwMapsGeoPoint *closestPoint, const dwMapsGeoPoint *p, bool onlyDrivable, bool ignoreHeight, float32_t maxRadius, dwConstMapHandle_t mapHandle)
 Get closest lane in the map to a global gps point. More...
 
DW_API_PUBLIC dwStatus dwMaps_getClosestLaneFromLocalPoint (const dwMapsLane **closestLane, dwVector3f *closestPoint, const dwMapsRoadSegment *referenceRoadSegment, const dwVector3f *position, bool onlyDrivable, float32_t maxRadius, dwConstMapHandle_t mapHandle)
 Get closest lane in the map to a point in a local coordinate of a road segment. More...
 
DW_API_PUBLIC dwStatus dwMaps_getClosestLaneOnRoadSegment (const dwMapsLane **closestLane, dwVector3f *closestPoint, const dwMapsRoadSegment *referenceRoadSegment, const dwVector3f *position, bool onlyDrivable)
 Get closest lane on a road segment, given a position in coordinates of the same road segment. More...
 
DW_API_PUBLIC dwStatus dwMaps_getConnectedToLocal (dwTransformation3f *connectedToLocal, const dwMapsLane *localLane, const dwMapsLane *connectedLane)
 Get coordinate transform to transform a point in connectedLane's coordinate system into the localLane's coordinate system. More...
 
DW_API_PUBLIC dwStatus dwMaps_getFeature (const dwMapsFeature **mapsFeature, const dwMapsFeatureId *id, dwConstMapHandle_t mapHandle)
 Get a map feature queried by a feature id. More...
 
DW_API_PUBLIC dwStatus dwMaps_getFeatures (dwMapsFeatureBuffer *features, uint32_t typeFilter, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
 Get features within bounds. More...
 
DW_API_PUBLIC dwStatus dwMaps_getLane (const dwMapsLane **lane, const dwMapsLaneId *id, dwConstMapHandle_t mapHandle)
 Get a lane queried by a lane id. More...
 
DW_API_PUBLIC dwStatus dwMaps_getLaneChange (dwMapsSide *laneChangeSide, uint32_t *laneChangeCount, float32_t *laneChangeLength, const dwMapsLane *srcLane, const dwMapsLane *targetLane)
 Check if there's a valid lane change from one lane to another on the same road segment. More...
 
DW_API_PUBLIC dwStatus dwMaps_getLaneChangeAtGlobalPose (dwMapsSide *laneChangeSide, uint32_t *laneChangeCount, float32_t *laneChangeLength, const dwMapsLane *srcLane, const dwMapsLane *targetLane, const dwMapsGeoPoint *position, const dwMatrix3d *localToENURotation33)
 Check if there's a valid lane change from one lane to another on the same road segment. More...
 
DW_API_PUBLIC dwStatus dwMaps_getLaneChangeAtLocalPose (dwMapsSide *laneChangeSide, uint32_t *laneChangeCount, float32_t *laneChangeLength, const dwMapsLane *srcLane, const dwMapsLane *targetLane, const dwMapsRoadSegment *referenceRoadSegment, const dwVector3f *position, const dwMatrix3d *localToENURotation33)
 Check if there's a valid lane change from one lane to another on the same road segment. More...
 
DW_API_PUBLIC dwStatus dwMaps_getLaneDividerGroup (const dwMapsLaneDividerGroup **laneDividerGroup, const dwMapsLaneDividerGroupId *id, dwConstMapHandle_t mapHandle)
 Get a lane divider group queried by a lane divider group id. More...
 
DW_API_PUBLIC dwStatus dwMaps_getLaneDividers (dwMapsLaneDividerBuffer *laneDividers, uint32_t typeFilter, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
 Get lane dividers within bounds. More...
 
DW_API_PUBLIC dwStatus dwMaps_getNeighborLane (const dwMapsLane **otherLane, const dwMapsLane *currentLane, dwMapsSide side, uint32_t offset, bool sideRelativeToDrivingDirection)
 Get a neighbor lane on a given side. More...
 
DW_API_PUBLIC dwStatus dwMaps_getNeighborLaneCount (uint32_t *laneCount, uint32_t *laneCountAccessible, const dwMapsLane *lane, dwMapsSide side, bool sideRelativeToDrivingDirection)
 Get the number of lanes on the current road segment next to a given lane. More...
 
DW_API_PUBLIC dwStatus dwMaps_getNextLaneEvent (dwMapsLaneEventType *type, dwMapsLaneSplitDetails *laneSplit, dwMapsLaneMergeDetails *laneMerge, float32_t *nextEventDist, const dwMapsLane *currentLane, const bool *forwardOnPolyline, float32_t maxDistance)
 Get the next lane split and/or lane merge. More...
 
DW_API_PUBLIC dwStatus dwMaps_getNextLaneSplitAtGlobalPose (dwMapsLaneSplitDetails *laneSplit, float32_t *laneSplitDistance, const dwMapsLane *currentLane, float32_t maxSearchDistance, const dwMapsGeoPoint *position, const dwMatrix3d *localToENURotation33)
 Get next lane split. More...
 
DW_API_PUBLIC dwStatus dwMaps_getNextLaneSplitAtLocalPose (dwMapsLaneSplitDetails *laneSplit, float32_t *laneSplitDistance, const dwMapsLane *currentLane, float32_t maxSearchDistance, const dwMapsRoadSegment *referenceRoadSegment, const dwVector3f *position, const dwMatrix3d *localToENURotation33)
 Get next lane split. More...
 
DW_API_PUBLIC dwStatus dwMaps_getPointAhead (dwMapsGeoPoint *pointAhead, const dwMapsGeoPoint *position, const dwMatrix3d *localToENURotation33, float32_t distance)
 Get wgs84 point moving forward from a position. More...
 
DW_API_PUBLIC dwStatus dwMaps_getRoadSegment (const dwMapsRoadSegment **roadSegment, const dwMapsRoadSegmentId *id, dwConstMapHandle_t mapHandle)
 Get a road segment queried by a road segment id. More...
 
DW_API_PUBLIC dwStatus dwMaps_getRoadSegmentPointers (dwMapsRoadSegmentPointerBuffer *roadSegmentPointers, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
 Get pointers to road segments within bounds. More...
 
DW_API_PUBLIC dwStatus dwMaps_getRoadSegments (dwMapsRoadSegmentBuffer *roadSegments, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
 Get road segments within bounds. More...
 
DW_API_PUBLIC dwStatus dwMaps_initialize (dwMapHandle_t *mapHandle, const char *filename, dwContextHandle_t contextHandle)
 Creates a map handle and initializes the map data by deserializing a driveworks maps file. More...
 
DW_API_PUBLIC dwStatus dwMaps_interpolatePolylines (uint32_t *srcStartIndex, uint32_t *targetEndIndex, dwMapsGeoPointBuffer *interpolatedPoints, const dwMapsGeoPoint *srcPoints, uint32_t srcPointCount, const dwMapsGeoPoint *targetPoints, uint32_t targetPointCount, float32_t start, float32_t end, float32_t stepSize, float32_t(*interpolationFn)(float32_t, void *), void *interpolationFnContext)
 Interpolate between 2 polylines. More...
 
DW_API_PUBLIC dwStatus dwMaps_isConnectionDrivable (bool *isDrivable, const dwMapsLane *lane, const dwMapsLaneConnection *connection)
 Check whether it is possible/allowed to drive from the given onto the given connection. More...
 
DW_API_PUBLIC dwStatus dwMaps_release (dwMapHandle_t mapHandle)
 Release map handle. More...
 
DW_API_PUBLIC dwStatus dwMaps_resamplePolyline (dwMapsGeoPointBuffer *result, const dwMapsGeoPolyline *polyline, float32_t stepSize)
 Resample a polyline of WGS84 points to a polyline with fixed step size. More...
 
DW_API_PUBLIC dwStatus dwMaps_serialize (const char *filename, dwMapsSerializationFormat format, dwConstMapHandle_t mapHandle)
 Stores current map content into a file. More...
 
DW_API_PUBLIC dwStatus dwMaps_stitchLaneGeometry (dwMapsPointBuffer *polyline, dwMapsLanePtrBuffer *perPointLanes, const dwMapsLane *lanes, uint32_t laneCount, dwMapsLaneGeometry geometrySelection)
 Stitches the polylines of a list of lanes into a single polyline. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformFeaturesToLocalLinesViaRelative (dwMapsPolyline3fBuffer *featureLineSegments, dwMapsPointBuffer *featurePoints, const dwMapsFeatureBuffer *dwFeatures, const dwMatrix3f rotationLayoutRootToLocal, const dwVector3f translationLayoutRootToLocal, const dwMapsLocalBounds *localBounds, dwConstMapsLocalLayoutHandle_t localLayoutHandle, uint32_t componentId)
 Get featureLineSegments and featurePoints from the list of specified dwFeatures, transformed into the camera coordinate system. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformLaneDividersToLocalLines (dwMapsLaneDividerLineBuffer *lineSegments, const dwMapsLaneDividerBuffer *laneDividers, const dwMapsGeoPoint *localOrigin, const dwMatrix3d *localToENURotation33, const dwMapsLocalBounds *localBounds, const dwVector3f *directionFilterVector, float32_t directionFilterAngleRadian, bool ignoreLaneDirection, dwConstMapsLocalLayoutHandle_t localLayoutHandle, uint32_t componentId)
 Get line segments from the list of specified dividers, transformed into a local cartesian coordinate system defined by position 'localOrigin', rotation matrix 'localToENURotation33', optionally filtered by orientation and bounds in local coordinate. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformLaneDividersToLocalLinesViaRelative (dwMapsLaneDividerLineBuffer *lineSegments, const dwMapsLaneDividerBuffer *laneDividers, const dwMatrix3f rotationLayoutRootToLocal, const dwVector3f translationLayoutRootToLocal, const dwMapsLocalBounds *localBounds, const dwVector3f *directionFilterVector, float32_t directionFilterAngleRadian, bool ignoreLaneDirection, dwConstMapsLocalLayoutHandle_t localLayoutHandle, uint32_t componentId)
 Get line segments from the list of specified dividers, transformed into the camera coordinate system. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformPoint (dwVector3f *transformedPoint, const dwMapsGeoPoint *point, const dwMapsGeoPoint *localOrigin, const dwMatrix3d *localToENURotation33)
 Transform a WGS84 point into a point in a local coordinate system defined by position 'localOrigin' and rotation matrix 'localToENURotation33'. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformPointReverse (dwMapsGeoPoint *transformedPoint, const dwVector3f *point, const dwMapsGeoPoint *localOrigin, const dwMatrix3d *localToENURotation33)
 Transform a point in a local coordinate system defined by position 'localOrigin' and rotation matrix 'localToENURotation33' to a WGS84 point. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformPolylines (dwMapsPointBuffer *transformedPoints, const dwMapsGeoPolyline *polylines, uint32_t polylineCount, const dwMapsGeoPoint *localOrigin, const dwMatrix3d *localToENURotation33)
 Transform polylines into points in a local coordinate system defined by position 'localOrigin' and rotation matrix 'localToENURotation33'. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformPolylinesReverse (dwMapsGeoPointBuffer *transformedPoints, const dwPolyline3f *polylines, uint32_t polylineCount, const dwMapsGeoPoint *localOrigin, const dwMatrix3d *localToENURotation33)
 Transform local space polylines into WGS84 point polylines. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformRoadFeaturesToLocalLines (dwMapsPolyline3fBuffer *localPolylines, dwMapsPointBuffer *localPoints, const dwMapsFeatureBuffer *features, const dwMapsGeoPoint *localOrigin, const dwMatrix3d *localToENURotation33, const dwMapsLocalBounds *localBounds, dwConstMapsLocalLayoutHandle_t localLayoutHandle, uint32_t componentId)
 Get polylines and points from the list of specified features, transformed into a local cartesian coordinate system defined by position 'localOrigin', rotation matrix 'localToENURotation33', optionally filtered by bounds in local coordinate. More...
 
DW_API_PUBLIC dwStatus dwMaps_transformRoadFeaturesToLocalSpace (dwMapsPolyline3fBuffer *localPolylines, dwMapsPointBuffer *pointBuffer, const dwMapsFeatureBuffer *features, const dwMapsGeoPoint *localOrigin, const dwMatrix3d *localToENURotation33, const dwMapsLocalBounds *localBounds)
 Get geometry from the list of specified road features, transformed into a local cartesian coordinate system defined by position 'localOrigin' and rotation matrix 'localToENURotation33', optionally filtered by bounds in local coordinate system. More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_create (const dwMapsLane *lane, float32_t limit, dwMapsLaneTreeLimit limitType, bool doLaneChanges, bool forward, bool relativeToDrivingDirection, dwMapsLaneTreeHandle_t laneTree)
 Create a lane tree starting at a given lane. More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_get (dwMapsLaneTreeNode **root, dwMapsLaneTreeNodeBuffer *laneTreeNodes, dwConstMapsLaneTreeHandle_t laneTree)
 Get the created lane tree. More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLaneCount (uint32_t *laneCount, dwConstMapsLaneTreeHandle_t laneTree)
 Get total number of lanes in the lane tree. More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLaneListToLeaf (dwMapsLaneBuffer *laneBuffer, uint32_t leafIndex, dwConstMapsLaneTreeHandle_t laneTree)
 Get the list of lanes that connect the root lane to a leaf. More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLanes (dwMapsLaneBuffer *laneBuffer, dwConstMapsLaneTreeHandle_t laneTree)
 Get all lanes in lane tree. More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLeafCount (uint32_t *leafCount, dwConstMapsLaneTreeHandle_t laneTree)
 dwMapsLaneTree_getLeafCount More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_initialize (dwMapsLaneTreeHandle_t *laneTreeHandle, uint32_t maxLaneCount, dwConstMapHandle_t map)
 Creates a lane tree object that allows to create a tree of connected lanes. More...
 
DW_API_PUBLIC dwStatus dwMapsLaneTree_release (dwMapsLaneTreeHandle_t laneTreeHandle)
 Release lane tree handle. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_addRoadSegmentPointers (const dwMapsRoadSegment **segmentPointers, uint32_t count, dwMapsLocalLayoutHandle_t localLayoutHandle)
 Add road segment pointers to the layout. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_addRoadSegments (const dwMapsRoadSegment *segments, uint32_t count, dwMapsLocalLayoutHandle_t localLayoutHandle)
 Add road segments to the layout. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_build (const dwMapsGeoPoint *layoutOrigin, dwMapsLocalLayoutHandle_t localLayoutHandle)
 Computes relative transforms between segments previously added to the layout: More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_getComponentCount (uint32_t *componentCount, dwConstMapsLocalLayoutHandle_t localLayoutHandle)
 Returns the number of connected components discovered while building the layout. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_getComponentRoot (const dwMapsRoadSegment **segment, uint32_t componentId, dwConstMapsLocalLayoutHandle_t localLayoutHandle)
 Returns the root segment of the specified connected component. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_getSegmentPose (dwMapsLocalLayoutSegmentPose *pose, const dwMapsRoadSegmentId *segmentId, dwConstMapsLocalLayoutHandle_t localLayoutHandle)
 Provides information about road segment pose relative to layout component root. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_initialize (dwMapsLocalLayoutHandle_t *localLayoutHandle, uint32_t maxRoadSegments, uint32_t maxComponents)
 Creates a local map layout object, which provides locally-accurate relative poses of road segments. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_release (dwMapsLocalLayoutHandle_t localLayoutHandle)
 Destroys a local layout object. More...
 
DW_API_PUBLIC dwStatus dwMapsLocalLayout_reset (dwMapsLocalLayoutHandle_t localLayoutHandle)
 Clear out previously added road segments. More...
 
DW_API_PUBLIC dwStatus dwMapTracker_getCurrentCandidateLanes (dwMapsLaneBuffer *lanes, dwConstMapTrackerHandle_t mapTrackerHandle)
 Get current lane candidates that have been used to find the current lane. More...
 
DW_API_PUBLIC dwStatus dwMapTracker_getCurrentLane (const dwMapsLane **currentLane, dwConstMapTrackerHandle_t mapTrackerHandle)
 Get current lane that has been evaluated in the last update. More...
 
DW_API_PUBLIC dwStatus dwMapTracker_initialize (dwMapTrackerHandle_t *mapTrackerHandle, dwConstMapHandle_t map)
 Creates a map tracker handle that allows to track a pose on a map. More...
 
DW_API_PUBLIC dwStatus dwMapTracker_release (dwMapTrackerHandle_t mapTrackerHandle)
 Release map tracker handle. More...
 
DW_API_PUBLIC dwStatus dwMapTracker_updateWithGlobalPose (const dwMapsGeoPoint *position, const dwMatrix3d *localToENURotation33, dwTime_t timestamp, bool ignoreHeight, bool reset, dwMapTrackerHandle_t mapTrackerHandle)
 Update the tracker with the current pose defined by a WGS84 point and a rotation matrix. More...
 
DW_API_PUBLIC dwStatus dwMapTracker_updateWithLocalPose (const dwMapsRoadSegment *referenceRoadSegment, const dwVector3f *position, const dwMatrix3d *localToENURotation33, dwTime_t timestamp, bool reset, dwMapTrackerHandle_t mapTrackerHandle)
 dwMapTracker_updateWithLocalPose More...