DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

Core Types

Detailed Description

Defines of POD types, timestamps, and trivial data types.

Note
SW Release Applicability: These APIs are available in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.

Data Structures

struct  dwBbox2Df
 Defines a AABB bounding box 2D. More...
 
struct  dwBbox3Df
 Defines a AABB bounding box 3D. More...
 
struct  dwConfidence1f
 Our strategy for uncertainty representation is to give classification confidence scalars for classifications and confidence intervals and covariance for coordinate estimates. More...
 
struct  dwConfidence2f
 
struct  dwConfidence3f
 
struct  dwLine3d
 Defines a double-precision line segment. More...
 
struct  dwLine3f
 Defines a single-precision line segment. More...
 
struct  dwMatrix2f
 Defines a 2x2 matrix of floating point numbers. More...
 
struct  dwMatrix34f
 Defines a 3x4 matrix of floating point numbers (column major). More...
 
struct  dwMatrix3d
 Defines a 3x3 matrix of double floating point numbers. More...
 
struct  dwMatrix3f
 Defines a 3x3 matrix of floating point numbers. More...
 
struct  dwMatrix4f
 Defines a 4x4 matrix of floating point numbers (column major). More...
 
struct  dwMatrix6f
 Defines a 6x6 matrix of floating point numbers (column major). More...
 
struct  dwOrientedBoundingBox3f
 Data structure representing an oriented bounding box in the local object coordinate frame The box is defined using the center 3D point, the XYZ half axis lengths and a rotation matrix. More...
 
struct  dwPolyline2d
 Defines a double-precision 2D polyline. More...
 
struct  dwPolyline2f
 Defines a single-precision 2D polyline. More...
 
struct  dwPolyline3d
 Defines a double-precision 3D polyline. More...
 
struct  dwPolyline3f
 Defines a single-precision 3D polyline. More...
 
struct  dwQuaterniond
 Defines a double-precision quaternion. More...
 
struct  dwQuaternionf
 Defines a single-precision quaternion. More...
 
struct  dwRect
 Defines a rectangle. More...
 
struct  dwRectf
 
struct  dwTransformation2f
 Specifies a 2D transformation as a 3 x 3 matrix in column-major order. More...
 
struct  dwTransformation3f
 Specifies a 3D rigid transformation. More...
 
struct  dwVector2d
 Defines a two-element double-precision floating-point vector. More...
 
struct  dwVector2f
 Defines a two-element single-precision floating-point vector. More...
 
struct  dwVector2i
 Defines a two-element integer vector. More...
 
struct  dwVector2ui
 Defines a two-element unsigned-integer vector. More...
 
struct  dwVector3d
 Defines a three-element double-precision floating point vector. More...
 
struct  dwVector3f
 Defines a three-element floating-point vector. More...
 
struct  dwVector3ui
 Defines a three-element unsigned-integer vector. More...
 
struct  dwVector4d
 Defines a four-element double-precision floating point vector. More...
 
struct  dwVector4f
 Defines a four-element single-precision floating point vector. More...
 

Macros

#define DW_NO_CALLBACK   NULL
 
#define DW_NULL_HANDLE   NULL
 

Typedefs

typedef char char8_t
 
typedef dwRect dwBox2D
 
typedef dwRectf dwBox2Df
 
typedef int64_t dwTime_t
 Specifies a timestamp unit, in microseconds. More...
 
typedef __half_raw float16_t
 
typedef float float32_t
 Specifies POD types. More...
 
typedef double float64_t
 

Enumerations

enum  dwBindSlot {
  DW_BIND_SLOT_INVALID = 0,
  DW_BIND_SLOT_1,
  DW_BIND_SLOT_2,
  DW_BIND_SLOT_3,
  DW_BIND_SLOT_4,
  DW_BIND_SLOT_5,
  DW_BIND_SLOT_6,
  DW_BIND_SLOT_7,
  DW_BIND_SLOT_8,
  DW_BIND_SLOT_9,
  DW_BIND_SLOT_10,
  DW_BIND_SLOT_11,
  DW_BIND_SLOT_12,
  DW_BIND_SLOT_13,
  DW_BIND_SLOT_14,
  DW_BIND_SLOT_15,
  DW_BIND_SLOT_16,
  DW_BIND_SLOT_MAX_COUNT
}
 The slot enum used when an application wants a dw module to bind some particular input data to an internal slot for future processing and unbinding Particularly the module expects an array of instances of such data structure hence maintaining an internal container for them. More...
 
