DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

Lane.h File Reference

Detailed Description

NVIDIA DriveWorks API: World Model Lanes

Description: This file defines the lane-related data structure in the world model

Definition in file Lane.h.

Go to the source code of this file.

Data Structures

struct  dwLane
 The main data structure, holds or refers to the core information, such as the left or right inner edge of the lane, etc. More...
 
struct  dwLaneArray
 A lane container. More...
 
struct  dwLaneChange
 Describes lane change availability between two lane segments. More...
 
struct  dwLaneChangeArray
 A lane change container. More...
 
struct  dwLaneChunk
 The lane chunks hold a fixed number of vertices. More...
 
struct  dwLaneChunkArray
 A lane chunk container. More...
 
struct  dwLaneContinuation
 Forward/Next connecting lanes of a lane in the dwLaneArray A lane may continue to zero, single lane or multiple lanes (fork) More...
 
struct  dwLaneContinuationArray
 Specifies forward connecting lanes for all the lanes in the dwLaneArray. More...
 
struct  dwLaneRelation
 Describes the relationship between a pair of lane segments. More...
 
struct  dwLaneRelationArray
 A relation container. More...
 
struct  dwLaneSegment
 A segment of a dwLane object, by referenced by the id and point indices. More...
 
struct  dwLaneVertex
 Described a vertex in a dwLane object. More...
 
struct  dwPathSegment
 A path segment composed of continues dwLane objects, lanes are by referenced by the lane indices in the dwLaneArray. More...
 

Macros

#define DW_LANE_ANIMAL_BASE   (DW_LANE_IS_VRU + DW_LANE_IS_OTHER_ANIMATE)
 
#define DW_LANE_ARRAY_MAX_COUNT   200U
 
#define DW_LANE_BIKE_BASE   (DW_LANE_IS_BIKE + DW_LANE_VRU_BASE)
 
#define DW_LANE_CHANGE_ARRAY_MAX_COUNT   20U
 
#define DW_LANE_CHUNK_ARRAY_MAX_COUNT   2000
 
#define DW_LANE_CHUNK_INDICES_MAX_COUNT   500
 
#define DW_LANE_CHUNK_SIZE   (1u << DW_LANE_CHUNK_SIZE_TWO_LOG)
 
#define DW_LANE_CHUNK_SIZE_MASK   (DW_LANE_CHUNK_SIZE - 1)
 
#define DW_LANE_CHUNK_SIZE_TWO_LOG   3u
 Two-logarithm of the number of array entries in a lane chunk. 2->4, 3->8, 4->16. More...
 
#define DW_LANE_CONTINUATIONS_MAX_COUNT   16U
 
#define DW_LANE_EDGE_STYLE_IS_GROUP   1
 
#define DW_LANE_IS_BIKE   (1 << 19)
 Bit for bike lanes. More...
 
#define DW_LANE_IS_INFRA   (1 << 21)
 Bit for lanes for other infra (like trains) More...
 
#define DW_LANE_IS_OTHER_ANIMATE   (1 << 17)
 Bit for lanes animates that are not vehicles. More...
 
#define DW_LANE_IS_PEDESTRIAN   (1 << 20)
 Bit for pedestrian crossings. More...
 
#define DW_LANE_IS_SPECIAL   (1 << 22)
 Bit for lanes driven only with caution. More...
 
#define DW_LANE_IS_VEHICLE   (1 << 16)
 Top level lane state bits. More...
 
#define DW_LANE_IS_VRU   (1 << 18)
 Bit for lanes for vulnerable road users. More...
 
#define DW_LANE_PEDESTRIAN_BASE   (DW_LANE_IS_PEDESTRIAN + DW_LANE_VRU_BASE)
 
#define DW_LANE_PREVIOUS_ID_MAX_COUNT   10
 
#define DW_LANE_RELATION_ARRAY_MAX_COUNT   20
 
#define DW_LANE_SPECIAL_BASE   (DW_LANE_IS_VEHICLE + DW_LANE_IS_SPECIAL)
 
#define DW_LANE_TRAIN_BASE   (DW_LANE_IS_INFRA + DW_LANE_IS_OTHER_ANIMATE)
 
#define DW_LANE_VEHICLE_BASE   (DW_LANE_IS_VEHICLE)
 
