DriveWorks SDK Reference
5.14.77 Release
For Test and Development only
PointCloudPlaneExtractor.h
Go to the documentation of this file.
1
2
//
3
// Notice
4
// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
5
// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
6
// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
7
// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8
//
9
// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
10
// information or for any infringement of patents or other rights of third parties that may
11
// result from its use. No license is granted by implication or otherwise under any patent
12
// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
13
// expressly authorized by NVIDIA. Details are subject to change without notice.
14
// This code supersedes and replaces all information previously supplied.
15
// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
16
// components in life support devices or systems without express written approval of
17
// NVIDIA CORPORATION & AFFILIATES.
18
//
19
// SPDX-FileCopyrightText: Copyright (c) 2018-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
20
// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
21
//
22
// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
23
// property and proprietary rights in and to this material, related
24
// documentation and any modifications thereto. Any use, reproduction,
25
// disclosure or distribution of this material and related documentation
26
// without an express license agreement from NVIDIA CORPORATION or
27
// its affiliates is strictly prohibited.
28
//
30
47
#ifndef DW_POINTCLOUDPROCESSING_POINTCLOUDPLANEEXTRACTOR_H_
48
#define DW_POINTCLOUDPROCESSING_POINTCLOUDPLANEEXTRACTOR_H_
49
50
#include <
dw/core/base/Types.h
>
51
#include <
dw/core/context/Context.h
>
52
#include <
dw/pointcloudprocessing/pointcloud/PointCloud.h
>
53
54
#ifdef __cplusplus
55
extern
"C"
{
56
#endif
57
58
typedef
struct
dwPointCloudPlaneExtractorObject*
dwPointCloudPlaneExtractorHandle_t
;
59
65
typedef
struct
66
{
67
uint32_t
maxPointCount
;
68
dwOrientedBoundingBox3f
box
;
69
}
dwPlaneExtractorBoxFilterParams
;
70
77
typedef
struct
78
{
79
uint32_t
maxInputPointCount
;
80
uint32_t
ransacIterationCount
;
81
uint32_t
optimizerIterationCount
;
82
float32_t
minInlierFraction
;
83
float32_t
maxInlierDistance
;
84
dwMatrix3f
rotation
;
85
bool
cudaPipelineEnabled
;
86
dwPlaneExtractorBoxFilterParams
boxFilterParams
;
87
}
dwPointCloudPlaneExtractorParams
;
88
92
typedef
struct
93
{
94
dwTransformation3f
transformation
;
95
dwVector3f
normal
;
96
float32_t
offset
;
97
bool
valid
;
100
}
dwPointCloudExtractedPlane
;
101
110
DW_API_PUBLIC
111
dwStatus
dwPCPlaneExtractor_initialize
(
dwPointCloudPlaneExtractorHandle_t
*
const
obj,
112
dwPointCloudPlaneExtractorParams
const
*
const
params,
113
dwContextHandle_t
const
ctx);
114
121
DW_API_PUBLIC
122
dwStatus
dwPCPlaneExtractor_reset
(
dwPointCloudPlaneExtractorHandle_t
const
obj);
123
130
DW_API_PUBLIC
131
dwStatus
dwPCPlaneExtractor_release
(
dwPointCloudPlaneExtractorHandle_t
const
obj);
132
139
DW_API_PUBLIC
140
dwStatus
dwPCPlaneExtractor_getDefaultParameters
(
dwPointCloudPlaneExtractorParams
*
const
params);
141
149
DW_API_PUBLIC
150
dwStatus
dwPCPlaneExtractor_bindInput
(
dwPointCloud
const
*
const
pointCloud,
151
dwPointCloudPlaneExtractorHandle_t
const
obj);
159
DW_API_PUBLIC
160
dwStatus
dwPCPlaneExtractor_getCUDAStream
(cudaStream_t*
const
stream,
161
dwPointCloudPlaneExtractorHandle_t
const
obj);
162
170
DW_API_PUBLIC
171
dwStatus
dwPCPlaneExtractor_setCUDAStream
(cudaStream_t
const
stream,
172
dwPointCloudPlaneExtractorHandle_t
const
obj);
173
183
DW_API_PUBLIC
184
dwStatus
dwPCPlaneExtractor_bindOutput
(
dwPointCloud
*
const
inliers,
185
dwPointCloud
*
const
outliers,
186
dwPointCloudExtractedPlane
*
const
outputPlane,
187
dwPointCloudPlaneExtractorHandle_t
const
obj);
188
197
DW_API_PUBLIC
198
dwStatus
dwPCPlaneExtractor_process
(
dwPointCloudPlaneExtractorHandle_t
const
obj);
199
201
// DEPRECATED API FUNCTIONS
202
211
DW_API_PUBLIC
212
DW_DEPRECATED
(
"dwPointCloudPlaneExtractor_initialize() is renamed / deprecated and will be removed in the next major release,"
213
" use dwPCPlaneExtractor_initialize() instead"
)
214
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
215
dwStatus
dwPointCloudPlaneExtractor_initialize
(
dwPointCloudPlaneExtractorHandle_t
* const obj,
216
dwPointCloudPlaneExtractorParams
const* const params,
217
dwContextHandle_t
const ctx);
218
225
DW_API_PUBLIC
226
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_reset
() is renamed / deprecated and will be removed in the next major release,"
227
" use
dwPCPlaneExtractor_reset
() instead")
228
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
229
dwStatus
dwPointCloudPlaneExtractor_reset
(
dwPointCloudPlaneExtractorHandle_t
const obj);
230
237
DW_API_PUBLIC
238
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_release
() is renamed / deprecated and will be removed in the next major release,"
239
" use
dwPCPlaneExtractor_release
() instead")
240
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
241
dwStatus
dwPointCloudPlaneExtractor_release
(
dwPointCloudPlaneExtractorHandle_t
const obj);
242
249
DW_API_PUBLIC
250
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_getDefaultParameters
() is renamed / deprecated and will be removed in the next major release,"
251
" use
dwPCPlaneExtractor_getDefaultParameters
() instead")
252
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
253
dwStatus
dwPointCloudPlaneExtractor_getDefaultParameters
(
dwPointCloudPlaneExtractorParams
* const params);
254
262
DW_API_PUBLIC
263
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_bindInput
() is renamed / deprecated and will be removed in the next major release,"
264
" use
dwPCPlaneExtractor_bindInput
() instead")
265
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
266
dwStatus
dwPointCloudPlaneExtractor_bindInput
(
dwPointCloud
const* const pointCloud,
267
dwPointCloudPlaneExtractorHandle_t
const obj);
275
DW_API_PUBLIC
276
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_getCUDAStream
() is renamed / deprecated and will be removed in the next major release,"
277
" use
dwPCPlaneExtractor_getCUDAStream
() instead")
278
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
279
dwStatus
dwPointCloudPlaneExtractor_getCUDAStream
(cudaStream_t* const stream,
280
dwPointCloudPlaneExtractorHandle_t
const obj);
281
289
DW_API_PUBLIC
290
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_setCUDAStream
() is renamed / deprecated and will be removed in the next major release,"
291
" use
dwPCPlaneExtractor_setCUDAStream
() instead")
292
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
293
dwStatus
dwPointCloudPlaneExtractor_setCUDAStream
(cudaStream_t const stream,
294
dwPointCloudPlaneExtractorHandle_t
const obj);
295
305
DW_API_PUBLIC
306
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_bindOutput
() is renamed / deprecated and will be removed in the next major release,"
307
" use
dwPCPlaneExtractor_bindOutput
() instead")
308
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
309
dwStatus
dwPointCloudPlaneExtractor_bindOutput
(
dwPointCloud
* const inliers,
310
dwPointCloud
* const outliers,
311
dwPointCloudExtractedPlane
* const outputPlane,
312
dwPointCloudPlaneExtractorHandle_t
const obj);
313
322
DW_API_PUBLIC
323
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_process
() is renamed / deprecated and will be removed in the next major release,"
324
" use
dwPCPlaneExtractor_process
() instead")
325
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
326
dwStatus
dwPointCloudPlaneExtractor_process
(
dwPointCloudPlaneExtractorHandle_t
const obj);
327
328
#ifdef __cplusplus
329
}
330
#endif
332
#endif
// DW_POINTCLOUDPROCESSING_POINTCLOUDPLANEEXTRACTOR_H_
Context.h
NVIDIA DriveWorks API: Core Methods
dwStatus
dwStatus
Status definition.
Definition:
ErrorDefs.h:45
dwOrientedBoundingBox3f
Data structure representing an oriented bounding box in the local object coordinate frame The box is ...
Definition:
GeometricTypes.h:147
dwMatrix3f
Defines a 3x3 matrix of floating point numbers by using only one array.
Definition:
MatrixTypes.h:139
dwVector3f
Defines a three-element floating-point vector.
Definition:
MatrixTypes.h:79
PointCloud.h
NVIDIA DriveWorks API: Point Cloud Processing
Types.h
NVIDIA DriveWorks API: Core Types
float32_t
float float32_t
Specifies POD types.
Definition:
BasicTypes.h:59
dwContextHandle_t
struct dwContextObject * dwContextHandle_t
Context handle.
Definition:
Context.h:86
DW_DEPRECATED
#define DW_DEPRECATED(msg)
Definition:
Exports.h:66
DW_API_PUBLIC
#define DW_API_PUBLIC
Definition:
Exports.h:54
dwPointCloudPlaneExtractorParams::maxInlierDistance
float32_t maxInlierDistance
maximum inlier distance to the estimated plane
Definition:
PointCloudPlaneExtractor.h:83
dwPointCloudExtractedPlane::offset
float32_t offset
offset distance of the ground plane to the coordinate origin
Definition:
PointCloudPlaneExtractor.h:96
dwPointCloudExtractedPlane::valid
bool valid
If this is false, it indicates the ransac plane fitting and optimization failed to produce a 3D groun...
Definition:
PointCloudPlaneExtractor.h:97
dwPointCloudPlaneExtractorParams::rotation
dwMatrix3f rotation
rotation that aligns the point cloud with ground plane
Definition:
PointCloudPlaneExtractor.h:84
dwPointCloudExtractedPlane::normal
dwVector3f normal
normal vector of the ground plane
Definition:
PointCloudPlaneExtractor.h:95
dwPointCloudPlaneExtractorParams::minInlierFraction
float32_t minInlierFraction
minimum inlier percentage for ransac plane fitting
Definition:
PointCloudPlaneExtractor.h:82
dwPointCloudExtractedPlane::transformation
dwTransformation3f transformation
rotation and translation of the plane given the estimated normal vector and plane offset
Definition:
PointCloudPlaneExtractor.h:94
dwPointCloudPlaneExtractorParams::maxInputPointCount
uint32_t maxInputPointCount
maximum number of points in input point cloud
Definition:
PointCloudPlaneExtractor.h:79
dwPointCloudPlaneExtractorParams::boxFilterParams
dwPlaneExtractorBoxFilterParams boxFilterParams
box filter parameters
Definition:
PointCloudPlaneExtractor.h:86
dwPointCloudPlaneExtractorParams::ransacIterationCount
uint32_t ransacIterationCount
ransac iteration number
Definition:
PointCloudPlaneExtractor.h:80
dwPlaneExtractorBoxFilterParams::maxPointCount
uint32_t maxPointCount
maximum number of accepted points
Definition:
PointCloudPlaneExtractor.h:67
dwPointCloudPlaneExtractorParams::optimizerIterationCount
uint32_t optimizerIterationCount
optimization iteration number
Definition:
PointCloudPlaneExtractor.h:81
dwPlaneExtractorBoxFilterParams::box
dwOrientedBoundingBox3f box
oriented bounding box
Definition:
PointCloudPlaneExtractor.h:68
dwPointCloudPlaneExtractorParams::cudaPipelineEnabled
bool cudaPipelineEnabled
Setting to true will process with CUDA pipeline.
Definition:
PointCloudPlaneExtractor.h:85
dwPCPlaneExtractor_process
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_process(dwPointCloudPlaneExtractorHandle_t const obj)
Extracts 3D ground plane and stores the results to output buffer.
dwPointCloudPlaneExtractor_bindInput
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_bindInput(dwPointCloud const *const pointCloud, dwPointCloudPlaneExtractorHandle_t const obj)
Binds point cloud buffer to plane extractor.
dwPointCloudPlaneExtractorHandle_t
struct dwPointCloudPlaneExtractorObject * dwPointCloudPlaneExtractorHandle_t
Definition:
PointCloudPlaneExtractor.h:58
dwPointCloudPlaneExtractor_process
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_process(dwPointCloudPlaneExtractorHandle_t const obj)
Extracts 3D ground plane and stores the results to output buffer.
dwPointCloudPlaneExtractor_setCUDAStream
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_setCUDAStream(cudaStream_t const stream, dwPointCloudPlaneExtractorHandle_t const obj)
Sets CUDA stream of point cloud plane extractor.
dwPCPlaneExtractor_getCUDAStream
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_getCUDAStream(cudaStream_t *const stream, dwPointCloudPlaneExtractorHandle_t const obj)
Gets CUDA stream of point cloud plane extractor.
dwPCPlaneExtractor_bindOutput
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_bindOutput(dwPointCloud *const inliers, dwPointCloud *const outliers, dwPointCloudExtractedPlane *const outputPlane, dwPointCloudPlaneExtractorHandle_t const obj)
Binds output buffers to point cloud plane extractor.
dwPCPlaneExtractor_bindInput
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_bindInput(dwPointCloud const *const pointCloud, dwPointCloudPlaneExtractorHandle_t const obj)
Binds point cloud buffer to plane extractor.
dwPointCloudPlaneExtractor_getCUDAStream
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_getCUDAStream(cudaStream_t *const stream, dwPointCloudPlaneExtractorHandle_t const obj)
Gets CUDA stream of point cloud plane extractor.
dwPointCloudPlaneExtractor_getDefaultParameters
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_getDefaultParameters(dwPointCloudPlaneExtractorParams *const params)
Gets default point cloud plane extractor parameters.
dwPointCloudPlaneExtractor_bindOutput
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_bindOutput(dwPointCloud *const inliers, dwPointCloud *const outliers, dwPointCloudExtractedPlane *const outputPlane, dwPointCloudPlaneExtractorHandle_t const obj)
Binds output buffers to point cloud plane extractor.
dwPCPlaneExtractor_setCUDAStream
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_setCUDAStream(cudaStream_t const stream, dwPointCloudPlaneExtractorHandle_t const obj)
Sets CUDA stream of point cloud plane extractor.
dwPointCloudPlaneExtractor_initialize
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_initialize(dwPointCloudPlaneExtractorHandle_t *const obj, dwPointCloudPlaneExtractorParams const *const params, dwContextHandle_t const ctx)
Initializes point cloud plane extractor.
dwPCPlaneExtractor_getDefaultParameters
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_getDefaultParameters(dwPointCloudPlaneExtractorParams *const params)
Gets default point cloud plane extractor parameters.
dwPCPlaneExtractor_release
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_release(dwPointCloudPlaneExtractorHandle_t const obj)
Releases point cloud plane extractor.
dwPointCloudPlaneExtractor_release
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_release(dwPointCloudPlaneExtractorHandle_t const obj)
Releases point cloud plane extractor.
dwPCPlaneExtractor_initialize
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_initialize(dwPointCloudPlaneExtractorHandle_t *const obj, dwPointCloudPlaneExtractorParams const *const params, dwContextHandle_t const ctx)
Initializes point cloud plane extractor.
dwPointCloudPlaneExtractor_reset
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_reset(dwPointCloudPlaneExtractorHandle_t const obj)
Resets point cloud plane extractor.
dwPCPlaneExtractor_reset
DW_API_PUBLIC dwStatus dwPCPlaneExtractor_reset(dwPointCloudPlaneExtractorHandle_t const obj)
Resets point cloud plane extractor.
dwPlaneExtractorBoxFilterParams
Defines parameters for point cloud box filter.
Definition:
PointCloudPlaneExtractor.h:66
dwPointCloudExtractedPlane
Defines extracted 3D plane.
Definition:
PointCloudPlaneExtractor.h:93
dwPointCloudPlaneExtractorParams
Defines plane extraction parameter.
Definition:
PointCloudPlaneExtractor.h:78
dwPointCloud
Defines point cloud data structure.
Definition:
PointCloud.h:99
dwTransformation3f
Specifies a 3D rigid transformation.
Definition:
MatrixTypes.h:186
Advance Information | Subject to Change | Prepared and Provided under NDA | Generated by NVIDIA | PR-08397-V5.0