enum  dwGPUDeviceType {
  DW_GPU_DEVICE_DISCRETE = 0,
  DW_GPU_DEVICE_INTEGRATED = 1
}
 GPU device type definitions. More...
 
enum  dwMemoryType {
  DW_MEMORY_TYPE_CUDA = 0,
  DW_MEMORY_TYPE_CPU = 1,
  DW_MEMORY_TYPE_PINNED = 2
}
 Memory type definitions. More...
 
enum  dwPrecision {
  DW_PRECISION_INT8 = 0,
  DW_PRECISION_FP16 = 1,
  DW_PRECISION_FP32 = 2,
  DW_PRECISION_MIXED = 3
}
 
enum  dwProcessorType {
  DW_PROCESSOR_TYPE_CPU = 0,
  DW_PROCESSOR_TYPE_GPU = 1,
  DW_PROCESSOR_TYPE_DLA_0 = 2,
  DW_PROCESSOR_TYPE_DLA_1 = 3,
  DW_PROCESSOR_TYPE_PVA_0 = 4,
  DW_PROCESSOR_TYPE_PVA_1 = 5,
  DW_PROCESSOR_TYPE_NVENC_0 = 6,
  DW_PROCESSOR_TYPE_NVENC_1 = 7
}
 Processor type definitions. More...
 
enum  dwProcessType {
  DW_PROCESS_TYPE_ASYNC = 0,
  DW_PROCESS_TYPE_SYNC = 1
}
 Process type definitions. More...
 
enum  dwSide {
  DW_SIDE_LEFT = 0,
  DW_SIDE_RIGHT = 1,
  DW_SIDE_CENTER = 2
}
 A generic side enum definition to improve consistency of objects with a 'side' concept Usage: define enum entity e.g. More...
 
enum  dwTrivialDataType {
  DW_TYPE_UNKNOWN = 0,
  DW_TYPE_BOOL = 1 << 1,
  DW_TYPE_INT8 = 1 << 2,
  DW_TYPE_INT16 = 1 << 3,
  DW_TYPE_INT32 = 1 << 4,
  DW_TYPE_INT64 = 1 << 5,
  DW_TYPE_UINT8 = 1 << 6,
  DW_TYPE_UINT16 = 1 << 7,
  DW_TYPE_UINT32 = 1 << 8,
  DW_TYPE_UINT64 = 1 << 9,
  DW_TYPE_FLOAT32 = 1 << 10,
  DW_TYPE_FLOAT64 = 1 << 11,
  DW_TYPE_FLOAT16 = 1 << 12
}
 Specifies a type indicator of the underlying trivial data type. More...
 

Functions

DW_API_PUBLIC uint8_t dwSizeOf (dwTrivialDataType type)
 

Variables

static const dwMatrix2f DW_IDENTITY_MATRIX2F
 Identity for dwMatrix2f. More...
 
static const dwMatrix3d DW_IDENTITY_MATRIX3D
 Identity for dwMatrix3d. More...
 
static const dwMatrix3f DW_IDENTITY_MATRIX3F
 Identity for dwMatrix3f. More...
 
static const dwMatrix4f DW_IDENTITY_MATRIX4F
 Identity for dwMatrix4f. More...
 
static const dwQuaterniond DW_IDENTITY_QUATERNIOND = {0., 0., 0., 1.}
 Identity for dwQuaterniond. More...
 
static const dwQuaternionf DW_IDENTITY_QUATERNIONF = {0.f, 0.f, 0.f, 1.f}
 Identity for dwQuaternionf. More...
 
static const dwTransformation2f DW_IDENTITY_TRANSFORMATION2F
 Identity for dwTransformation2f. More...
 
static const dwTransformation3f DW_IDENTITY_TRANSFORMATION3F
 Identity for dwTransformation3f. More...
 
static const dwRect DW_INVALID_RECT = {.x = 0, .y = 0, .width = -1, .height = -1}
 Invalid dwRect. More...
 
static const dwRectf DW_INVALID_RECTF = {.x = 0.0f, .y = 0.0f, .width = -1.0f, .height = -1.0f}
 Invalid dwRect. More...
 
static const dwTime_t DW_TIME_INVALID = INT64_MIN
 Special value indicating invalid time. More...
 