#define DW_LANE_VRU_BASE   (DW_LANE_IS_VRU + DW_LANE_IS_OTHER_ANIMATE)
 
#define DW_PATH_SEGMENT_MAX_COUT   8U
 

Enumerations

enum  dwLaneClass {
  DW_LANE_INVALID = 0,
  DW_LANE_VEHICLE = 1 + DW_LANE_VEHICLE_BASE,
  DW_LANE_HOV = 2 + DW_LANE_VEHICLE_BASE,
  DW_LANE_CENTER_TURN = 3 + DW_LANE_SPECIAL_BASE,
  DW_LANE_SUICIDE = 4 + DW_LANE_SPECIAL_BASE,
  DW_LANE_BUS = 5 + DW_LANE_SPECIAL_BASE,
  DW_LANE_TAXI = 6 + DW_LANE_SPECIAL_BASE,
  DW_LANE_LOAD_UNLOAD = 7 + DW_LANE_SPECIAL_BASE,
  DW_LANE_REVERSIBLE = 8 + DW_LANE_SPECIAL_BASE,
  DW_LANE_SHOULDER = 9 + DW_LANE_SPECIAL_BASE,
  DW_LANE_DIVIDER_LANE = 10,
  DW_LANE_BIKE = 11 + DW_LANE_BIKE_BASE,
  DW_LANE_PEDESTRIAN = 12 + DW_LANE_PEDESTRIAN_BASE,
  DW_LANE_TRAIN = 13 + DW_LANE_TRAIN_BASE,
  DW_LANE_ANIMAL = 14 + DW_LANE_ANIMAL_BASE,
  DW_LANE_OTHER = 15
}
 Classification of lanes. More...
 
enum  dwLaneEdgeClass {
  DW_LANE_EDGE_CLASS_INVALID = 0,
  DW_LANE_EDGE_CLASS_MARKED_CROSSABLE = 1,
  DW_LANE_EDGE_CLASS_MARKED_DONT_CROSS = 2,
  DW_LANE_EDGE_CLASS_PHYSICAL = 3,
  DW_LANE_EDGE_CLASS_VIRTUAL = 4,
  DW_LANE_EDGE_CLASS_UNKNOWN = 5,
  DW_LANE_EDGE_CLASS_COUNT = 6
}
 Edge main classes. More...
 
enum  dwLaneEdgeColor {
  DW_LANE_EDGE_COLOR_INVALID = 0,
  DW_LANE_EDGE_COLOR_WHITE = 1,
  DW_LANE_EDGE_COLOR_YELLOW = 2,
  DW_LANE_EDGE_COLOR_BLUE = 3,
  DW_LANE_EDGE_COLOR_RED = 4,
  DW_LANE_EDGE_COLOR_GREEN = 5,
  DW_LANE_EDGE_COLOR_BLACK = 6,
  DW_LANE_EDGE_COLOR_ORANGE = 7,
  DW_LANE_EDGE_COLOR_MIXED = 8,
  DW_LANE_EDGE_COLOR_UNKNOWN = 9,
  DW_LANE_EDGE_COLOR_OTHER = 10
}
 Edge color, mutually exclusive. Describes the first encountered from inside lane. More...
 
