DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

LaneGraph.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) 2017-2020 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_WORLD_LANEGRAPH_H_
32 #define DW_WORLD_LANEGRAPH_H_
33 
34 #include <dw/core/Types.h>
36 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
61 //#######################################################################################
62 // Data structs
63 //#######################################################################################
64 
66 #define DW_LANEGRAPH_MAX_PT_CNT_IN_POLYLINE 600U
67 
71 typedef struct dwLaneGraphPolyline
72 {
76  uint32_t pointCount;
78 
84 {
85  uint32_t startIndex;
86  uint32_t endIndex;
89 
90 #define DW_LANEGRAPH_LANE_DIVIDER_MAX_SEGMENTS 30u
91 
95 typedef struct dwLaneGraphLaneDivider
96 {
99  uint32_t segmentCount;
104 
108 typedef enum {
124 
129 typedef struct dwLaneGraphId
130 {
131  uint32_t trackId;
132  uint32_t leftId;
133  uint32_t rightId;
134 } dwLaneGraphId;
135 
136 #define DW_LANEGRAPH_ID_RANGE_PER_SOURCE 100
137 #define DW_LANEGRAPH_ID_INVALID UINT_MAX
141 
143 #define DW_LANEGRAPH_MAX_CONTENDER_LANES 6U
145 {
146  uint32_t contenderLaneIndices[DW_LANEGRAPH_MAX_CONTENDER_LANES];
149 
153 typedef struct dwLaneGraphLane
154 {
158  dwLaneGraphLaneDivider laneDividers[2];
159  bool isLaneDividerValid[2];
162 
166 typedef enum dwLaneGraphSource {
177 
179 #define DW_LANEGRAPH_MAX_LANE_CNT_IN_LANEGRAPH 11U
180 
184 typedef struct dwLaneGraph
185 {
187 
193  uint32_t laneCount;
194  bool hasLeftLane;
196  bool hasMidLane;
199 } dwLaneGraph;
200 
205 typedef struct dwLaneGraphList
206 {
208  uint32_t count;
209  uint32_t maxCount;
211 
215 typedef enum dwLaneHandlingMode {
223 
224 #ifdef __cplusplus
225 }
226 #endif
227 
230 #endif // DW_WORLD_LANEGRAPH_H_
uint32_t pointCount
number of points defining the polyline
Definition: LaneGraph.h:76
#define DW_LANEGRAPH_MAX_PT_CNT_IN_POLYLINE
Max num of dwVector3f points in a dwPolyline.
Definition: LaneGraph.h:66
dwVector3f points[DW_LANEGRAPH_MAX_PT_CNT_IN_POLYLINE]
point array
Definition: LaneGraph.h:73
dwLaneGraphLaneType side
left, center, right
Definition: LaneGraph.h:157
#define DW_LANEGRAPH_MAX_CONTENDER_LANES
Max num of dwLaneGraphLaneContentionProperty objects in a dwLaneGraphLane.
Definition: LaneGraph.h:143
uint32_t leftId
id of the left lane divider
Definition: LaneGraph.h:132
NVIDIA DriveWorks API: Core Types
uint32_t trackId
id of the dwLaneGraphLane object
Definition: LaneGraph.h:131
float float32_t
Specifies POD types.
Definition: Types.h:70
A lane graph list, which is contiguous memory.
Definition: LaneGraph.h:205
dwLaneGraphSource source
source of creation
Definition: LaneGraph.h:198
Defines a three-element floating-point vector.
Definition: Types.h:319
dwLaneGraphSource
Lane graph source enum.
Definition: LaneGraph.h:166
Rail (unsupported, reserved for future)
Definition: LaneGraph.h:170
dwLaneGraphLaneType
The type of a lane.
Definition: LaneGraph.h:108
The id of a lane, which consists of the id of the whole lane object and id&#39;s of individual left/right...
Definition: LaneGraph.h:129
dwTime_t timestamp
time stamp of the lanegraph object 1) HDMAPS : that of the camera localization pose 2) PILOTNET : tha...
Definition: LaneGraph.h:186
uint32_t endIndex
end index. (one past last)
Definition: LaneGraph.h:86
lane keeping state enum
Definition: LaneGraph.h:216
float32_t confidence[DW_LANEGRAPH_MAX_PT_CNT_IN_POLYLINE]
confidence for each point: 0 for no confidence, 1 for max confidence
Definition: LaneGraph.h:75
uint32_t laneCount
lane count
Definition: LaneGraph.h:193
bool hasRightLane
existence qualifier of the right adjacent lane
Definition: LaneGraph.h:195
#define DW_LANEGRAPH_LANE_DIVIDER_MAX_SEGMENTS
Definition: LaneGraph.h:90
dwLaneMarkType
Describes Lane marking attributes of the super landmark type DW_LANDMARK_TYPE_LANE_MARKINGS defined a...
Definition: LandmarkTypes.h:53
#define DW_LANEGRAPH_MAX_LANE_CNT_IN_LANEGRAPH
Max num of dwLaneGraphLane objects in a dwLaneGraph.
Definition: LaneGraph.h:179
bool hasContenderLane
existence qualifier of the contender lane
Definition: LaneGraph.h:197
bool hasLeftLane
existence qualifier of the left adjacent lane
Definition: LaneGraph.h:194
bool hasMidLane
existence qualifier of the ego lane
Definition: LaneGraph.h:196
dwLaneGraph * laneGraphs
memory location of the first element in the list
Definition: LaneGraph.h:207
LaneFusion (unsupported, reserved for future)
Definition: LaneGraph.h:173
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
dwLaneGraphLaneContentionProperty contentions
contentions properties
Definition: LaneGraph.h:160
dwLaneGraphPolyline geometry
divider geometry
Definition: LaneGraph.h:97
lane changing lateral maneuver state enum
Definition: LaneGraph.h:217
uint32_t rightId
id of the right lane divider
Definition: LaneGraph.h:133
dwLaneHandlingMode
LaneHandleState.
Definition: LaneGraph.h:215
dwLaneGraphId id
trackID for correspondence
Definition: LaneGraph.h:156
Lane graph defined by a container of dwLaneGraphLane objects and qualifier.
Definition: LaneGraph.h:184
lane split state enum
Definition: LaneGraph.h:218
lane handle abort state enum
Definition: LaneGraph.h:220
dwLaneMarkType type
lane divider type.
Definition: LaneGraph.h:87
lane handle speed adaptation state enum
Definition: LaneGraph.h:219
Lane divider defined by a polyline.
Definition: LaneGraph.h:95
Lane defined by the center polyline, relative side w.r.t.
Definition: LaneGraph.h:153
uint32_t contenderLaneIndexCount
number of contentions
Definition: LaneGraph.h:147
uint32_t count
size of the list
Definition: LaneGraph.h:208
List of 3-dimensional points.
Definition: LaneGraph.h:71
float32_t speedLimits[DW_LANEGRAPH_MAX_PT_CNT_IN_POLYLINE]
per point speed limit in meters per second. 0 if unknown.
Definition: LaneGraph.h:74
The dwLaneMarkType of a lane divider from startIndex to endIndex remains the same.
Definition: LaneGraph.h:83
uint32_t maxCount
capacity of the list
Definition: LaneGraph.h:209
uint32_t startIndex
start index.
Definition: LaneGraph.h:85
Vehicle traces (unsupported, reserved for future)
Definition: LaneGraph.h:172
dwLaneGraphPolyline geometry
lane center geometry
Definition: LaneGraph.h:155