static const dwTime_t DW_TIMEOUT_INFINITE = 0x0123456789ABCDEF
 Special value of timestamp which means infinitely long duration. More...
 

Data Structure Documentation

◆ dwBbox2Df

struct dwBbox2Df
Data Fields
dwVector2f aa
dwVector2f bb

◆ dwBbox3Df

struct dwBbox3Df
Data Fields
dwVector3f aa
dwVector3f bb

◆ dwConfidence1f

struct dwConfidence1f
Data Fields
float32_t confidence Inlier ratio [0,1].
float32_t threshold Inlier threshold.
float32_t variance Variance of inliers.

◆ dwConfidence2f

struct dwConfidence2f
Data Fields
float32_t confidence Inlier ratio [0,1].
dwMatrix2f covariance 2x2 covariance matrix
float32_t threshold Inlier threshold.

◆ dwConfidence3f

struct dwConfidence3f
Data Fields
float32_t confidence Inlier ratio [0,1].
dwMatrix3f covariance 3x3 covariance matrix
float32_t threshold Inlier threshold.

◆ dwLine3d

struct dwLine3d
Data Fields
dwVector3d p[2] p[0] start, p[1] end

◆ dwLine3f

struct dwLine3f
Data Fields
dwVector3f p[2] p[0] start, p[1] end

◆ dwMatrix2f

struct dwMatrix2f
Data Fields
float32_t array[2 *2]

◆ dwMatrix34f

struct dwMatrix34f
Data Fields
float32_t array[3 *4]

◆ dwMatrix3d

struct dwMatrix3d
Data Fields
float64_t array[3 *3]

◆ dwMatrix3f

struct dwMatrix3f
Data Fields
float32_t array[3 *3]

◆ dwMatrix4f

struct dwMatrix4f
Data Fields
float32_t array[4 *4]

◆ dwMatrix6f

struct dwMatrix6f
Data Fields
float32_t array[6 *6]

◆ dwOrientedBoundingBox3f

struct dwOrientedBoundingBox3f
Data Fields
dwVector3f center Coordinate of the position of the center of the bounding box in the local frame.
dwVector3f halfAxisXYZ Half of the width, height and depth of the box in the local frame.
dwMatrix3f rotation Rotation matrix defining the orientation in the local frame.

◆ dwPolyline2d

struct dwPolyline2d
Data Fields
uint32_t pointCount number of points.
const dwVector2d * points pointer to the first element in the container.

◆ dwPolyline2f

struct dwPolyline2f
Data Fields
uint32_t pointCount number of points.
const dwVector2f * points pointer to the first element in the container.

◆ dwPolyline3d

struct dwPolyline3d
Data Fields
uint32_t pointCount number of points.
const dwVector3d * points pointer to the first element in the container.

◆ dwPolyline3f

struct dwPolyline3f
Data Fields
uint32_t pointCount number of points.
const dwVector3f * points pointer to the first element in the container.

◆ dwQuaterniond

struct dwQuaterniond
Data Fields
float64_t w
float64_t x
float64_t y
float64_t z

◆ dwQuaternionf

struct dwQuaternionf
Data Fields
float32_t w
float32_t x
float32_t y
float32_t z

◆ dwRect

struct dwRect
Data Fields
int32_t height Rectangle height.
int32_t width Rectangle width.
int32_t x x coordinate.
int32_t y y coordinate.

◆ dwRectf

struct dwRectf
Data Fields
float32_t height Rectangle height.
float32_t width Rectangle width.
float32_t x Specifies the x coordinate.
float32_t y Specifies the y coordinate.

◆ dwTransformation2f

struct dwTransformation2f
Data Fields
float32_t array[3 *3]

◆ dwTransformation3f

struct dwTransformation3f
Data Fields
float32_t array[4 *4]

◆ dwVector2d

struct dwVector2d
Data Fields
float64_t x
float64_t y

◆ dwVector2f

struct dwVector2f
Data Fields
float32_t x
float32_t y

◆ dwVector2i

struct dwVector2i
Data Fields
int32_t x
int32_t y

◆ dwVector2ui

struct dwVector2ui
Data Fields
uint32_t x
uint32_t y

◆ dwVector3d

struct dwVector3d
Data Fields
float64_t x
float64_t y
float64_t z

◆ dwVector3f

