31 #ifndef DW_MAPS_MAPS_H_ 32 #define DW_MAPS_MAPS_H_ 54 #include <dw/core/Config.h> 361 #define DW_MAPS_MAX_LANE_CONNECTIONS 100 467 #define DW_MAPS_INVALID_FEATURE_ID (ULONG_MAX) 476 const dwMapsLaneTraversabilityMask* traversability;
543 uint32_t previousCount;
549 uint32_t waitElementCount;
553 uint32_t waitGroupCount;
829 const char* filename,
868 #define DW_MAPS_SERIALIZATION_FORMAT_XML_VERSION 5 884 dwConstMapHandle_t mapHandle);
916 const dwMapsGeoPoint* p,
933 const dwMapsGeoPoint* position,
934 const dwMapsGeoPoint* headingPoint);
993 const dwMapsGeoPoint* position,
994 const dwMapsGeoPoint* headingPoint);
1027 const dwMapsGeoPoint* position,
1055 uint32_t polylineCount,
1056 const dwMapsGeoPoint* localOrigin,
1082 uint32_t polylineCount,
1083 const dwMapsGeoPoint* localOrigin,
1107 const dwMapsGeoPoint* point,
1108 const dwMapsGeoPoint* localOrigin,
1135 const dwMapsGeoPoint* localOrigin,
1156 const dwMapsGeoPoint* originSource,
1158 const dwMapsGeoPoint* originTarget,
1197 uint32_t* targetEndIndex,
1199 const dwMapsGeoPoint* srcPoints,
1200 uint32_t srcPointCount,
1201 const dwMapsGeoPoint* targetPoints,
1202 uint32_t targetPointCount,
1207 void* interpolationFnContext);
1229 uint32_t* laneCountAccessible,
1231 bool sideRelativeToDrivingDirection);
1254 dwMapsSide side, uint32_t offset,
1255 bool sideRelativeToDrivingDirection);
1289 uint32_t* laneChangeCount,
1293 const dwMapsGeoPoint* position,
1332 uint32_t* laneChangeCount,
1359 uint32_t* laneChangeCount,
1414 const dwMapsGeoPoint* localOrigin,
1436 dwMapsLaneGeometry geometrySelection);
1450 const dwMapsGeoPoint* points, uint32_t pointCount);
1483 uint32_t* lineSegmentIndex,
1484 const dwMapsGeoPoint* p,
1548 #define DW_MAPS_INVALID_LANE_INDEX 99999999 1567 uint32_t splitCount;
1570 uint32_t splitIndex;
1591 uint32_t splitIndex;
1612 uint32_t mergingLaneCount;
1676 const bool* forwardOnPolyline,
1738 const dwMapsGeoPoint* position,
1770 dwConstMapHandle_t mapHandle);
1793 uint32_t typeFilter,
1794 const dwMapsBounds* bounds,
1795 dwConstMapHandle_t mapHandle);
1814 dwConstMapHandle_t mapHandle);
1837 uint32_t typeFilter,
1838 const dwMapsBounds* bounds,
1839 dwConstMapHandle_t mapHandle);
1856 const dwMapsFeatureId*
id,
1857 dwConstMapHandle_t mapHandle);
1878 const dwMapsBounds* bounds,
1879 dwConstMapHandle_t mapHandle);
1900 const dwMapsBounds* bounds,
1901 dwConstMapHandle_t mapHandle);
1919 dwConstMapHandle_t mapHandle);
1941 dwMapsGeoPoint* closestPoint,
1942 const dwMapsGeoPoint* p,
1946 dwConstMapHandle_t mapHandle);
1972 dwConstMapHandle_t mapHandle);
2100 dwMapTrackerHandle_t mapTrackerHandle);
2134 dwMapTrackerHandle_t mapTrackerHandle);
2148 dwConstMapTrackerHandle_t mapTrackerHandle);
2162 dwConstMapTrackerHandle_t mapTrackerHandle);
2230 uint32_t maxLaneCount,
2231 dwConstMapHandle_t map);
2275 bool doLaneChanges,
bool forward,
bool relativeToDrivingDirection,
2276 dwMapsLaneTreeHandle_t laneTree);
2295 dwConstMapsLaneTreeHandle_t laneTree);
2326 dwConstMapsLaneTreeHandle_t laneTree);
2435 dwMapsLocalLayoutHandle_t localLayoutHandle);
2450 dwMapsLocalLayoutHandle_t localLayoutHandle);
2495 dwConstMapsLocalLayoutHandle_t localLayoutHandle);
2511 dwConstMapsLocalLayoutHandle_t localLayoutHandle);
2553 const dwMapsGeoPoint* localOrigin,
2558 bool ignoreLaneDirection,
2559 dwConstMapsLocalLayoutHandle_t localLayoutHandle,
2560 uint32_t componentId);
2594 const dwMapsGeoPoint* localOrigin,
2597 dwConstMapsLocalLayoutHandle_t localLayoutHandle,
2598 uint32_t componentId);
2633 const dwVector3f translationLayoutRootToLocal,
2637 bool ignoreLaneDirection,
2638 dwConstMapsLocalLayoutHandle_t localLayoutHandle,
2639 uint32_t componentId);
2667 const dwVector3f translationLayoutRootToLocal,
2669 dwConstMapsLocalLayoutHandle_t localLayoutHandle,
2670 uint32_t componentId);
2682 #endif // DW_MAPS_MAPS_H_ 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.
dwMapsRoadSegmentId segmentId
id of the connected road segment.
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.
dwMapsLaneMeta laneBeforeSplit
lane that splits
Road feature defined by a polyline, with attributes.
struct dwMapsLaneWaitElement dwMapsLaneWaitElement
DW_API_PUBLIC dwStatus dwMaps_computeBearingFromRotation(float64_t *bearingRadian, const dwMatrix3d *localToENURotation33)
Compute bearing in radian from localToENU rotation.
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...
uint32_t maxSize
maximum number of lane dividers that fit into the buffer
struct dwMapTrackerObject * dwMapTrackerHandle_t
const dwMapsLaneDividerGroup * laneDividerGroups
pointer to lane divider group array of this segment
DW_API_PUBLIC dwStatus dwMaps_getRoadSegments(dwMapsRoadSegmentBuffer *roadSegments, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
Get road segments within bounds.
User provided buffer of boolean variables.
User provided buffer of dwPolyline3f.
NVIDIA DriveWorks API: Core Types
uint32_t previousCount
number of segment connections at segment start
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.
float float32_t
Specifies POD types.
const dwMapsRoadSegment * roadSegment
parent road segment
dwMapsLaneMeta laneAfterMerge
lane into which the lanes merge
Defines a single-precision 3D polyline.
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.
Polyline defined by a dwMapsGeoPoint list.
DW_API_PUBLIC dwStatus dwMapsLaneTree_release(dwMapsLaneTreeHandle_t laneTreeHandle)
Release lane tree handle.
DW_API_PUBLIC dwStatus dwMaps_getFeature(const dwMapsFeature **mapsFeature, const dwMapsFeatureId *id, dwConstMapHandle_t mapHandle)
Get a map feature queried by a feature id.
uint32_t size
current number of valid lanes in the buffer
Lane defined by a polyline, with lane attributes.
DW_API_PUBLIC dwStatus dwMapsLocalLayout_build(const dwMapsGeoPoint *layoutOrigin, dwMapsLocalLayoutHandle_t localLayoutHandle)
Computes relative transforms between segments previously added to the layout:
DW_API_PUBLIC dwStatus dwMaps_serialize(const char *filename, dwMapsSerializationFormat format, dwConstMapHandle_t mapHandle)
Stores current map content into a file.
uint32_t laneDividerGroupCount
number of lane divider groups in this segment
dwGeoBounds dwMapsBounds
Map coordinate bounds.
DW_API_PUBLIC dwStatus dwMapTracker_release(dwMapTrackerHandle_t mapTrackerHandle)
Release map tracker handle.
uint32_t size
current number of valid road segments in the buffer
Group of lane dividers, representing one boundary of a lane.
dwMapsGeoPoint * buffer
pointer to geo point buffer
dwMapsFeature * buffer
pointer to feature buffer
uint32_t laneCount
number of lanes in this segment
DW_API_PUBLIC dwStatus dwMapsLocalLayout_release(dwMapsLocalLayoutHandle_t localLayoutHandle)
Destroys a local layout object.
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLeafCount(uint32_t *leafCount, dwConstMapsLaneTreeHandle_t laneTree)
dwMapsLaneTree_getLeafCount
uint32_t mergingLaneIndex
index of the connection that connects to the lane on the lane plan.
Defines a three-element floating-point vector.
uint32_t mergingLaneIndex
index of the connection that connects to the lane on the lane plan.
const dwMapsLane * lanes
pointer to lane array of this segment
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 coor...
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 ...
uint32_t maxSize
maximum number of nodes that fit into the buffer
const dwMapsRoadSegmentConnection * next
pointer to road segment connections at segment end
uint32_t size
current number of valid booleans in the buffer
User provided buffer of dwMapsLines.
uint32_t maxSize
maximum number of lanes that fit into the buffer
Geographic coordinate bounds.
DW_API_PUBLIC dwStatus dwMapsLocalLayout_getComponentRoot(const dwMapsRoadSegment **segment, uint32_t componentId, dwConstMapsLocalLayoutHandle_t localLayoutHandle)
Returns the root segment of the specified connected component.
uint32_t size
current number of valid features in the buffer
dwMapsLaneType type
lane type
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 an...
dwMapsColor color
lane divider color
dwMapsLaneTreeLimit
Enum to select the lane tree limit type.
dwMapsLaneDividerGroupId id
globally unique id of the group
dwMapsDirection drivingDirection
driving direction compared to geometry polyline direction (which is also the road segment orientation...
uint32_t laneCount
The number of lanes in this group.
DW_API_PUBLIC dwStatus dwMaps_computeDistance(float64_t *distance, const dwMapsGeoPoint *p1, const dwMapsGeoPoint *p2)
Compute Euclidean distance between two points.
Globally unique identifier for lanes.
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 ...
uint32_t type
type of a feature
dwMapsGeoPoint origin
origin of segment's ENU coordinate frame.
dwMapsHDCompliance hdCompliance
hd compliance of contents
User provided buffer of dwVector3f.
const dwMapsRoadSegment ** buffer
pointer to road segment pointer buffer
Defines a graph connection to an adjacent road segment.
NVIDIA DriveWorks API: Core Methods
struct dwMapObject * dwMapHandle_t
User provided buffer of dwMapsGeoPoint.
uint32_t mergingLaneCount
number of merging lanes
DW_API_PUBLIC dwStatus dwMaps_getFeatures(dwMapsFeatureBuffer *features, uint32_t typeFilter, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
Get features within bounds.
Lane merge on a lane plan.
uint32_t featureCount
number of features in this segment
dwMapsMaterial material
lane divider material
uint32_t maxSize
maximum number of points that fit into the buffer
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
const dwMapsLaneDivider * laneDividers
pointer to lane divider array
bool * buffer
pointer to bool buffer
dwMapsRoadSegmentType
Road segment types.
Represents a geometric connection to another lane in the map.
arrow feature, eg, left turn arrow, etc
dwMapsTrafficSignalState
Bitmask to specify the state of a traffic signal.
uint32_t size
current number of valid points in the buffer
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.
dwMapsDirection drivingDirection
driving direction compared to geometry polyline direction (which is also the road segment orientation...
dwMapsLaneId id
globally unique id of the lane
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.
uint64_t id
unique id of a feature
dwMapsLaneId id
globally unique id of the lane
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.
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.
uint32_t laneGroupCount
lane group count
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.
uint32_t maxSize
maximum number of lanes that fit into the buffer
uint32_t maxSize
maximum number of points that fit into the buffer
uint32_t size
current number of valid lanes in the buffer
uint32_t maxSize
maximum number of features that fit into the buffer
dwStatus
Status definition.
DW_API_PUBLIC dwStatus dwMaps_computeBearingFromGeoPoints(float64_t *bearingRadian, const dwMapsGeoPoint *position, const dwMapsGeoPoint *headingPoint)
Compute bearing in radian from two points.
User provided buffer of dwMapsRoadSegments.
DW_API_PUBLIC dwStatus dwMaps_computeBounds(dwMapsBounds *bounds, const dwMapsGeoPoint *p, float32_t radiusMeter)
Compute WGS84 query bounds from position and radius in meters.
dwMapsLaneDividerType type
lane divider type
symbol type feature, eg, car pool symbol, etc
uint32_t splitCount
number of lanes emerging from the lane before the split
DW_API_PUBLIC dwStatus dwMapsLaneTree_get(dwMapsLaneTreeNode **root, dwMapsLaneTreeNodeBuffer *laneTreeNodes, dwConstMapsLaneTreeHandle_t laneTree)
Get the created lane tree.
DW_API_PUBLIC dwStatus dwMapTracker_getCurrentLane(const dwMapsLane **currentLane, dwConstMapTrackerHandle_t mapTrackerHandle)
Get current lane that has been evaluated in the last update.
uint32_t maxSize
maximum number of road segments that fit into the buffer
dwMapsLaneEventType
Lane event type indicates whether the next lane event is a lane split, a lane merge, or both.
const dwMapsLane *const * lanes
The lanes in this group from left to right.
Location point defined by WGS84 coordinates.
dwMapsSide
Enum for sides.
dwMapsRoadSegment * buffer
pointer to road segment buffer
Lane merge on a lane plan.
const dwMapsRoadSegment * roadSegment
parent road segment
dwPolyline3f * buffer
pointer to polyline buffer
#define DW_MAPS_MAX_LANE_CONNECTIONS
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.
struct dwMapsLaneWaitGroup dwMapsLaneWaitGroup
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
dwMapsMaterial
Material type values.
const dwMapsLane * lane
pointer to the connected lane.
dwMapsLaneGeometry
Enum for selection of lane geometry.
The maps confidence in an element.
User provided buffer of dwMapsFeatures.
#define DW_DEPRECATED(msg)
const dwMapsLaneGroup * laneGroups
pointer to array of lane groups in this segment
DW_API_PUBLIC dwStatus dwMapsLocalLayout_addRoadSegments(const dwMapsRoadSegment *segments, uint32_t count, dwMapsLocalLayoutHandle_t localLayoutHandle)
Add road segments to the layout.
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 ...
DW_API_PUBLIC dwStatus dwMapsLocalLayout_getComponentCount(uint32_t *componentCount, dwConstMapsLocalLayoutHandle_t localLayoutHandle)
Returns the number of connected components discovered while building the layout.
dwMapsLaneTreeNode * buffer
pointer to node buffer
dwMapsFeatureType
Feature types.
DW_API_PUBLIC dwStatus dwMapsLocalLayout_reset(dwMapsLocalLayoutHandle_t localLayoutHandle)
Clear out previously added road segments.
struct dwMapTrackerObject const * dwConstMapTrackerHandle_t
Globally unique identifier for road segments.
DW_API_PUBLIC dwStatus dwMapsLocalLayout_addRoadSegmentPointers(const dwMapsRoadSegment **segmentPointers, uint32_t count, dwMapsLocalLayoutHandle_t localLayoutHandle)
Add road segment pointers to the layout.
dwVector3f * buffer
pointer to point buffer
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.
Lane divider line defined by two points and the owner of a line.
dwGeoPoint dwMapsGeoPoint
Point defined by WGS84 coordinates.
uint32_t size
current number of valid nodes in the buffer
struct dwMapsLaneTreeObject * dwMapsLaneTreeHandle_t
Defines a 3x3 matrix of double floating point numbers.
Defines a 3x3 matrix of floating point numbers.
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' a...
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.
User provided buffer of dwMapsLaneDividers.
DW_API_PUBLIC dwStatus dwMaps_getLane(const dwMapsLane **lane, const dwMapsLaneId *id, dwConstMapHandle_t mapHandle)
Get a lane queried by a lane id.
dwTransformation3f segmentToRoot
dwMapsSerializationFormat
Serialization formats.
const dwMapsLane ** buffer
pointer to lane buffer
struct dwMapsLocalLayoutObject * dwMapsLocalLayoutHandle_t
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...
DW_API_PUBLIC dwStatus dwMapTracker_getCurrentCandidateLanes(dwMapsLaneBuffer *lanes, dwConstMapTrackerHandle_t mapTrackerHandle)
Get current lane candidates that have been used to find the current lane.
uint32_t size
current number of valid points in the buffer
Provides information about road segment pose relative to layout component root.
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.
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.
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.
uint32_t laneDividerCount
number of lane dividers in group
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLaneCount(uint32_t *laneCount, dwConstMapsLaneTreeHandle_t laneTree)
Get total number of lanes in the lane tree.
uint32_t pointCount
number of points defining the polyline
const dwMapsLane * lane
lane
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLanes(dwMapsLaneBuffer *laneBuffer, dwConstMapsLaneTreeHandle_t laneTree)
Get all lanes in lane tree.
dwMapsLaneDividerType
Lane divider type and filter values.
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.
struct dwContextObject * dwContextHandle_t
Context handle.
uint32_t childrenCount
size of children node array
dwMapsLaneType
Lane types.
const dwMapsLaneDivider * divider
owner of a line
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...
User provided buffer of dwMapsLaneTreeNode.
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.
DW_API_PUBLIC dwStatus dwMaps_computeBoundsSize(float32_t *width, float32_t *height, const dwMapsBounds *bounds)
Compute width and height of bounds in meters.
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...
struct dwMapObject const * dwConstMapHandle_t
uint32_t nextCount
number of segment connections at segment end
dwMapsLaneDividerLine * buffer
pointer to line buffer
dwMapsRoadMarkingType
Subtypes of DW_MAPS_FEATURE_ROAD_MARKING.
uint32_t maxSize
maximum number of booleans that can fit into the buffer
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.
Globally unique identifier for lane divider groups.
DW_API_PUBLIC dwStatus dwMaps_release(dwMapHandle_t mapHandle)
Release map handle.
DW_API_PUBLIC dwStatus dwMaps_getRoadSegmentPointers(dwMapsRoadSegmentPointerBuffer *roadSegmentPointers, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
Get pointers to road segments within bounds.
Identifier for general map elements.
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.
dwMapsLaneId laneId
id of the connected lane.
User provided buffer of dwMapsLane.
const dwMapsRoadSegment * segment
pointer to the connected road segment.
NVIDIA DriveWorks API: Core Exports
uint32_t size
current number of valid polylines in the buffer
struct dwMapsLocalLayoutObject const * dwConstMapsLocalLayoutHandle_t
uint32_t type
road segment type. this can be a bitwise combination of dwMapsRoadSegmentType.
Lane divider defined by a polyline, with type, material and color information.
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.
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 ...
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.
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...
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.
uint32_t size
current number of valid road segment pointers in the buffer
Lane split on a lane plan.
const dwMapsRoadSegment * componentRoot
uint32_t maxSize
maximum number of lines that fit into the buffer
uint32_t size
current number of valid lines in the buffer
A group of neighboring lanes and their traversability.
DW_API_PUBLIC dwStatus dwMaps_getLaneDividers(dwMapsLaneDividerBuffer *laneDividers, uint32_t typeFilter, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
Get lane dividers within bounds.
uint32_t maxSize
maximum number of polylines that fit into the buffer
uint32_t size
current number of valid lane dividers in the buffer
DW_API_PUBLIC dwStatus dwMaps_computeRotationFromGeoPoints(dwMatrix3d *localToENURotation33, const dwMapsGeoPoint *position, const dwMapsGeoPoint *headingPoint)
Compute orientation matrix from two WGS84 points.
Line defined by 2 points in user defined coordinates.
const dwMapsFeature * features
pointer to features of this segment
struct dwMapsLaneTreeObject const * dwConstMapsLaneTreeHandle_t
NVIDIA DriveWorks API: Location
Lane split on a lane plan.
dwMapsRoadSegmentId id
globally unique id of the road segment
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.
const dwMapsLane * laneBeforeSplit
lane that splits
DW_API_PUBLIC dwStatus dwMaps_getBounds(dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
Get bounds of map data currently in memory.
uint32_t dwMapsLaneTraversabilityMask
A mask composed of traversability information from enum dwMapsLaneTraversability. ...
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...
const dwMapsGeoPoint * points
pointer to polyline point array
dwMapsLaneDivider * buffer
pointer to lane divider buffer
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.
dwMapsLane * buffer
pointer to lane buffer
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 ro...
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.
dwMapsLaneTreeNode * children
children node array
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.
NVIDIA DriveWorks API: Core Status Methods
Road Segment represents an atomic element of the core layer of a Map.
User provided buffer of dwMapsRoadSegment pointers.
const dwMapsRoadSegmentConnection * previous
pointer to road segment connections at segment start
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.
User provided buffer of dwMapsLane pointers.
uint32_t maxSize
maximum number of road segment pointers that fit into the buffer
dwMapsDirection
Direction compared to geometry (polyline order).
dwMapsHDCompliance
Enum for road segment hd compliance.
const dwMapsLane * laneAfterMerge
lane into which the lanes merge
dwMapsLaneType type
lane type
dwMapsLaneTreeNode * parent
parent node