DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

ContentLayers.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 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_CONTENTLAYERS_H_
32 #define DW_MAPS_CONTENTLAYERS_H_
33 
34 #include <dw/maps/MapProvider.h>
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 //#######################################################################################
41 // Content Layer
42 //#######################################################################################
43 
67 #define DW_MAPS_CONTENT_LAYER_ID_MAX_LENGTH 256
68 
74 
87 dwStatus dwMapsContentLayer_getId(dwMapsContentLayerId* id,
88  dwConstMapsContentLayerHandle_t contentLayerHandle);
89 
93 typedef enum dwMapsContentLayerType {
99 
112  dwConstMapsContentLayerHandle_t contentLayerHandle);
113 
116 //#######################################################################################
117 // Content Slice
118 //#######################################################################################
119 
160 typedef struct dwMapsContentSliceObject* dwMapsContentSliceHandle_t;
161 typedef struct dwMapsContentSliceObject const* dwConstMapsContentSliceHandle_t;
162 
178 dwStatus dwMapsContentSlice_initialize(dwMapsContentSliceHandle_t* contentSliceHandle,
179  const dwMapsContentLayerBuffer* layers,
180  size_t maxSegmentsPerLayout,
181  dwMapProviderHandle_t providerHandle);
182 
186 typedef uint64_t dwMapsContentUpdateToken;
187 
188 typedef struct dwMapsImageLayerViewObject const* dwConstMapsImageLayerViewHandle_t;
189 typedef struct dwMapsPointCloudLayerViewObject const* dwConstMapsPointCloudLayerViewHandle_t;
190 typedef struct dwMapsJunctionLayerViewObject* dwMapsJunctionLayerViewHandle_t;
191 
204 dwStatus dwMapsContentSlice_initializeImageLayerView(dwConstMapsImageLayerViewHandle_t* imageLayerViewHandle,
205  dwConstMapsContentLayerHandle_t imageLayerHandle,
206  dwMapsContentSliceHandle_t contentSliceHandle);
207 
220 dwStatus dwMapsContentSlice_initializePointCloudLayerView(dwConstMapsPointCloudLayerViewHandle_t* pointCloudLayerViewHandle,
221  dwConstMapsContentLayerHandle_t pointCloudLayer,
222  dwMapsContentSliceHandle_t contentSliceHandle);
223 
241 dwStatus dwMapsContentSlice_initializeJunctionLayerView(dwMapsJunctionLayerViewHandle_t* junctionLayerViewHandle,
242  size_t junctionViewBytes,
243  dwConstMapsContentLayerHandle_t junctionLayerHandle,
244  dwMapsContentSliceHandle_t contentSliceHandle);
245 
264 dwStatus dwMapsContentSlice_updateAsync(dwMapsContentUpdateToken* updateToken,
265  dwConstMapsLocalLayoutHandle_t localLayoutHandle,
266  uint32_t componentId,
267  dwMapsContentSliceHandle_t contentSliceHandle);
268 
280 dwStatus dwMapsContentSlice_tryCompleteUpdate(dwMapsContentUpdateToken updateToken,
281  dwMapsContentSliceHandle_t contentSliceHandle);
282 
293 dwStatus dwMapsContentSlice_release(dwMapsContentSliceHandle_t contentSliceHandle);
294 
297 #ifdef __cplusplus
298 }
299 #endif
300 
301 #endif // DW_MAPS_CONTENTLAYERS_H_
DW_API_PUBLIC dwStatus dwMapsContentLayer_getType(dwMapsContentLayerType *contentLayerType, dwConstMapsContentLayerHandle_t contentLayerHandle)
Get the type of the content layer.
Defined by layers/ImageLayer.h.
Definition: ContentLayers.h:95
DW_API_PUBLIC dwStatus dwMapsContentSlice_initializePointCloudLayerView(dwConstMapsPointCloudLayerViewHandle_t *pointCloudLayerViewHandle, dwConstMapsContentLayerHandle_t pointCloudLayer, dwMapsContentSliceHandle_t contentSliceHandle)
Get local view of a point cloud layer in the content slice.
struct dwMapsImageLayerViewObject const * dwConstMapsImageLayerViewHandle_t
DW_API_PUBLIC dwStatus dwMapsContentLayer_getId(dwMapsContentLayerId *id, dwConstMapsContentLayerHandle_t contentLayerHandle)
Get the human-readable identifier for the layer.
struct dwMapsContentLayerObject const * dwConstMapsContentLayerHandle_t
Forward declaration of content layer handle.
Definition: MapProvider.h:160
DW_API_PUBLIC dwStatus dwMapsContentSlice_updateAsync(dwMapsContentUpdateToken *updateToken, dwConstMapsLocalLayoutHandle_t localLayoutHandle, uint32_t componentId, dwMapsContentSliceHandle_t contentSliceHandle)
Updates sliced content layers with the specified local layout and component ID.
DW_API_PUBLIC dwStatus dwMapsContentSlice_initializeImageLayerView(dwConstMapsImageLayerViewHandle_t *imageLayerViewHandle, dwConstMapsContentLayerHandle_t imageLayerHandle, dwMapsContentSliceHandle_t contentSliceHandle)
Get local view of an image layer in the content slice.
struct dwMapsContentSliceObject * dwMapsContentSliceHandle_t
DW_API_PUBLIC dwStatus dwMapsContentSlice_release(dwMapsContentSliceHandle_t contentSliceHandle)
Release content slice handle.
Defined by layers/PointCloudLayer.h.
Definition: ContentLayers.h:96
char dwMapsContentLayerId[DW_MAPS_CONTENT_LAYER_ID_MAX_LENGTH]
Human-readable identifier for a content layer.
Definition: ContentLayers.h:73
uint64_t dwMapsContentUpdateToken
Token for completion of a content slice update.
dwStatus
Status definition.
Definition: Status.h:166
struct dwMapsJunctionLayerViewObject * dwMapsJunctionLayerViewHandle_t
dwMapsContentLayerType
Types of content layers which may be available in a map.
Definition: ContentLayers.h:93
DW_API_PUBLIC dwStatus dwMapsContentSlice_tryCompleteUpdate(dwMapsContentUpdateToken updateToken, dwMapsContentSliceHandle_t contentSliceHandle)
Attempts to complete an asynchronous sliced content update with the provided token.
Defined by layers/JunctionLayer.h.
Definition: ContentLayers.h:97
#define DW_MAPS_CONTENT_LAYER_ID_MAX_LENGTH
Maximum length of a content layer name including NULL terminator.
Definition: ContentLayers.h:67
struct dwMapProviderObject * dwMapProviderHandle_t
Definition: MapProvider.h:77
struct dwMapsContentSliceObject const * dwConstMapsContentSliceHandle_t
Caller-provided buffer for content layers.
Definition: MapProvider.h:181
struct dwMapsLocalLayoutObject const * dwConstMapsLocalLayoutHandle_t
Definition: Maps.h:73
struct dwMapsPointCloudLayerViewObject const * dwConstMapsPointCloudLayerViewHandle_t
DW_API_PUBLIC dwStatus dwMapsContentSlice_initializeJunctionLayerView(dwMapsJunctionLayerViewHandle_t *junctionLayerViewHandle, size_t junctionViewBytes, dwConstMapsContentLayerHandle_t junctionLayerHandle, dwMapsContentSliceHandle_t contentSliceHandle)
Create a local view of a junction layer in the content slice.
#define DW_API_PUBLIC
Definition: Exports.h:56
Content layer has unknown type.
Definition: ContentLayers.h:94
DW_API_PUBLIC dwStatus dwMapsContentSlice_initialize(dwMapsContentSliceHandle_t *contentSliceHandle, const dwMapsContentLayerBuffer *layers, size_t maxSegmentsPerLayout, dwMapProviderHandle_t providerHandle)
Creates a new content slice, which efficiently loads and serves layered content transformed into a ca...