DriveWorks SDK Reference
3.5.78 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 {
125 
130 typedef struct dwLaneGraphId
131 {
132  uint32_t trackId;
133  uint32_t leftId;
134  uint32_t rightId;
135 } dwLaneGraphId;
136 
137 #define DW_LANEGRAPH_ID_RANGE_PER_SOURCE 100
138 #define DW_LANEGRAPH_ID_INVALID UINT_MAX
142 
144 #define DW_LANEGRAPH_MAX_CONTENDER_LANES 10U
146 {
147  uint32_t contenderLaneIndices[DW_LANEGRAPH_MAX_CONTENDER_LANES];
150 
154 typedef struct dwLaneGraphLane
155 {
159  dwLaneGraphLaneDivider laneDividers[2];
160  bool isLaneDividerValid[2];
163 
167 typedef enum dwLaneGraphSource {
178 
180 #define DW_LANEGRAPH_MAX_LANE_CNT_IN_LANEGRAPH 15U
181 
185 typedef struct dwLaneGraph
186 {
188 
194  uint32_t laneCount;
195  bool hasLeftLane;
197  bool hasMidLane;
200 } dwLaneGraph;
201 
206 typedef struct dwLaneGraphList
207 {
209  uint32_t count;
210  uint32_t maxCount;
212 
216 typedef enum dwLaneHandlingMode {
224 
225 #ifdef __cplusplus
226 }
227 #endif
228 
231 #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:158
#define DW_LANEGRAPH_MAX_CONTENDER_LANES
Max num of dwLaneGraphLaneContentionProperty objects in a dwLaneGraphLane.
Definition: LaneGraph.h:144
uint32_t leftId
id of the left lane divider
Definition: LaneGraph.h:133
NVIDIA DriveWorks API: Core Types
uint32_t trackId
id of the dwLaneGraphLane object
Definition: LaneGraph.h:132
float float32_t
Specifies POD types.
Definition: Types.h:70
A lane graph list, which is contiguous memory.
Definition: LaneGraph.h:206
dwLaneGraphSource source
source of creation
Definition: LaneGraph.h:199
Defines a three-element floating-point vector.
Definition: Types.h:319
dwLaneGraphSource
Lane graph source enum.
Definition: LaneGraph.h:167
Rail (unsupported, reserved for future)
Definition: LaneGraph.h:171
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:130
dwTime_t timestamp
time stamp of the lanegraph object 1) HDMAPS : that of the camera localization pose 2) PILOTNET : tha...
Definition: LaneGraph.h:187
uint32_t endIndex
end index. (one past last)
Definition: LaneGraph.h:86
lane keeping state enum
Definition: LaneGraph.h:217
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:194
bool hasRightLane
existence qualifier of the right adjacent lane
Definition: LaneGraph.h:196
#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:61
#define DW_LANEGRAPH_MAX_LANE_CNT_IN_LANEGRAPH
Max num of dwLaneGraphLane objects in a dwLaneGraph.
Definition: LaneGraph.h:180
bool hasContenderLane
existence qualifier of the contender lane
Definition: LaneGraph.h:198
bool hasLeftLane
existence qualifier of the left adjacent lane
Definition: LaneGraph.h:195
bool hasMidLane
existence qualifier of the ego lane
Definition: LaneGraph.h:197
dwLaneGraph * laneGraphs
memory location of the first element in the list
Definition: LaneGraph.h:208
LaneFusion (unsupported, reserved for future)
Definition: LaneGraph.h:174
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
dwLaneGraphLaneContentionProperty contentions
contentions properties
Definition: LaneGraph.h:161
dwLaneGraphPolyline geometry
divider geometry
Definition: LaneGraph.h:97
lane changing lateral maneuver state enum
Definition: LaneGraph.h:218
uint32_t rightId
id of the right lane divider
Definition: LaneGraph.h:134
dwLaneHandlingMode
LaneHandleState.
Definition: LaneGraph.h:216
dwLaneGraphId id
trackID for correspondence
Definition: LaneGraph.h:157
Lane graph defined by a container of dwLaneGraphLane objects and qualifier.
Definition: LaneGraph.h:185
lane split state enum
Definition: LaneGraph.h:219
lane handle abort state enum
Definition: LaneGraph.h:221
dwLaneMarkType type
lane divider type.
Definition: LaneGraph.h:87
lane handle speed adaptation state enum
Definition: LaneGraph.h:220
Lane divider defined by a polyline.
Definition: LaneGraph.h:95
Lane defined by the center polyline, relative side w.r.t.
Definition: LaneGraph.h:154
uint32_t contenderLaneIndexCount
number of contentions
Definition: LaneGraph.h:148
uint32_t count
size of the list
Definition: LaneGraph.h:209
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:210
uint32_t startIndex
start index.
Definition: LaneGraph.h:85
Vehicle traces (unsupported, reserved for future)
Definition: LaneGraph.h:173
dwLaneGraphPolyline geometry
lane center geometry
Definition: LaneGraph.h:156