struct dwVector3f
Data Fields
float32_t x
float32_t y
float32_t z

◆ dwVector3ui

struct dwVector3ui
Data Fields
uint32_t x
uint32_t y
uint32_t z

◆ dwVector4d

struct dwVector4d
Data Fields
float64_t w
float64_t x
float64_t y
float64_t z

◆ dwVector4f

struct dwVector4f
Data Fields
float32_t w
float32_t x
float32_t y
float32_t z

Macro Definition Documentation

◆ DW_NO_CALLBACK

#define DW_NO_CALLBACK   NULL

Definition at line 97 of file Types.h.

◆ DW_NULL_HANDLE

#define DW_NULL_HANDLE   NULL

Definition at line 96 of file Types.h.

Typedef Documentation

◆ char8_t

typedef char char8_t

Definition at line 72 of file Types.h.

◆ dwBox2D

typedef dwRect dwBox2D

Definition at line 219 of file Types.h.

◆ dwBox2Df

typedef dwRectf dwBox2Df

Definition at line 220 of file Types.h.

◆ dwTime_t

typedef int64_t dwTime_t

Specifies a timestamp unit, in microseconds.

Definition at line 82 of file Types.h.

◆ float16_t

typedef __half_raw float16_t

Definition at line 77 of file Types.h.

◆ float32_t

typedef float float32_t

Specifies POD types.

Definition at line 70 of file Types.h.

◆ float64_t

typedef double float64_t

Definition at line 71 of file Types.h.

Enumeration Type Documentation

◆ dwBindSlot

enum dwBindSlot

The slot enum used when an application wants a dw module to bind some particular input data to an internal slot for future processing and unbinding Particularly the module expects an array of instances of such data structure hence maintaining an internal container for them.

For example, dwObjectArray instances inputting to dwObjectInPathAnalyzer module

Enumerator
DW_BIND_SLOT_INVALID 
DW_BIND_SLOT_1 
DW_BIND_SLOT_2 
DW_BIND_SLOT_3 
DW_BIND_SLOT_4 
DW_BIND_SLOT_5 
DW_BIND_SLOT_6 
DW_BIND_SLOT_7 
DW_BIND_SLOT_8 
DW_BIND_SLOT_9 
DW_BIND_SLOT_10 
DW_BIND_SLOT_11 
DW_BIND_SLOT_12 
DW_BIND_SLOT_13 
DW_BIND_SLOT_14 
DW_BIND_SLOT_15 
DW_BIND_SLOT_16 
DW_BIND_SLOT_MAX_COUNT 

Definition at line 537 of file Types.h.

◆ dwGPUDeviceType

GPU device type definitions.

Only applicable on Drive platforms. On x86 platforms, the GPU is considered to be of discrete type always.

Enumerator
DW_GPU_DEVICE_DISCRETE 
DW_GPU_DEVICE_INTEGRATED 

Definition at line 153 of file Types.h.

◆ dwMemoryType

Memory type definitions.

Enumerator
DW_MEMORY_TYPE_CUDA 

CUDA memory.

DW_MEMORY_TYPE_CPU 

pageable CPU memory

DW_MEMORY_TYPE_PINNED 

pinned memory

Definition at line 177 of file Types.h.

◆ dwPrecision

Enumerator
DW_PRECISION_INT8 

INT8 precision.

DW_PRECISION_FP16 

FP16 precision.

DW_PRECISION_FP32 

FP32 precision.

DW_PRECISION_MIXED 

Combination of multiple precisions.

Definition at line 140 of file Types.h.

◆ dwProcessorType

Processor type definitions.

Enumerator
DW_PROCESSOR_TYPE_CPU 
DW_PROCESSOR_TYPE_GPU 
DW_PROCESSOR_TYPE_DLA_0 
DW_PROCESSOR_TYPE_DLA_1 
DW_PROCESSOR_TYPE_PVA_0 
DW_PROCESSOR_TYPE_PVA_1 
DW_PROCESSOR_TYPE_NVENC_0 
DW_PROCESSOR_TYPE_NVENC_1 

Definition at line 159 of file Types.h.

◆ dwProcessType

Process type definitions.

Enumerator
DW_PROCESS_TYPE_ASYNC 
DW_PROCESS_TYPE_SYNC 

Definition at line 171 of file Types.h.

◆ dwSide

enum dwSide

A generic side enum definition to improve consistency of objects with a 'side' concept Usage: define enum entity e.g.

