CVB++ 15.0
core_3d.hpp
1#pragma once
2
3#include "namespace.hpp"
4#include "global.hpp"
5
6#include "_cexports/c_core_3d.h"
7
8namespace Cvb
9{
10
11 CVB_BEGIN_INLINE_NS
12
14
15 struct Factors3D
16 {
18 double X;
20 double Y;
22 double Z;
23
25
30 explicit Factors3D(double x = 1, double y = 1, double z = 1)
31 : X(x)
32 , Y(y)
33 , Z(z)
34 {
35 }
36 };
37
38 class PointCloud;
41
42 class DensePointCloud;
45
46 class SparsePointCloud;
49
50 class Calibrator3D;
53
54 class AtCalibrator3D;
57
61
65
69
73
77
81
82 template <class T>
83 class Mesh;
85 template <class T>
87
89 enum class PointCloudFlags
90 {
94 Float = CExports::CVC3DPCF_DTFloat,
95
99 Double = CExports::CVC3DPCF_DTDouble,
100
104 XYZ = CExports::CVC3DPCF_XYZ,
105
109 XYZW = CExports::CVC3DPCF_XYZW,
110
114 XYZConfidence = CExports::CVC3DPCF_XYZConfidence,
115
119 WithConfidence = CExports::CVC3DPCF_WithConfidence,
120
124 NoExtrinsic = CExports::CVC3DPCF_NoExtrinsic,
125
131 NoMeshIndices = CExports::CVC3DPCF_NoMeshIndices
132 };
133
134 inline PointCloudFlags operator|(PointCloudFlags a, PointCloudFlags b)
135 {
136 return static_cast<PointCloudFlags>(static_cast<int>(a) | static_cast<int>(b));
137 }
138
141 {
150 Ascii = CExports::CVC3DPCFF_Ascii,
151
161 Ply = CExports::CVC3DPCFF_Ply,
162
170 Stl = CExports::CVC3DPCFF_Stl,
171
172 /*
173 * \brief Wavefront object file format.
174 *
175 * This format is usually specified by the filename extension: .obj
176 * Only reading is supported.
177 *
178 * Loading mesh information is supported.
179 */
180 WavefrontObj = CExports::CVC3DPCFF_WavefrontObj,
181
190 Tiff = CExports::CVC3DPCFF_Tiff
191 };
192
195 {
199 Invalid = CExports::CVC3DPCL_Invalid,
200
206 Linear = CExports::CVC3DPCL_Linear,
207
214 SeparatePlanar = CExports::CVC3DPCL_SeparatePlanar,
215
222 Planar = CExports::CVC3DPCL_Planar,
223
229 Interleaved = CExports::CVC3DPCL_Interleaved
230 };
231
233 enum class DownSampleMode
234 {
238 DownsampleByFactor = CExports::CVC3DDownsampleByFactor,
239
243 RemoveRandomly = CExports::CVC3DRemoveRandomly
244 };
245
248 {
252 Absolute = CExports::CVC3DSPP_Absolute,
253
257 Relative = CExports::CVC3DSPP_Relative
258 };
259
262 {
266 None = CExports::CVC3DSPM_None,
267
272 X = CExports::CVC3DSPM_X,
273
278 Y = CExports::CVC3DSPM_Y,
279
283 XY = CExports::CVC3DSPM_XY
284 };
285
287 enum class CropRange
288 {
291 CropWithinRange = CExports::CVC3DC_CropWithinRange,
292
296 CropOutsideRange = CExports::CVC3DC_CropOutsideRange
297 };
298
300 enum class CropDirection
301 {
305 Below = 0,
310 };
311
314 {
319 };
320
323 {
346
348
354 GapFillingOptions(double backgroundValue, int maxWidth, int maxHeight, GapFillingMethod method)
355 : BackgroundValue(backgroundValue)
356 , MaxWidth(maxWidth)
357 , MaxHeight(maxHeight)
358 , Method(method)
359 {
360 }
361 };
362
363 CVB_END_INLINE_NS
364
365} // namespace Cvb
Calibration object to apply 3D calibration of sensor provided by Automation Technology (AT) to point ...
Definition decl_at_calibrator_3d.hpp:17
Base calibration class to apply 3D calibration to point clouds.
Definition decl_calibrator_3d.hpp:67
A dense Cartesian 3D point cloud object.
Definition decl_dense_point_cloud.hpp:30
Calibration object to apply factors component wise.
Definition decl_factors_calibrator_3d.hpp:16
Calibration object to applying parameters calibrating laser plane.
Definition decl_laser_plane_calibrator_3d.hpp:18
Calibration object from CVB Metric to apply a x-z homography for laser triangulation cameras.
Definition decl_laser_plane_homography_calibrator_3d.hpp:18
Calibration object to apply zig zag algorithm to the range map of a laser triangulation cameras.
Definition decl_laser_plane_zigzag_calibrator_3d.hpp:17
Calibration object to apply 4x4 matrix to each point.
Definition decl_matrix_calibrator_3d.hpp:16
3D mesh object consisting of polygons.
Definition mesh.hpp:20
Calibration object to apply the pinhole camera model to the input range map.
Definition decl_pinhole_camera_calibrator_3d.hpp:17
A sparse Cartesian 3D point cloud object.
Definition decl_sparse_point_cloud.hpp:29
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
std::shared_ptr< AtCalibrator3D > AtCalibrator3DPtr
Convenience shared pointer for AtCalibrator3D.
Definition core_3d.hpp:56
std::shared_ptr< FactorsCalibrator3D > FactorsCalibrator3DPtr
Convenience shared pointer for FactorsCalibrator3D.
Definition core_3d.hpp:60
PointCloudFileFormat
Supported point cloud point formats.
Definition core_3d.hpp:141
@ Ply
Polygon file format.
Definition core_3d.hpp:161
@ Ascii
Ascii file format.
Definition core_3d.hpp:150
@ Stl
Stereo lithography file format.
Definition core_3d.hpp:170
@ Tiff
TIFF file format.
Definition core_3d.hpp:190
PointCloudFlags
Flags for creating point clouds.
Definition core_3d.hpp:90
@ Float
Definition core_3d.hpp:94
@ NoExtrinsic
Definition core_3d.hpp:124
@ WithConfidence
Definition core_3d.hpp:119
@ XYZW
Definition core_3d.hpp:109
@ XYZConfidence
Definition core_3d.hpp:114
@ Double
Definition core_3d.hpp:99
@ NoMeshIndices
Definition core_3d.hpp:131
@ XYZ
Definition core_3d.hpp:104
std::shared_ptr< LaserPlaneHomographyCalibrator3D > LaserPlaneHomographyCalibrator3DPtr
Convenience shared pointer for LaserPlaneHomographyCalibrator3D.
Definition core_3d.hpp:76
std::shared_ptr< LaserPlaneCalibrator3D > LaserPlaneCalibrator3DPtr
Convenience shared pointer for LaserPlaneCalibrator3D.
Definition core_3d.hpp:72
std::shared_ptr< PointCloud > PointCloudPtr
Convenience shared pointer for PointCloud.
Definition core_3d.hpp:40
std::shared_ptr< Calibrator3D > Calibrator3DPtr
Convenience shared pointer for Calibrator3D.
Definition core_3d.hpp:52
CropRange
Indicates cropping range.
Definition core_3d.hpp:288
@ CropOutsideRange
Crops points outside given range.
Definition core_3d.hpp:296
@ CropWithinRange
Crops points within given range.
Definition core_3d.hpp:291
PointCloudLayout
Supported point cloud point layouts.
Definition core_3d.hpp:195
@ Interleaved
Definition core_3d.hpp:229
@ Linear
Definition core_3d.hpp:206
@ SeparatePlanar
Definition core_3d.hpp:214
@ Invalid
Definition core_3d.hpp:199
@ Planar
Definition core_3d.hpp:222
SensorPixelPosition
Indicates pixel position on sensor.
Definition core_3d.hpp:248
@ Relative
Scaled rangemap values represent relative pixel position to given offset on sensor.
Definition core_3d.hpp:257
@ Absolute
Scaled rangemap values represent absolute pixel position on sensor.
Definition core_3d.hpp:252
std::shared_ptr< PinholeCameraCalibrator3D > PinholeCameraCalibrator3DPtr
Convenience shared pointer for PinholeCameraCalibrator3D.
Definition core_3d.hpp:68
std::shared_ptr< SparsePointCloud > SparsePointCloudPtr
Convenience shared pointer for SparsePointCloud.
Definition core_3d.hpp:48
std::shared_ptr< LaserPlaneZigZagCalibrator3D > LaserPlaneZigZagCalibrator3DPtr
Convenience shared pointer for LaserPlaneZigZagCalibrator3D.
Definition core_3d.hpp:80
std::shared_ptr< MatrixCalibrator3D > MatrixCalibrator3DPtr
Convenience shared pointer for MatrixCalibrator3D.
Definition core_3d.hpp:64
std::shared_ptr< Mesh< T > > MeshPtr
Convenience shared pointer for Mesh.
Definition core_3d.hpp:86
CropDirection
Indicates cropping direction.
Definition core_3d.hpp:301
@ Above
Crop above given plane.
Definition core_3d.hpp:309
@ Below
Crop below given plane.
Definition core_3d.hpp:305
DownSampleMode
Specifies how to remove points from a point cloud.
Definition core_3d.hpp:234
@ DownsampleByFactor
Definition core_3d.hpp:238
@ RemoveRandomly
Definition core_3d.hpp:243
SensorPixelsMirrored
Indicates if sensor pixels are mirrored in rangemap.
Definition core_3d.hpp:262
@ X
Sensor pixel values are mirrored in X (or denoted by u), so that the columns of the range map will be...
Definition core_3d.hpp:272
@ Y
Sensor pixel values are mirrored in Y (or denoted by v), so that the range map pixel values will be f...
Definition core_3d.hpp:278
@ None
No mirroring is applied.
Definition core_3d.hpp:266
@ XY
Sensor pixel values are mirrored in X and Y.
Definition core_3d.hpp:283
GapFillingMethod
Supported methods for gap filling.
Definition core_3d.hpp:314
@ LinearInterpolation
Definition core_3d.hpp:318
std::shared_ptr< DensePointCloud > DensePointCloudPtr
Convenience shared pointer for DensePointCloud.
Definition core_3d.hpp:44
double Z
The Z factor.
Definition core_3d.hpp:22
double X
The X factor.
Definition core_3d.hpp:18
Factors3D(double x=1, double y=1, double z=1)
Creates a new Factors3D object.
Definition core_3d.hpp:30
double Y
The Y factor.
Definition core_3d.hpp:20
GapFillingOptions(double backgroundValue, int maxWidth, int maxHeight, GapFillingMethod method)
Creates a new GapFillingOptions object.
Definition core_3d.hpp:354
int MaxWidth
Maximum width of a gap to be filled. Larger gaps are ignored. If you like to fill all gaps,...
Definition core_3d.hpp:334
GapFillingMethod Method
Definition core_3d.hpp:345
int MaxHeight
Maximum Height of a gap to be filled. Larger gaps are ignored. If you like to fill all gaps,...
Definition core_3d.hpp:341
double BackgroundValue
Definition core_3d.hpp:327