DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

ImageLayer.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) 2019-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_MAPS_IMAGELAYER_H_
32 #define DW_MAPS_IMAGELAYER_H_
33 
34 #include <dw/maps/ContentLayers.h>
35 #include <dw/image/Image.h>
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 //#######################################################################################
42 // Image Layer
43 //#######################################################################################
44 
60 extern const char* const DW_MAPS_IMAGE_LAYER_ID_LIDAR_ELEVATION_MODEL;
61 extern const char* const DW_MAPS_IMAGE_LAYER_ID_LIDAR_GIRAFFE_PLANE_RAW;
62 extern const char* const DW_MAPS_IMAGE_LAYER_ID_LIDAR_GIRAFFE_PLANE;
63 extern const char* const DW_MAPS_IMAGE_LAYER_ID_RADAR_DETECTIONS_RAW;
64 extern const char* const DW_MAPS_IMAGE_LAYER_ID_RADAR_DETECTIONS_RCS;
65 extern const char* const DW_MAPS_IMAGE_LAYER_ID_RADAR_DETECTIONS;
66 
70 typedef struct dwMapsImageId
71 {
72  uint64_t low;
73  uint64_t high;
75 
79 typedef enum dwMapsImageType {
89 
97 typedef struct dwMapsImage
98 {
104 } dwMapsImage;
105 
110 {
112  size_t maxWidthPixels;
115 
127 
140  dwConstMapsContentLayerHandle_t imageLayerHandle);
141 
144 //#######################################################################################
145 // Image Layer View
146 //#######################################################################################
147 
174 dwStatus dwMapsImageLayerView_getImageCount(uint32_t* imageCount,
175  dwConstMapsImageLayerViewHandle_t imageLayerViewHandle);
176 
180 typedef struct dwMapsImageBuffer
181 {
183  size_t maxSize;
184  size_t size;
186 
214  dwMapsGeoPoint localOrigin,
215  const dwMatrix3d* localToENURotation,
216  dwConstMapsImageLayerViewHandle_t imageLayerViewHandle);
217 
220 //#######################################################################################
221 // Maps Image Storage
222 //#######################################################################################
223 
240 typedef struct dwMapsImageStorageObject* dwMapsImageStorageHandle_t;
241 typedef struct dwMapsImageStorageObject const* dwConstMapsImageStorageHandle_t;
242 
257 dwStatus dwMapsImageStorage_initialize(dwMapsImageStorageHandle_t* imageStorageHandle,
258  dwMapProviderHandle_t providerHandle,
260  dwContextHandle_t contextHandle);
261 
272 dwStatus dwMapsImageStorage_release(dwMapsImageStorageHandle_t imageStorageHandle);
273 
288  const dwMapsRoadSegmentId* roadSegmentId,
289  dwMapsImageStorageHandle_t imageStorageHandle);
290 
303  dwMapsImageStorageHandle_t imageStorageHandle);
304 
317  dwMapsImageStorageHandle_t imageStorageHandle);
318 
321 #ifdef __cplusplus
322 }
323 #endif
324 
329 #endif // DW_MAPS_IMAGELAYER_H_
const char *const DW_MAPS_IMAGE_LAYER_ID_RADAR_DETECTIONS_RCS
DW_API_PUBLIC dwStatus dwMapsImageLayerView_getImageCount(uint32_t *imageCount, dwConstMapsImageLayerViewHandle_t imageLayerViewHandle)
Get number of available images in the layer view.
struct dwMapsImageLayerViewObject const * dwConstMapsImageLayerViewHandle_t
float float32_t
Specifies POD types.
Definition: Types.h:70
const char *const DW_MAPS_IMAGE_LAYER_ID_LIDAR_GROUND_REFLECTANCE
System-defined image layer identifiers.
struct dwMapsContentLayerObject const * dwConstMapsContentLayerHandle_t
Forward declaration of content layer handle.
Definition: MapProvider.h:160
size_t maxHeightPixels
Maximum height of any image in the layer.
Definition: ImageLayer.h:113
Caller-provided buffer for images.
Definition: ImageLayer.h:180
const char *const DW_MAPS_IMAGE_LAYER_ID_LIDAR_GIRAFFE_PLANE
DW_API_PUBLIC dwStatus dwMapsImageLayer_checkType(dwConstMapsContentLayerHandle_t contentLayerHandle)
Checks if a content layer is an image layer.
dwImageCPU * image
Image data and properties.
Definition: ImageLayer.h:100
Single channel LiDAR ground reflectance image (float32_t)
Definition: ImageLayer.h:81
DW_API_PUBLIC dwStatus dwMapsImageStorage_release(dwMapsImageStorageHandle_t imageStorageHandle)
Releases maps image storage handle.
NVIDIA DriveWorks API: Image Conversion and Streaming Functionality
float32_t meterPerPx
Metric resolution (used to scale image)
Definition: ImageLayer.h:102
dwMapsImageType mapsImageType
Type of images contained by the layer.
Definition: ImageLayer.h:111
uint64_t low
Lower 64 bits.
Definition: ImageLayer.h:72
size_t maxWidthPixels
Maximum width of any image in the layer.
Definition: ImageLayer.h:112
dwMapsImageId id
Unique (per layer) ID for the image.
Definition: ImageLayer.h:99
Unique identifier for an element of an image layer.
Definition: ImageLayer.h:70
Specifies a 3D rigid transformation.
Definition: Types.h:462
dwStatus
Status definition.
Definition: Status.h:178
Location point defined by WGS84 coordinates.
Definition: Types.h:575
struct dwMapsImageStorageObject const * dwConstMapsImageStorageHandle_t
Definition: ImageLayer.h:241
DW_API_PUBLIC dwStatus dwMapsImageStorage_initialize(dwMapsImageStorageHandle_t *imageStorageHandle, dwMapProviderHandle_t providerHandle, dwConstMapsContentLayerHandle_t imageLayer, dwContextHandle_t contextHandle)
Creates a maps image storage, which efficiently loads and serves image representations of map segment...
DW_API_PUBLIC dwStatus dwMapsImageStorage_returnMapsImage(dwMapsImage *image, dwMapsImageStorageHandle_t imageStorageHandle)
Releases maps image so that memory can be reused.
struct dwMapsImageStorageObject * dwMapsImageStorageHandle_t
Definition: ImageLayer.h:240
dwMapsImageType
Types of images which may be available in the map.
Definition: ImageLayer.h:79
Globally unique identifier for road segments.
Definition: Maps.h:344
dwTransformation3f toLocal
Transform from scaled image space to local metric frame.
Definition: ImageLayer.h:103
Single channel raw RaDAR detections ground projection image (uint8_t)
Definition: ImageLayer.h:85
Single channel RaDAR detections image (uint8_t)
Definition: ImageLayer.h:86
Defines a 3x3 matrix of double floating point numbers.
Definition: Types.h:250
dwMapsImageType mapsImageType
Type of image represented.
Definition: ImageLayer.h:101
struct dwMapProviderObject * dwMapProviderHandle_t
Definition: MapProvider.h:77
Single channel LiDAR height slice image (uint8_t)
Definition: ImageLayer.h:87
DW_API_PUBLIC dwStatus dwMapsImageStorage_getMapsImage(dwMapsImage *image, const dwMapsRoadSegmentId *roadSegmentId, dwMapsImageStorageHandle_t imageStorageHandle)
Gets maps image from maps image storage for a specific road segment ID.
const char *const DW_MAPS_IMAGE_LAYER_ID_RADAR_DETECTIONS
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:80
Single channel LiDAR digital elevation model image (float32_t)
Definition: ImageLayer.h:82
dwMapsImage * buffer
pointer to images array
Definition: ImageLayer.h:182
Single channel RaDAR RCS ground projection image (float32_t)
Definition: ImageLayer.h:84
const char *const DW_MAPS_IMAGE_LAYER_ID_RADAR_DETECTIONS_RAW
const char *const DW_MAPS_IMAGE_LAYER_ID_LIDAR_ELEVATION_MODEL
size_t size
current number of images in the buffer
Definition: ImageLayer.h:184
Defaults to unknown type.
Definition: ImageLayer.h:80
Single channel raw LiDAR height slice image (uint8_t)
Definition: ImageLayer.h:83
DW_API_PUBLIC dwStatus dwMapsImageLayerView_getLocalImages(dwMapsImageBuffer *localImageBuffer, dwMapsGeoPoint localOrigin, const dwMatrix3d *localToENURotation, dwConstMapsImageLayerViewHandle_t imageLayerViewHandle)
Get images transformed into a caller-defined local coordinate system.
Properties of an image layer.
Definition: ImageLayer.h:109
Structure to store images for maps Image coordinate system by convention:
Definition: ImageLayer.h:97
uint64_t high
Upper 64 bits.
Definition: ImageLayer.h:73
DW_API_PUBLIC dwStatus dwMapsImageStorage_getProperties(dwImageProperties *imageProperties, dwMapsImageStorageHandle_t imageStorageHandle)
Retrieves image properties of the maps image associated with the image storage.
size_t maxSize
maximum number of images that fit into the buffer
Definition: ImageLayer.h:183
DW_API_PUBLIC dwStatus dwMapsImageLayer_getProperties(dwMapsImageLayerProperties *properties, dwConstMapsContentLayerHandle_t imageLayerHandle)
Get properties of an image layer.
#define DW_API_PUBLIC
Definition: Exports.h:56
Defines the properties of the image.
Definition: Image.h:236
const char *const DW_MAPS_IMAGE_LAYER_ID_LIDAR_GIRAFFE_PLANE_RAW
Defines a CPU-based image.
Definition: Image.h:253