DW_MAPS_SIDE_RIGHT = DW_SIDE_RIGHT

Enumerator
DW_SIDE_LEFT 
DW_SIDE_RIGHT 
DW_SIDE_CENTER 

Definition at line 477 of file Types.h.

◆ dwTrivialDataType

Specifies a type indicator of the underlying trivial data type.

Enumerator
DW_TYPE_UNKNOWN 
DW_TYPE_BOOL 
DW_TYPE_INT8 
DW_TYPE_INT16 
DW_TYPE_INT32 
DW_TYPE_INT64 
DW_TYPE_UINT8 
DW_TYPE_UINT16 
DW_TYPE_UINT32 
DW_TYPE_UINT64 
DW_TYPE_FLOAT32 
DW_TYPE_FLOAT64 
DW_TYPE_FLOAT16 

Definition at line 103 of file Types.h.

Function Documentation

◆ dwSizeOf()

DW_API_PUBLIC uint8_t dwSizeOf ( dwTrivialDataType  type)

Variable Documentation

◆ DW_IDENTITY_MATRIX2F

const dwMatrix2f DW_IDENTITY_MATRIX2F
static
Initial value:
= {{1, 0,
0, 1}}

Identity for dwMatrix2f.

Definition at line 231 of file Types.h.

◆ DW_IDENTITY_MATRIX3D

const dwMatrix3d DW_IDENTITY_MATRIX3D
static
Initial value:
= {{1, 0, 0,
0, 1, 0,
0, 0, 1}}

Identity for dwMatrix3d.

Definition at line 256 of file Types.h.

◆ DW_IDENTITY_MATRIX3F

const dwMatrix3f DW_IDENTITY_MATRIX3F
static
Initial value:
= {{1, 0, 0,
0, 1, 0,
0, 0, 1}}

Identity for dwMatrix3f.

Definition at line 243 of file Types.h.

◆ DW_IDENTITY_MATRIX4F

const dwMatrix4f DW_IDENTITY_MATRIX4F
static
Initial value:
= {{1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1}}

Identity for dwMatrix4f.

Definition at line 277 of file Types.h.

◆ DW_IDENTITY_QUATERNIOND

const dwQuaterniond DW_IDENTITY_QUATERNIOND = {0., 0., 0., 1.}
static

Identity for dwQuaterniond.

Definition at line 439 of file Types.h.

◆ DW_IDENTITY_QUATERNIONF

const dwQuaternionf DW_IDENTITY_QUATERNIONF = {0.f, 0.f, 0.f, 1.f}
static

Identity for dwQuaternionf.

Definition at line 427 of file Types.h.

◆ DW_IDENTITY_TRANSFORMATION2F

const dwTransformation2f DW_IDENTITY_TRANSFORMATION2F
static
Initial value:
= {{1.f, 0.f, 0.f,
0.f, 1.f, 0.f,
0.f, 0.f, 1.f}}

Identity for dwTransformation2f.

Definition at line 452 of file Types.h.

◆ DW_IDENTITY_TRANSFORMATION3F

const dwTransformation3f DW_IDENTITY_TRANSFORMATION3F
static
Initial value:
= {{1.f, 0.f, 0.f, 0.f,
0.f, 1.f, 0.f, 0.f,
0.f, 0.f, 1.f, 0.f,
0.f, 0.f, 0.f, 1.f}}

Identity for dwTransformation3f.

Definition at line 468 of file Types.h.

◆ DW_INVALID_RECT

const dwRect DW_INVALID_RECT = {.x = 0, .y = 0, .width = -1, .height = -1}
static

Invalid dwRect.

Definition at line 202 of file Types.h.

◆ DW_INVALID_RECTF

const dwRectf DW_INVALID_RECTF = {.x = 0.0f, .y = 0.0f, .width = -1.0f, .height = -1.0f}
static

Invalid dwRect.

Definition at line 217 of file Types.h.

◆ DW_TIME_INVALID

const dwTime_t DW_TIME_INVALID = INT64_MIN
static

Special value indicating invalid time.

Definition at line 90 of file Types.h.

◆ DW_TIMEOUT_INFINITE

const dwTime_t DW_TIMEOUT_INFINITE = 0x0123456789ABCDEF
static

Special value of timestamp which means infinitely long duration.

Definition at line 86 of file Types.h.