DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

MapsRenderer.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) 2016-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 
49 #ifndef DWVISUALIZATION_MAPSRENDERER_H_
50 #define DWVISUALIZATION_MAPSRENDERER_H_
51 
52 #include <dw/maps/Maps.h>
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
61 typedef struct dwMapsRendererObject* dwMapsRendererHandle_t;
63 typedef const struct dwMapsRendererObject* dwConstMapsRendererHandle_t;
64 
85 dwStatus dwMapsRenderer_initialize(dwMapsRendererHandle_t* mapsRenderer,
86  uint32_t maxRenderBufferLineCount,
87  uint32_t maxRenderBufferPointCount,
88  bool showMapLineDirections,
89  dwRenderEngineHandle_t renderEngine,
90  dwConstMapHandle_t map);
91 
102 dwStatus dwMapsRenderer_release(dwMapsRendererHandle_t mapsRenderer);
103 
119  dwConstMapsRendererHandle_t mapsRenderer);
120 
135  dwConstMapsRendererHandle_t mapsRenderer);
136 
155 dwStatus dwMapsRenderer_getWGS84Coord(dwMapsGeoPoint* p, uint32_t screenCoordX, uint32_t screenCoordY,
156  uint32_t tileId,
157  dwRenderEngineHandle_t renderEngine,
158  dwConstMapsRendererHandle_t mapsRenderer);
159 
179  float32_t x,
180  float32_t y,
181  dwConstRenderEngineHandle_t renderEngine,
182  dwConstMapsRendererHandle_t mapsRenderer);
183 
206  uint32_t screenCoordX, uint32_t screenCoordY,
207  const dwMapsGeoPoint* boxCenter,
208  float32_t bearingRadian,
209  float32_t lengthMeters, float32_t widthMeters,
210  uint32_t tileId,
211  dwRenderEngineHandle_t renderEngine,
212  dwConstMapsRendererHandle_t mapsRenderer);
213 
234  uint32_t screenCoordX, uint32_t screenCoordY,
235  const dwMapsGeoPoint* boxCenter,
236  float32_t sizeMeters,
237  uint32_t tileId,
238  dwRenderEngineHandle_t renderEngine,
239  dwConstMapsRendererHandle_t mapsRenderer);
240 
255  dwRenderEngineHandle_t renderEngine,
256  dwMapsRendererHandle_t mapsRenderer);
257 
270  dwRenderEngineHandle_t renderEngine,
271  dwMapsRendererHandle_t mapsRenderer);
272 
286  dwRenderEngineHandle_t renderEngine,
287  dwMapsRendererHandle_t mapsRenderer);
288 
302  const dwMapsGeoPoint* lookAtPoint,
303  dwRenderEngineHandle_t renderEngine,
304  dwMapsRendererHandle_t mapsRenderer);
305 
325  bool showLineDirections,
326  dwRenderEngineHandle_t renderEngine,
327  dwMapsRendererHandle_t mapsRenderer);
328 
352  uint32_t polylineCount,
353  const dwRenderEngineColorRGBA* colors,
354  uint32_t colorCount,
355  bool showLineDirection,
356  dwRenderEngineHandle_t renderEngine,
357  dwMapsRendererHandle_t mapsRenderer);
358 
386  uint32_t polylineCount,
387  const dwMapsGeoPoint* origins,
388  uint32_t originsCount,
389  const dwVector4f* colors,
390  uint32_t colorCount,
391  bool showLineDirection,
392  dwRenderEngineHandle_t renderEngine,
393  dwMapsRendererHandle_t mapsRenderer);
394 
420  uint32_t polylineCount,
421  const dwVector4f* colors,
422  uint32_t colorCount,
423  const dwMapsRoadSegmentId* roadSegmentIds,
424  uint32_t segmentIdCount,
425  bool showLineDirection,
426  dwRenderEngineHandle_t renderEngine,
427  dwMapsRendererHandle_t mapsRenderer,
428  dwConstMapsLocalLayoutHandle_t localLayout);
429 
447  uint32_t geoPointCount,
448  const dwVector4f* color,
449  dwRenderEngineHandle_t renderEngine,
450  dwMapsRendererHandle_t mapsRenderer);
451 
473  uint32_t pointsCount,
474  const dwMapsGeoPoint* origins,
475  uint32_t originsCount,
476  const dwVector4f* color,
477  dwRenderEngineHandle_t renderEngine,
478  dwMapsRendererHandle_t mapsRenderer);
479 
501  uint32_t pointsCount,
502  const dwMapsRoadSegmentId* roadSegmentIds,
503  uint32_t segmentIdCount,
504  const dwVector4f* color,
505  dwRenderEngineHandle_t renderEngine,
506  dwMapsRendererHandle_t mapsRenderer,
507  dwConstMapsLocalLayoutHandle_t localLayout);
508 
532  float32_t bearingRadian,
533  float32_t length,
534  float32_t width,
535  bool withCenterCross,
536  bool withOrientation,
537  dwRenderEngineHandle_t renderEngine,
538  dwMapsRendererHandle_t mapsRenderer);
539 
563  const dwMapsGeoPoint* origin,
564  float32_t bearingRadian,
565  float32_t length,
566  float32_t width,
567  bool withCenterCross,
568  bool withOrientation,
569  dwRenderEngineHandle_t renderEngine,
570  dwMapsRendererHandle_t mapsRenderer);
571 
597  const dwMapsRoadSegmentId roadSegmentId,
598  float32_t bearingRadian,
599  float32_t length,
600  float32_t width,
601  bool withCenterCross,
602  bool withOrientation,
603  dwRenderEngineHandle_t renderEngine,
604  dwMapsRendererHandle_t mapsRenderer,
605  dwConstMapsLocalLayoutHandle_t localLayout);
606 
623  float32_t sizeMeters,
624  bool withCenterCross,
625  dwRenderEngineHandle_t renderEngine,
626  dwMapsRendererHandle_t mapsRenderer);
627 
645  const dwMapsGeoPoint* origin,
646  float32_t sizeMeters,
647  bool withCenterCross,
648  dwRenderEngineHandle_t renderEngine,
649  dwMapsRendererHandle_t mapsRenderer);
650 
668  const dwMapsRoadSegmentId roadSegmentId,
669  float32_t sizeMeters,
670  bool withCenterCross,
671  dwRenderEngineHandle_t renderEngine,
672  dwMapsRendererHandle_t mapsRenderer,
673  dwConstMapsLocalLayoutHandle_t localLayout);
674 
688 dwStatus dwMapsRenderer_renderMap(dwRenderEngineHandle_t renderEngine, bool renderInLocalLayout,
689  dwMapsRendererHandle_t mapsRenderer);
690 
707 dwStatus dwMapsRenderer_setLocalLayout(const dwMapsRoadSegmentBuffer* roadSegmentBuffer, bool showMapLineDirections,
708  dwConstMapsLocalLayoutHandle_t localLayout,
709  dwMapsRendererHandle_t mapsRenderer);
710 
711 #ifdef __cplusplus
712 }
713 #endif
714 
717 #endif // DW_VISUALIZATION_MAPSRENDERER_H_
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderOrientedGeoBox(const dwMapsGeoPoint *position, float32_t bearingRadian, float32_t length, float32_t width, bool withCenterCross, bool withOrientation, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Add an oriented box.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderBox(const dwVector3f *position, const dwMapsGeoPoint *origin, float32_t sizeMeters, bool withCenterCross, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Render a square box for local [x,y,z] point in the absolute coordinate system.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderPoints(const dwVector3f *points, uint32_t pointsCount, const dwMapsGeoPoint *origins, uint32_t originsCount, const dwVector4f *color, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Add local [x,y,z] points in the absolute coordinate system to a render buffer.
float float32_t
Specifies POD types.
Definition: Types.h:70
Defines a single-precision 3D polyline.
Definition: Types.h:404
Polyline defined by a dwMapsGeoPoint list.
Definition: Maps.h:418
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderPolylinesInLocalLayout(const dwPolyline3f *polylines, uint32_t polylineCount, const dwVector4f *colors, uint32_t colorCount, const dwMapsRoadSegmentId *roadSegmentIds, uint32_t segmentIdCount, bool showLineDirection, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer, dwConstMapsLocalLayoutHandle_t localLayout)
Add a local [x,y,z] polyline in a local coordinate system to a render buffer.
Defines a four-element single-precision floating point vector.
Definition: Types.h:335
Defines a three-element floating-point vector.
Definition: Types.h:319
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderPolylines(const dwPolyline3f *polylines, uint32_t polylineCount, const dwMapsGeoPoint *origins, uint32_t originsCount, const dwVector4f *colors, uint32_t colorCount, bool showLineDirection, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Add a local [x,y,z] polyline in the absolute coordinate system to a render buffer.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderBoxInLocalLayout(const dwVector3f *position, const dwMapsRoadSegmentId roadSegmentId, float32_t sizeMeters, bool withCenterCross, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer, dwConstMapsLocalLayoutHandle_t localLayout)
Render a square box for local [x,y,z] point in local coordinate system.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_setTopDownModelView(const dwMapsGeoPoint *cameraPos, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Set the position of an orthographic top-down camera.
struct dwRenderEngineObject * dwRenderEngineHandle_t
Handle for the render engine.
Definition: RenderEngine.h:66
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_isPixelCoordInBox(bool *isInBox, uint32_t screenCoordX, uint32_t screenCoordY, const dwMapsGeoPoint *boxCenter, float32_t sizeMeters, uint32_t tileId, dwRenderEngineHandle_t renderEngine, dwConstMapsRendererHandle_t mapsRenderer)
Check if a window pixel is within a box.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_setTopDownProjection(float32_t windowHeightInMeters, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Set the zoom of an orthographic top-down camera.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_setLocalLayout(const dwMapsRoadSegmentBuffer *roadSegmentBuffer, bool showMapLineDirections, dwConstMapsLocalLayoutHandle_t localLayout, dwMapsRendererHandle_t mapsRenderer)
computes transformations for road segments relative to the reference road segment and apply them to t...
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_initialize(dwMapsRendererHandle_t *mapsRenderer, uint32_t maxRenderBufferLineCount, uint32_t maxRenderBufferPointCount, bool showMapLineDirections, dwRenderEngineHandle_t renderEngine, dwConstMapHandle_t map)
Initialize maps renderer.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_getRenderCoord(dwVector3f *out, const dwMapsGeoPoint *in, dwConstMapsRendererHandle_t mapsRenderer)
Get the render coordinates of an query Wgs84 point.
NVIDIA DriveWorks API: Maps
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_getWGS84Coord(dwMapsGeoPoint *p, uint32_t screenCoordX, uint32_t screenCoordY, uint32_t tileId, dwRenderEngineHandle_t renderEngine, dwConstMapsRendererHandle_t mapsRenderer)
Get the WGS84 coordinates of a screen pixel.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_setLookAt(const dwMapsGeoPoint *cameraPos, const dwMapsGeoPoint *lookAtPoint, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Set camera position and orientation of the current tile in the render engine.
Location point defined by WGS84 coordinates.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderOrientedBox(const dwVector3f *position, const dwMapsGeoPoint *origin, float32_t bearingRadian, float32_t length, float32_t width, bool withCenterCross, bool withOrientation, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Add an oriented box for local [x,y,z] point in absolute coordinate system.
dwStatus
Status definition.
Definition: Status.h:166
User provided buffer of dwMapsRoadSegments.
Definition: Maps.h:730
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderLanePlan(dwConstLanePlanHandle_t lanePlan, bool showLineDirections, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Add a lane plan to the static render buffer.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_isPixelCoordInOrientedBox(bool *isInBox, uint32_t screenCoordX, uint32_t screenCoordY, const dwMapsGeoPoint *boxCenter, float32_t bearingRadian, float32_t lengthMeters, float32_t widthMeters, uint32_t tileId, dwRenderEngineHandle_t renderEngine, dwConstMapsRendererHandle_t mapsRenderer)
Check if a window pixel is within an oriented box.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderGeoPolylines(const dwMapsGeoPolyline *polylines, uint32_t polylineCount, const dwRenderEngineColorRGBA *colors, uint32_t colorCount, bool showLineDirection, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Add a wgs84 polyline to a render buffer.
const struct dwRenderEngineObject * dwConstRenderEngineHandle_t
Const handle for the render engine.
Definition: RenderEngine.h:68
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderOrientedBoxInLocalLayout(const dwVector3f *position, const dwMapsRoadSegmentId roadSegmentId, float32_t bearingRadian, float32_t length, float32_t width, bool withCenterCross, bool withOrientation, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer, dwConstMapsLocalLayoutHandle_t localLayout)
Add an oriented box for local [x,y,z] point in a local coordinate system .
struct dwLanePlanObject const * dwConstLanePlanHandle_t
Definition: LanePlanner.h:74
const struct dwMapsRendererObject * dwConstMapsRendererHandle_t
Const handle representing vertex data for rendering.
Definition: MapsRenderer.h:63
Globally unique identifier for road segments.
Definition: Maps.h:345
#define DW_VIZ_API_PUBLIC
Definition: Exports.h:51
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_getWGS84CoordNDC(dwMapsGeoPoint *p, float32_t x, float32_t y, dwConstRenderEngineHandle_t renderEngine, dwConstMapsRendererHandle_t mapsRenderer)
Get the WGS84 coordinates of a screen position.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_moveTopDownModelView(float32_t dx, float32_t dy, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Shift the position of an orthographic top-down camera horizonally and vertically by meters...
struct dwMapsRendererObject * dwMapsRendererHandle_t
Handle representing vertex data for rendering.
Definition: MapsRenderer.h:61
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_release(dwMapsRendererHandle_t mapsRenderer)
Release maps renderer and its resources.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderGeoBox(const dwMapsGeoPoint *position, float32_t sizeMeters, bool withCenterCross, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Render a square box.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderGeoPoints(const dwMapsGeoPoint *geoPoints, uint32_t geoPointCount, const dwVector4f *color, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer)
Add wgs84 points to a render buffer.
NVIDIA DriveWorks API: Render Engine
struct dwMapObject const * dwConstMapHandle_t
Definition: Maps.h:70
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_getWGS84CoordFromRenderCoord(dwMapsGeoPoint *p, const dwVector3f *in, dwConstMapsRendererHandle_t mapsRenderer)
Get the WGS84 coordinates of a render coord.
struct dwMapsLocalLayoutObject const * dwConstMapsLocalLayoutHandle_t
Definition: Maps.h:73
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderPointsInLocalLayout(const dwVector3f *points, uint32_t pointsCount, const dwMapsRoadSegmentId *roadSegmentIds, uint32_t segmentIdCount, const dwVector4f *color, dwRenderEngineHandle_t renderEngine, dwMapsRendererHandle_t mapsRenderer, dwConstMapsLocalLayoutHandle_t localLayout)
Add local [x,y,z] points in a local coordinate system to a render buffer.
DW_VIZ_API_PUBLIC dwStatus dwMapsRenderer_renderMap(dwRenderEngineHandle_t renderEngine, bool renderInLocalLayout, dwMapsRendererHandle_t mapsRenderer)
Render the complete map.
NVIDIA DriveWorks API: Lane Planner