enum  dwLaneEdgeStyle {
  DW_LANE_EDGE_STYLE_INVALID = 0,
  DW_LANE_EDGE_STYLE_SOLID_SINGLE = 1,
  DW_LANE_EDGE_STYLE_SOLID_GROUP = 2,
  DW_LANE_EDGE_STYLE_SHORT_DASHED_SINGLE = 3,
  DW_LANE_EDGE_STYLE_SHORT_DASHED_GROUP = 4,
  DW_LANE_EDGE_STYLE_LONG_DASHED_SINGLE = 5,
  DW_LANE_EDGE_STYLE_LONG_DASHED_GROUP = 6,
  DW_LANE_EDGE_STYLE_CIRCULAR_DOT_SINGLE = 7,
  DW_LANE_EDGE_STYLE_CIRCULAR_DOT_GROUP = 8,
  DW_LANE_EDGE_STYLE_SQUARE_DOT_SINGLE = 9,
  DW_LANE_EDGE_STYLE_SQUARE_DOT_GROUP = 10,
  DW_LANE_EDGE_STYLE_ZIGZAG_SINGLE = 11,
  DW_LANE_EDGE_STYLE_ZIGZAG_GROUP = 12,
  DW_LANE_EDGE_STYLE_RUMBLE_SINGLE = 13,
  DW_LANE_EDGE_STYLE_RUMBLE_GROUP = 14,
  DW_LANE_EDGE_STYLE_OTHER_MARKING_SINGLE = 15,
  DW_LANE_EDGE_STYLE_OTHER_MARKING_GROUP = 16,
  DW_LANE_EDGE_STYLE_AREA = 17,
  DW_LANE_EDGE_STYLE_ROAD_BOUNDARY = 20,
  DW_LANE_EDGE_STYLE_PHYSICAL_DIVIDER = 21,
  DW_LANE_EDGE_STYLE_TALL_CURB = 22,
  DW_LANE_EDGE_STYLE_DRIVABLE_CURB = 23,
  DW_LANE_EDGE_STYLE_WALKABLE_CURB = 24,
  DW_LANE_EDGE_STYLE_FENCE = 25,
  DW_LANE_EDGE_STYLE_BARRIER = 26,
  DW_LANE_EDGE_STYLE_WALL = 27,
  DW_LANE_EDGE_STYLE_OBSTACLE_BARS = 28,
  DW_LANE_EDGE_STYLE_OTHER_PHYSICAL = 29,
  DW_LANE_EDGE_STYLE_INTERSECTION = 30,
  DW_LANE_EDGE_STYLE_SPLIT_LEFT = 31,
  DW_LANE_EDGE_STYLE_SPLIT_RIGHT = 32,
  DW_LANE_EDGE_STYLE_MERGE_LEFT = 33,
  DW_LANE_EDGE_STYLE_MERGE_RIGHT = 34,
  DW_LANE_EDGE_STYLE_PARKING = 35,
  DW_LANE_EDGE_STYLE_OTHER_VIRTUAL = 36,
  DW_LANE_EDGE_STYLE_UNKNOWN = 40,
  DW_LANE_EDGE_STYLE_OTHER = 41
}
 Edge style, mutually exclusive. Describes the first encountered from inside lane. More...
 
enum  dwLaneEndType {
  DW_LANE_END_INVALID = 0,
  DW_LANE_END_DISAPPEARS = 1,
  DW_LANE_END_CHANGES = 2,
  DW_LANE_END_OCCLUSION = 3,
  DW_LANE_END_OUT_OF_SCOPE = 4,
  DW_LANE_END_UNKNOWN = 5
}
 The type of lane dwLane begins and end. More...
 
enum  dwLaneOccupancy {
  DW_LANE_OCCUPANCY_INVALID = 0,
  DW_LANE_OCCUPANCY_UNKNOWN = 1,
  DW_LANE_OCCUPANCY_UNOCCUPIED = 2,
  DW_LANE_OCCUPANCY_OCCUPIED = 3
}
 Lane occupancy, indicating if we know whether there is another actor in a certain portion of lane. More...
 
enum  dwLaneRelationType {
  DW_LANE_RELATION_NONE = 0,
  DW_LANE_RELATION_CONTINUE = 1,
  DW_LANE_RELATION_CROSSING = 2,
  DW_LANE_RELATION_MERGE = 3,
  DW_LANE_RELATION_FORK = 4,
  DW_LANE_RELATION_CORRESPONDENCE = 5
}
 Types of relationship between a pair of lane segments. More...
 
enum  dwLaneTurnsAllowed {
  DW_LANE_TURN_INVALID = 0,
  DW_LANE_TURN_LEFT = (1 << 1),
  DW_LANE_TURN_STRAIGHT = (1 << 2),
  DW_LANE_TURN_RIGHT = (1 << 3),
  DW_LANE_TURN_UTURN = (1 << 4),
  DW_LANE_TURN_DIAGONAL_LEFT = (1 << 5),
  DW_LANE_TURN_DIAGONAL_RIGHT = (1 << 6),
  DW_LANE_TURN_UNMARKED = (1 << 7),
  DW_LANE_TURN_UNKNOWN = (1 << 8)
}
 The turn restrictions on a dwLane. More...