DriveWorks SDK Reference

| 0.6.67 Release

Maps.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2016 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
31 #ifndef DW_MAPS_MAPS_H__
32 #define DW_MAPS_MAPS_H__
33 
52 #include <dw/core/Config.h>
53 #include <dw/core/Exports.h>
54 #include <dw/core/Status.h>
55 #include <dw/core/Types.h>
56 #include <dw/core/Context.h>
57 
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
62 
63 //#######################################################################################
64 // Handles
65 //#######################################################################################
66 typedef struct dwMapObject *dwMapHandle_t;
67 typedef struct dwMapObject const *dwConstMapHandle_t;
68 
69 
70 //#######################################################################################
71 // Forward declarations
72 //#######################################################################################
75 typedef struct dwMapsLane dwMapsLane;
77 
78 
88 //#######################################################################################
89 // Enums
90 //#######################################################################################
94 typedef enum dwMapsMaterial
95 {
106 
107 
111 typedef enum dwMapsColor
112 {
125 } dwMapsColor;
126 
127 
132 {
157 
160 
161 
165 typedef enum dwMapsLaneType
166 {
188 
189 
193 typedef enum dwMapsDirection
194 {
200 
201 
206 {
208 
218 
219 
223 typedef enum dwMapsFeatureType
224 {
230 
231 
236 {
240 
241 
245 typedef enum dwMapsSide
246 {
250 } dwMapsSide;
251 
252 
256 typedef enum dwMapsLaneGeometry
257 {
262 
263 
264 //#######################################################################################
265 // Global ID structs
266 //#######################################################################################
271 {
272  uint64_t id[4];
274 
275 
279 typedef struct dwMapsLaneId
280 {
281  uint64_t id[4];
282 } dwMapsLaneId;
283 
284 
288 typedef struct dwMapsRoadSegmentId
289 {
290  uint64_t id[3];
292 
293 
294 //#######################################################################################
295 // Connection structs
296 //#######################################################################################
297 
298 #define DW_MAPS_MAX_LANE_CONNECTIONS 100
299 
303 typedef struct dwMapsLaneConnection
304 {
306  const dwMapsLane *lane;
307  dwBool sameDirection;
312 
313 
318 {
321  dwBool sameDirection;
326 
327 
328 //#######################################################################################
329 // Data structs
330 //#######################################################################################
331 
335 typedef struct dwMapsGeoPoint
336 {
341 
342 
346 typedef struct dwMapsLine
347 {
348  dwVector3f p[2];
349 } dwMapsLine;
350 
354 typedef struct dwMapsGeoPolyline
355 {
357  uint32_t pointCount;
359 
360 
365 {
369 
371 
373 };
374 
375 
379 typedef struct dwMapsLaneDividerLine
380 {
381  dwVector3f p[2];
384 
389 {
391 
393  uint32_t laneDividerCount;
394 
396 };
397 
398 
403 {
405 
408  uint32_t speedLimit;
410 
412 
413  const dwMapsLaneDividerGroup *laneDividerGroups[2];
414 
416  uint32_t nextCount;
417 
419  uint32_t previousCount;
420 
422 };
423 
424 
428 typedef struct dwMapsFeature
429 {
430  uint64_t id;
431  uint32_t type;
433 
435 } dwMapsFeature;
436 
442 {
444 
445  uint32_t type;
446 
447  const dwMapsLane *lanes;
448  uint32_t laneCount;
449 
452 
454  uint32_t featureCount;
455 
457  uint32_t nextCount;
458 
460  uint32_t previousCount;
461 };
462 
465 //#######################################################################################
466 // User buffer structs
467 //#######################################################################################
468 
482 typedef struct dwMapsGeoPointBuffer
483 {
485  uint32_t maxSize;
486  uint32_t size;
488 
492 typedef struct dwMapsPointBuffer
493 {
495  uint32_t maxSize;
496  uint32_t size;
498 
503 {
505  uint32_t maxSize;
506  uint32_t size;
508 
512 typedef struct dwMapsLaneBuffer
513 {
515  uint32_t maxSize;
516  uint32_t size;
518 
523 {
525  uint32_t maxSize;
526  uint32_t size;
528 
533 {
535  uint32_t maxSize;
536  uint32_t size;
538 
539 
543 typedef struct dwMapsFeatureBuffer
544 {
546  uint32_t maxSize;
547  uint32_t size;
549 
550 
555 {
557  uint32_t maxSize;
558  uint32_t size;
560 
563 //#######################################################################################
564 // Function parameter structs
565 //#######################################################################################
566 
580  const char *baseURL;
582  const char *appId;
584  const char *appCode;
586  const char *staticMapCatalog;
588  const char *liveRoadsCatalog;
590 
591 
595 typedef struct dwMapsBounds {
600 } dwMapsBounds;
601 
602 
606 typedef struct dwMapsLocalBounds {
614 
617 //#######################################################################################
618 // Initialization functions
619 //#######################################################################################
620 
645 dwStatus dwMaps_initialize(dwMapHandle_t *mapHandle,
646  const char *filename,
647  dwContextHandle_t contextHandle);
648 
649 
667 dwStatus dwMaps_initializeHERE(dwMapHandle_t *mapHandle,
668  const dwMapsHEREConnectionParameters *params,
669  const char *HEREMapCacheFile,
670  float32_t splinePointSpacing,
671  uint32_t maxRoadSegmentCount,
672  dwContextHandle_t contextHandle);
673 
674 
692 dwStatus dwMaps_initializeTomTom(dwMapHandle_t *mapHandle,
693  const char *file,
694  uint32_t maxRoadSegmentCount,
695  dwContextHandle_t contextHandle);
696 
697 
709 dwStatus dwMaps_release(dwMapHandle_t *mapHandle);
710 
711 
728 dwStatus dwMaps_update(dwBool *updated,
729  const dwMapsBounds *bounds,
730  dwBool download,
731  dwMapHandle_t mapHandle);
732 
735 //#######################################################################################
736 // Serialization functions
737 //#######################################################################################
738 
759 dwStatus dwMaps_serialize(const char *filename, dwMapsSerializationFormat format,
760  dwConstMapHandle_t mapHandle);
761 
762 
778 dwStatus dwMaps_deserialize(const char *filename, dwMapHandle_t mapHandle);
779 
782 //#######################################################################################
783 // Utility functions
784 //#######################################################################################
785 
810  const dwMapsGeoPoint *p,
811  float32_t radiusMeter);
812 
813 
828  const dwMapsGeoPoint *position, const dwMapsGeoPoint *headingPoint);
829 
830 
847 dwStatus dwMaps_computeLocalToENU(dwMatrix3d *localToENURotation33,
848  float32_t bearingRadian);
849 
850 
874  const dwMapsGeoPolyline *polylines,
875  uint32_t polylineCount,
876  const dwMapsGeoPoint *localOrigin,
877  const float64_t *localToENURotation33);
878 
879 
900 dwStatus dwMaps_transformPoint(dwVector3f *transformedPoint,
901  const dwMapsGeoPoint *point,
902  const dwMapsGeoPoint *localOrigin,
903  const float64_t *localToENURotation33);
904 
905 
942 dwStatus dwMaps_interpolatePolylines(uint32_t *srcStartIndex,
943  uint32_t *targetEndIndex,
944  dwMapsGeoPointBuffer *interpolatedPoints,
945  const dwMapsGeoPoint *srcPoints,
946  uint32_t srcPointCount,
947  const dwMapsGeoPoint *targetPoints,
948  uint32_t targetPointCount,
949  float32_t start,
950  float32_t end,
951  float32_t stepSize,
952  float32_t (*interpolationFn)(float32_t, void*),
953  void *interpolationFnContext);
954 
955 
975 dwStatus dwMaps_getNeighborLaneCount(uint32_t *laneCount,
976  uint32_t *laneCountAccessible,
977  const dwMapsLane *lane, dwMapsSide side,
978  dwBool sideRelativeToDrivingDirection);
979 
980 
981 
1001 dwStatus dwMaps_getNeighborLane(const dwMapsLane **otherLane,
1002  const dwMapsLane *currentLane,
1003  dwMapsSide side, uint32_t offset,
1004  dwBool sideRelativeToDrivingDirection);
1005 
1042  const dwMapsLaneDividerBuffer *laneDividers,
1043  const dwMapsGeoPoint *localOrigin,
1044  const float64_t *localToENURotation33,
1045  const dwMapsLocalBounds *bounds,
1046  const dwVector3f *directionFilterVector,
1047  float32_t directionFilterAngleRadian,
1048  dwBool ignoreLaneDirection);
1049 
1050 
1080  dwMapsPointBuffer *pointBuffer,
1081  const dwMapsFeatureBuffer *features,
1082  const dwMapsGeoPoint *localOrigin,
1083  const float64_t *localToENURotation33,
1084  const dwMapsLocalBounds *localBounds);
1085 
1101  const dwMapsLane *lanes, uint32_t laneCount,
1102  dwMapsLaneGeometry geometrySelection);
1103 
1104 
1105 
1118  const dwMapsGeoPoint *points, uint32_t pointCount);
1119 
1120 
1121 
1133 dwStatus dwMaps_computeDistance(float32_t *distance, const dwMapsGeoPoint *p1, const dwMapsGeoPoint *p2);
1134 
1135 
1138 //#######################################################################################
1139 // Query functions
1140 //#######################################################################################
1141 
1171  uint32_t typeFilter,
1172  const dwMapsBounds *bounds,
1173  dwConstMapHandle_t mapHandle);
1174 
1196  uint32_t typeFilter,
1197  const dwMapsBounds *bounds,
1198  dwConstMapHandle_t mapHandle);
1199 
1219  const dwMapsBounds *bounds,
1220  dwConstMapHandle_t mapHandle);
1221 
1222 
1240 dwStatus dwMaps_getClosestLane(const dwMapsLane **closestLane,
1241  dwMapsGeoPoint *closestPoint,
1242  const dwMapsGeoPoint *p,
1243  dwBool onlyDrivable,
1244  dwBool ignoreHeight,
1245  dwConstMapHandle_t mapHandle);
1246 
1249 //#######################################################################################
1250 // Map Tracker
1251 //#######################################################################################
1252 
1267 typedef struct dwMapTrackerObject *dwMapTrackerHandle_t;
1268 typedef struct dwMapTrackerObject const *dwConstMapTrackerHandle_t;
1269 
1270 
1282 dwStatus dwMapTracker_initialize(dwMapTrackerHandle_t *mapTrackerHandle, dwConstMapHandle_t map);
1283 
1293 dwStatus dwMapTracker_release(dwMapTrackerHandle_t *mapTrackerHandle);
1294 
1295 
1296 
1333  const float64_t *localToENURotation33,
1334  dwTime_t timestamp,
1335  dwBool ignoreHeight,
1336  dwBool reset,
1337  dwMapTrackerHandle_t mapTrackerHandle);
1338 
1339 
1351 dwStatus dwMapTracker_getCurrentLane(const dwMapsLane **currentLane,
1352  dwConstMapTrackerHandle_t mapTrackerHandle);
1353 
1354 
1367  dwConstMapTrackerHandle_t mapTrackerHandle);
1368 
1371 //#######################################################################################
1372 // Lane Tree
1373 //#######################################################################################
1374 
1386 typedef struct dwMapsLaneTreeObject *dwMapsLaneTreeHandle_t;
1387 typedef struct dwMapsLaneTreeObject const *dwConstMapsLaneTreeHandle_t;
1388 
1389 
1395 {
1399 
1400 
1406 typedef struct dwMapsLaneTreeNode dwMapsLaneTreeNode;
1408  const dwMapsLane *lane;
1409 
1412  uint32_t childrenCount;
1413 };
1414 
1415 
1420 {
1422  uint32_t maxSize;
1423  uint32_t size;
1425 
1426 
1427 
1428 
1440 dwStatus dwMapsLaneTree_initialize(dwMapsLaneTreeHandle_t *laneTreeHandle,
1441  uint32_t maxLaneCount,
1442  dwConstMapHandle_t map);
1443 
1453 dwStatus dwMapsLaneTree_release(dwMapsLaneTreeHandle_t *laneTreeHandle);
1454 
1455 
1478  float32_t limit, dwMapsLaneTreeLimit limitType,
1479  dwBool doLaneChanges, dwMapsLaneTreeHandle_t laneTree);
1480 
1481 
1499  dwConstMapsLaneTreeHandle_t laneTree);
1500 
1512 dwStatus dwMapsLaneTree_getLeafCount(uint32_t *leafCount, dwConstMapsLaneTreeHandle_t laneTree);
1513 
1529 dwStatus dwMapsLaneTree_getLaneListToLeaf(dwMapsLaneBuffer *laneBuffer, uint32_t leafIndex,
1530  dwConstMapsLaneTreeHandle_t laneTree);
1531 
1543 dwStatus dwMapsLaneTree_getLaneCount(uint32_t *laneCount, dwConstMapsLaneTreeHandle_t laneTree);
1544 
1545 
1560 dwStatus dwMapsLaneTree_getLanes(dwMapsLaneBuffer *laneBuffer, dwConstMapsLaneTreeHandle_t laneTree);
1561 
1562 
1563 #ifdef __cplusplus
1564 }
1565 #endif
1566 
1571 #endif // DW_MAPS_MAPS_H__
dwMapsRoadSegmentId segmentId
id of the connected road segment.
Definition: Maps.h:319
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.
Road feature defined by a polyline, with attributes.
Definition: Maps.h:428
DW_API_PUBLIC dwStatus dwMaps_computeDistance(float32_t *distance, const dwMapsGeoPoint *p1, const dwMapsGeoPoint *p2)
Compute Euclidean distance bewteen two points.
dwMapsGeoPolyline geometry
polyline defining the geometry of the lane divider
Definition: Maps.h:370
uint32_t maxSize
maximum number of lane dividers that fit into the buffer
Definition: Maps.h:535
DW_API_PUBLIC dwStatus dwMaps_computeLocalToENU(dwMatrix3d *localToENURotation33, float32_t bearingRadian)
Create a rotation matrix that transfroms from a local coordinate system with x-axis pointing towards ...
struct dwMapTrackerObject * dwMapTrackerHandle_t
Definition: Maps.h:1267
const dwMapsLaneDividerGroup * laneDividerGroups
pointer to lane divider group array of this segment
Definition: Maps.h:450
DW_API_PUBLIC dwStatus dwMaps_getRoadSegments(dwMapsRoadSegmentBuffer *roadSegments, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
Get road segments within bounds.
User provided buffer of dwPolyline3f.
Definition: Maps.h:502
NVIDIA DriveWorks API: Core Types
DW_API_PUBLIC dwStatus dwMapsLaneTree_release(dwMapsLaneTreeHandle_t *laneTreeHandle)
Release lane tree handle.
uint32_t previousCount
number of segment connections at segment start
Definition: Maps.h:460
float float32_t
Specifies POD types.
Definition: Types.h:77
const dwMapsRoadSegment * roadSegment
parent road segment
Definition: Maps.h:395
Defines a polyline.
Definition: Types.h:259
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.
Definition: Maps.h:354
DW_API_PUBLIC dwStatus dwMaps_transformRoadFeaturesToLocalSpace(dwMapsPolyline3fBuffer *localPolylines, dwMapsPointBuffer *pointBuffer, const dwMapsFeatureBuffer *features, const dwMapsGeoPoint *localOrigin, const float64_t *localToENURotation33, const dwMapsLocalBounds *localBounds)
Get geometry from the list of specified road features, transformed into a local cartesian coordinate ...
Lane defined by a polyline, with lane attributes.
Definition: Maps.h:402
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
Definition: Maps.h:451
const char * appCode
appCode for access authorization
Definition: Maps.h:584
uint32_t size
current number of valid road segments in the buffer
Definition: Maps.h:558
Group of lane dividers, representing one boundary of a lane.
Definition: Maps.h:388
dwMapsGeoPoint * buffer
pointer to point buffer
Definition: Maps.h:484
uint32_t nextCount
number of lane connections at lane end
Definition: Maps.h:416
float32_t minY
Definition: Maps.h:608
dwMapsFeature * buffer
pointer to feature buffer
Definition: Maps.h:545
uint32_t laneCount
number of lanes in this segment
Definition: Maps.h:448
DW_API_PUBLIC dwStatus dwMaps_deserialize(const char *filename, dwMapHandle_t mapHandle)
Loads map data from file into the map.
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLeafCount(uint32_t *leafCount, dwConstMapsLaneTreeHandle_t laneTree)
dwMapsLaneTree_getLeafCount
Defines a three-element floating-point vector.
Definition: Types.h:225
DW_API_PUBLIC dwStatus dwMaps_transformLaneDividersToLocalLines(dwMapsLaneDividerLineBuffer *lineSegments, const dwMapsLaneDividerBuffer *laneDividers, const dwMapsGeoPoint *localOrigin, const float64_t *localToENURotation33, const dwMapsLocalBounds *bounds, const dwVector3f *directionFilterVector, float32_t directionFilterAngleRadian, dwBool ignoreLaneDirection)
Get line segments from the list of specified dividers, transformed into a local cartesian coordinate ...
const dwMapsLane * lanes
pointer to lane array of this segment
Definition: Maps.h:447
float64_t minLat
Definition: Maps.h:597
uint32_t maxSize
maximum number of nodes that fit into the buffer
Definition: Maps.h:1422
const dwMapsRoadSegmentConnection * next
pointer to road segment connections at segment end
Definition: Maps.h:456
const char * liveRoadsCatalog
live roads catalog name
Definition: Maps.h:588
User provided buffer of dwMapsLines.
Definition: Maps.h:522
uint32_t maxSize
maximum number of lanes that fit into the buffer
Definition: Maps.h:515
Lane Tree Node.
Definition: Maps.h:1407
uint32_t size
current number of valid features in the buffer
Definition: Maps.h:547
dwMapsLaneType type
lane type
Definition: Maps.h:406
dwMapsColor color
lane divider color
Definition: Maps.h:368
dwMapsLaneTreeLimit
Enum to select the lane tree limit type.
Definition: Maps.h:1394
dwMapsLaneDividerGroupId id
global id of the group
Definition: Maps.h:390
dwMapsDirection drivingDirection
driving direction compared to geometry polyline order
Definition: Maps.h:407
Global identifier for lanes.
Definition: Maps.h:279
uint64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:89
DW_API_PUBLIC dwStatus dwMaps_getNeighborLaneCount(uint32_t *laneCount, uint32_t *laneCountAccessible, const dwMapsLane *lane, dwMapsSide side, dwBool sideRelativeToDrivingDirection)
Get the number of lanes on the current road segment next to a given lane.
uint32_t type
type of a feature
Definition: Maps.h:431
User provided buffer of dwVector3f.
Definition: Maps.h:492
Road segment connection.
Definition: Maps.h:317
NVIDIA DriveWorks API: Core Methods
struct dwMapObject * dwMapHandle_t
Definition: Maps.h:66
User provided buffer of dwMapsGeoPoint.
Definition: Maps.h:482
const dwMapsLaneConnection * previous
pointer to lane connections at lane start
Definition: Maps.h:418
DW_API_PUBLIC dwStatus dwMaps_getFeatures(dwMapsFeatureBuffer *features, uint32_t typeFilter, const dwMapsBounds *bounds, dwConstMapHandle_t mapHandle)
Get features within bounds.
uint32_t featureCount
number of features in this segment
Definition: Maps.h:454
dwMapsMaterial material
lane divider material
Definition: Maps.h:367
uint32_t maxSize
maximum number of points that fit into the buffer
Definition: Maps.h:495
const dwMapsLaneDivider * laneDividers
pointer to lane divider array
Definition: Maps.h:392
float64_t height
height above WGS84 earth spheroid
Definition: Maps.h:339
NVIDIA DriveWorks API: Core Exports
double float64_t
Definition: Types.h:78
dwMapsRoadSegmentType
Road segment types.
Definition: Maps.h:205
Lane connection.
Definition: Maps.h:303
uint32_t size
current number of valid points in the buffer
Definition: Maps.h:496
const char * appId
appId for access authorization
Definition: Maps.h:582
dwMapsLaneId id
global id of the lane
Definition: Maps.h:404
uint64_t id
unique id of a feature
Definition: Maps.h:430
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 points that fit into the buffer
Definition: Maps.h:485
uint32_t size
current number of valid lanes in the buffer
Definition: Maps.h:516
uint32_t maxSize
maximum number of features that fit into the buffer
Definition: Maps.h:546
dwStatus
Status definition.
Definition: Status.h:167
User provided buffer of dwMapsRoadSegments.
Definition: Maps.h:554
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
Definition: Maps.h:366
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
Definition: Maps.h:557
DW_API_PUBLIC dwStatus dwMapTracker_release(dwMapTrackerHandle_t *mapTrackerHandle)
Release map tracker handle.
const dwMapsRoadSegment * roadSegment
parent road segment
Definition: Maps.h:421
DW_API_PUBLIC dwStatus dwMaps_transformPolylines(dwMapsPointBuffer *transformedPoints, const dwMapsGeoPolyline *polylines, uint32_t polylineCount, const dwMapsGeoPoint *localOrigin, const float64_t *localToENURotation33)
Transform polylines into points in a local coordinate system defined by position &#39;localOrigin&#39; and ro...
dwMapsSide
Enum for sides.
Definition: Maps.h:245
dwMapsRoadSegment * buffer
pointer to road segment buffer
Definition: Maps.h:556
dwPolyline3f * buffer
pointer to polyline buffer
Definition: Maps.h:504
DW_API_PUBLIC dwStatus dwMaps_getClosestLane(const dwMapsLane **closestLane, dwMapsGeoPoint *closestPoint, const dwMapsGeoPoint *p, dwBool onlyDrivable, dwBool ignoreHeight, dwConstMapHandle_t mapHandle)
Get closest lane in the map.
dwMapsMaterial
Material type values.
Definition: Maps.h:94
dwMapsSerializationFormat
Serialization formats.
Definition: Maps.h:235
const dwMapsLane * lane
pointer to the connected lane.
Definition: Maps.h:306
dwMapsLaneGeometry
Enum for selection of lane geometry.
Definition: Maps.h:256
User provided buffer of dwMapsFeatures.
Definition: Maps.h:543
const char * baseURL
URL of HERE database.
Definition: Maps.h:580
float32_t minX
Definition: Maps.h:607
dwMapsLaneTreeNode * buffer
pointer to node buffer
Definition: Maps.h:1421
const dwMapsRoadSegment * roadSegment
parent road segment
Definition: Maps.h:434
dwMapsFeatureType
Feature types.
Definition: Maps.h:223
float64_t maxLat
Definition: Maps.h:599
struct dwMapTrackerObject const * dwConstMapTrackerHandle_t
Definition: Maps.h:1268
const char * staticMapCatalog
static map catalog name
Definition: Maps.h:586
Global identifier for road segments.
Definition: Maps.h:288
dwVector3f * buffer
pointer to point buffer
Definition: Maps.h:494
Lane divider line defined by two points and the owner of a line.
Definition: Maps.h:379
uint32_t size
current number of valid nodes in the buffer
Definition: Maps.h:1423
struct dwMapsLaneTreeObject * dwMapsLaneTreeHandle_t
Definition: Maps.h:1386
Defines a 3x3 matrix of double floating point numbers.
Definition: Types.h:187
DW_API_PUBLIC dwStatus dwMaps_getNeighborLane(const dwMapsLane **otherLane, const dwMapsLane *currentLane, dwMapsSide side, uint32_t offset, dwBool sideRelativeToDrivingDirection)
Get a neighbor lane on a given side.
const dwMapsLaneConnection * next
pointer to lane connections at lane end
Definition: Maps.h:415
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.
Definition: Maps.h:532
DW_API_PUBLIC dwStatus dwMapTracker_updateCurrentPose(const dwMapsGeoPoint *position, const float64_t *localToENURotation33, dwTime_t timestamp, dwBool ignoreHeight, dwBool reset, dwMapTrackerHandle_t mapTrackerHandle)
Update the tracker with the current pose.
DW_API_PUBLIC dwStatus dwMapTracker_getCurrentCandidateLanes(dwMapsLaneBuffer *lanes, dwConstMapTrackerHandle_t mapTrackerHandle)
Get current lane candidates that have been used to find the current lane.
float32_t maxX
Definition: Maps.h:610
uint32_t size
current number of valid points in the buffer
Definition: Maps.h:486
const dwMapsLaneDividerGroup * group
parent lane divider group
Definition: Maps.h:372
uint32_t laneDividerCount
number of lane dividers in group
Definition: Maps.h:393
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
Definition: Maps.h:357
const dwMapsLane * lane
lane
Definition: Maps.h:1408
DW_API_PUBLIC dwStatus dwMaps_release(dwMapHandle_t *mapHandle)
Release map handle.
DW_API_PUBLIC dwStatus dwMapsLaneTree_getLanes(dwMapsLaneBuffer *laneBuffer, dwConstMapsLaneTreeHandle_t laneTree)
Get all lanes in lane tree.
dwMapsLaneDividerType
Lane divider type and filter values.
Definition: Maps.h:131
uint8_t dwBool
Definition: Types.h:79
float32_t maxZ
Definition: Maps.h:612
float64_t lon
longitude
Definition: Maps.h:337
float64_t maxLon
Definition: Maps.h:598
uint32_t previousCount
number of lane connections at lane start
Definition: Maps.h:419
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:78
uint32_t childrenCount
size of children node array
Definition: Maps.h:1412
dwMapsGeoPolyline geometry
set of points representing a feature
Definition: Maps.h:432
dwMapsLaneType
Lane types.
Definition: Maps.h:165
Point defined by WGS84 coordinates.
Definition: Maps.h:335
const dwMapsLaneDivider * divider
owner of a line
Definition: Maps.h:382
User provided buffer of dwMapsLaneTreeNode.
Definition: Maps.h:1419
DW_API_PUBLIC dwStatus dwMaps_update(dwBool *updated, const dwMapsBounds *bounds, dwBool download, dwMapHandle_t mapHandle)
Updates map cache with map data within given bounds.
struct dwMapObject const * dwConstMapHandle_t
Definition: Maps.h:67
uint32_t nextCount
number of segment connections at segment end
Definition: Maps.h:457
dwMapsLaneDividerLine * buffer
pointer to line buffer
Definition: Maps.h:524
DW_API_PUBLIC dwStatus dwMaps_initializeTomTom(dwMapHandle_t *mapHandle, const char *file, uint32_t maxRoadSegmentCount, dwContextHandle_t contextHandle)
Creates a map handle for TomTom maps data.
Global identifier for lane divider groups.
Definition: Maps.h:270
dwMapsLaneId laneId
id of the connected lane.
Definition: Maps.h:305
User provided buffer of dwMapsLane.
Definition: Maps.h:512
const dwMapsRoadSegment * segment
pointer to the connected road segment.
Definition: Maps.h:320
float32_t maxY
Definition: Maps.h:611
Local coordinate bounds.
Definition: Maps.h:606
uint32_t size
current number of valid polylines in the buffer
Definition: Maps.h:506
float64_t lat
latitude
Definition: Maps.h:338
uint32_t type
road segment type
Definition: Maps.h:445
Lane divider defined by a polyline, with type, material and color information.
Definition: Maps.h:364
DW_API_PUBLIC dwStatus dwMaps_transformPoint(dwVector3f *transformedPoint, const dwMapsGeoPoint *point, const dwMapsGeoPoint *localOrigin, const float64_t *localToENURotation33)
Transform a WGS84 point into a point in a local coordinate system defined by position &#39;localOrigin&#39; a...
dwMapsGeoPolyline geometry
polyline for lane centerline
Definition: Maps.h:411
DW_API_PUBLIC dwStatus dwMaps_initializeHERE(dwMapHandle_t *mapHandle, const dwMapsHEREConnectionParameters *params, const char *HEREMapCacheFile, float32_t splinePointSpacing, uint32_t maxRoadSegmentCount, dwContextHandle_t contextHandle)
Creates a map handle for HERE maps data.
uint32_t maxSize
maximum number of lines that fit into the buffer
Definition: Maps.h:525
uint32_t size
current number of valid lines in the buffer
Definition: Maps.h:526
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
Definition: Maps.h:505
uint32_t size
current number of valid lane dividers in the buffer
Definition: Maps.h:536
Connection parameters to HERE database.
Definition: Maps.h:578
Line defined by 2 points in user defined coordinates.
Definition: Maps.h:346
const dwMapsFeature * features
pointer to features of this segment
Definition: Maps.h:453
struct dwMapsLaneTreeObject const * dwConstMapsLaneTreeHandle_t
Definition: Maps.h:1387
dwMapsRoadSegmentId id
global id of the road segment
Definition: Maps.h:443
float32_t minZ
Definition: Maps.h:609
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.
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
Definition: Maps.h:356
#define DW_API_PUBLIC
Definition: Exports.h:76
dwMapsColor
Colors.
Definition: Maps.h:111
DW_API_PUBLIC dwStatus dwMapsLaneTree_create(const dwMapsLane *lane, float32_t limit, dwMapsLaneTreeLimit limitType, dwBool doLaneChanges, dwMapsLaneTreeHandle_t laneTree)
Create a lane tree starting at a given lane.
dwMapsLaneDivider * buffer
pointer to lane divider buffer
Definition: Maps.h:534
dwMapsLane * buffer
pointer to lane buffer
Definition: Maps.h:514
dwMapsLaneTreeNode * children
children node array
Definition: Maps.h:1411
NVIDIA DriveWorks API: Core Status Methods
Road segment representing a piece of the road.
Definition: Maps.h:441
DW_API_PUBLIC dwStatus dwMaps_stitchLaneGeometry(dwMapsGeoPointBuffer *polyline, const dwMapsLane *lanes, uint32_t laneCount, dwMapsLaneGeometry geometrySelection)
Stitches the poylines of a list of lanes into a single polyline.
const dwMapsRoadSegmentConnection * previous
pointer to road segment connections at segment start
Definition: Maps.h:459
float64_t minLon
Definition: Maps.h:596
dwMapsDirection
Direction compared to geometry (polyline order)
Definition: Maps.h:193
DW_API_PUBLIC dwStatus dwMaps_computeBearing(float64_t *bearingRadian, const dwMapsGeoPoint *position, const dwMapsGeoPoint *headingPoint)
Compute bearing in radian from two points.
Map coordinate bounds.
Definition: Maps.h:595
dwMapsLaneTreeNode * parent
parent node
Definition: Maps.h:1410