DriveWorks SDK Reference
5.20.37 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-2023 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
114
DW_API_PUBLIC
115
dwStatus
dwPCPlaneExtractor_initialize
(
dwPointCloudPlaneExtractorHandle_t
*
const
obj,
116
dwPointCloudPlaneExtractorParams
const
*
const
params,
117
dwContextHandle_t
const
ctx);
118
129
DW_API_PUBLIC
130
dwStatus
dwPCPlaneExtractor_reset
(
dwPointCloudPlaneExtractorHandle_t
const
obj);
131
142
DW_API_PUBLIC
143
dwStatus
dwPCPlaneExtractor_release
(
dwPointCloudPlaneExtractorHandle_t
const
obj);
144
155
DW_API_PUBLIC
156
dwStatus
dwPCPlaneExtractor_getDefaultParameters
(
dwPointCloudPlaneExtractorParams
*
const
params);
157
169
DW_API_PUBLIC
170
dwStatus
dwPCPlaneExtractor_bindInput
(
dwPointCloud
const
*
const
pointCloud,
171
dwPointCloudPlaneExtractorHandle_t
const
obj);
183
DW_API_PUBLIC
184
dwStatus
dwPCPlaneExtractor_getCUDAStream
(cudaStream_t*
const
stream,
185
dwPointCloudPlaneExtractorHandle_t
const
obj);
186
198
DW_API_PUBLIC
199
dwStatus
dwPCPlaneExtractor_setCUDAStream
(cudaStream_t
const
stream,
200
dwPointCloudPlaneExtractorHandle_t
const
obj);
201
215
DW_API_PUBLIC
216
dwStatus
dwPCPlaneExtractor_bindOutput
(
dwPointCloud
*
const
inliers,
217
dwPointCloud
*
const
outliers,
218
dwPointCloudExtractedPlane
*
const
outputPlane,
219
dwPointCloudPlaneExtractorHandle_t
const
obj);
220
233
DW_API_PUBLIC
234
dwStatus
dwPCPlaneExtractor_process
(
dwPointCloudPlaneExtractorHandle_t
const
obj);
235
237
// DEPRECATED API FUNCTIONS
238
247
DW_API_PUBLIC
248
DW_DEPRECATED
(
"dwPointCloudPlaneExtractor_initialize() is renamed / deprecated and will be removed in the next major release,"
249
" use dwPCPlaneExtractor_initialize() instead"
)
250
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
251
dwStatus
dwPointCloudPlaneExtractor_initialize
(
dwPointCloudPlaneExtractorHandle_t
* const obj,
252
dwPointCloudPlaneExtractorParams
const* const params,
253
dwContextHandle_t
const ctx);
254
261
DW_API_PUBLIC
262
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_reset
() is renamed / deprecated and will be removed in the next major release,"
263
" use
dwPCPlaneExtractor_reset
() instead")
264
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
265
dwStatus
dwPointCloudPlaneExtractor_reset
(
dwPointCloudPlaneExtractorHandle_t
const obj);
266
273
DW_API_PUBLIC
274
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_release
() is renamed / deprecated and will be removed in the next major release,"
275
" use
dwPCPlaneExtractor_release
() instead")
276
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
277
dwStatus
dwPointCloudPlaneExtractor_release
(
dwPointCloudPlaneExtractorHandle_t
const obj);
278
285
DW_API_PUBLIC
286
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_getDefaultParameters
() is renamed / deprecated and will be removed in the next major release,"
287
" use
dwPCPlaneExtractor_getDefaultParameters
() instead")
288
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
289
dwStatus
dwPointCloudPlaneExtractor_getDefaultParameters
(
dwPointCloudPlaneExtractorParams
* const params);
290
298
DW_API_PUBLIC
299
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_bindInput
() is renamed / deprecated and will be removed in the next major release,"
300
" use
dwPCPlaneExtractor_bindInput
() instead")
301
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
302
dwStatus
dwPointCloudPlaneExtractor_bindInput
(
dwPointCloud
const* const pointCloud,
303
dwPointCloudPlaneExtractorHandle_t
const obj);
311
DW_API_PUBLIC
312
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_getCUDAStream
() is renamed / deprecated and will be removed in the next major release,"
313
" use
dwPCPlaneExtractor_getCUDAStream
() instead")
314
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
315
dwStatus
dwPointCloudPlaneExtractor_getCUDAStream
(cudaStream_t* const stream,
316
dwPointCloudPlaneExtractorHandle_t
const obj);
317
325
DW_API_PUBLIC
326
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_setCUDAStream
() is renamed / deprecated and will be removed in the next major release,"
327
" use
dwPCPlaneExtractor_setCUDAStream
() instead")
328
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
329
dwStatus
dwPointCloudPlaneExtractor_setCUDAStream
(cudaStream_t const stream,
330
dwPointCloudPlaneExtractorHandle_t
const obj);
331
341
DW_API_PUBLIC
342
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_bindOutput
() is renamed / deprecated and will be removed in the next major release,"
343
" use
dwPCPlaneExtractor_bindOutput
() instead")
344
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
345
dwStatus
dwPointCloudPlaneExtractor_bindOutput
(
dwPointCloud
* const inliers,
346
dwPointCloud
* const outliers,
347
dwPointCloudExtractedPlane
* const outputPlane,
348
dwPointCloudPlaneExtractorHandle_t
const obj);
349
358
DW_API_PUBLIC
359
DW_DEPRECATED
("
dwPointCloudPlaneExtractor_process
() is renamed / deprecated and will be removed in the next major release,"
360
" use
dwPCPlaneExtractor_process
() instead")
361
// coverity[misra_c_2012_rule_5_1_violation] Deprecated API
362
dwStatus
dwPointCloudPlaneExtractor_process
(
dwPointCloudPlaneExtractorHandle_t
const obj);
363
364
#ifdef __cplusplus
365
}
366
#endif
368
#endif
// DW_POINTCLOUDPROCESSING_POINTCLOUDPLANEEXTRACTOR_H_
Context.h
NVIDIA DriveWorks API: Core Methods
dwStatus
dwStatus
Status definition.
Definition:
ErrorDefs.h:44
dwOrientedBoundingBox3f
Data structure representing an oriented bounding box in the local object coordinate frame The box is ...
Definition:
GeometricTypes.h:164
dwMatrix3f
Defines a 3x3 matrix of floating point numbers by using only one array.
Definition:
MatrixTypes.h:135
dwVector3f
Defines a three-element floating-point vector.
Definition:
MatrixTypes.h:76
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:85
DW_DEPRECATED
#define DW_DEPRECATED(msg)
Definition:
Exports.h:68
DW_API_PUBLIC
#define DW_API_PUBLIC
Definition:
Exports.h:56
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:98
dwTransformation3f
Specifies a 3D rigid transformation.
Definition:
MatrixTypes.h:182
Advance Information | Subject to Change | Prepared and Provided under NDA | Generated by NVIDIA | PR-08397-V5.0