CVB++ 14.0
core_3d.hpp
1#pragma once
2
3
4#include "namespace.hpp"
5#include "global.hpp"
6
7#include "_cexports/c_core_3d.h"
8
9namespace Cvb
10{
11
12CVB_BEGIN_INLINE_NS
13
15
17{
19 double X;
21 double Y;
23 double Z;
24
26
31 Factors3D(double x = 1, double y = 1, double z = 1)
32 : X(x), Y(y), Z(z)
33 {
34 }
35};
36
37
38class PointCloud;
41
42class DensePointCloud;
45
49
50class Calibrator3D;
53
54class AtCalibrator3D;
57
61
65
69
73
77
81
82template <class T>
83class Mesh;
85template <class T>
87
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
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
192
195{
199 Invalid = CExports::CVC3DPCL_Invalid,
200
206 Linear = CExports::CVC3DPCL_Linear,
207
213 SeparatePlanar = CExports::CVC3DPCL_SeparatePlanar,
214
220 Planar = CExports::CVC3DPCL_Planar,
221
227 Interleaved = CExports::CVC3DPCL_Interleaved
228};
229
232{
236 DownsampleByFactor = CExports::CVC3DDownsampleByFactor,
237
241 RemoveRandomly = CExports::CVC3DRemoveRandomly
242};
243
246{
250 Absolute = CExports::CVC3DSPP_Absolute,
251
255 Relative = CExports::CVC3DSPP_Relative
256};
257
260{
264 None = CExports::CVC3DSPM_None,
265
269 X = CExports::CVC3DSPM_X,
270
274 Y = CExports::CVC3DSPM_Y,
275
279 XY = CExports::CVC3DSPM_XY
280};
281
283enum class CropRange
284{
287 CropWithinRange = CExports::CVC3DC_CropWithinRange,
288
292 CropOutsideRange = CExports::CVC3DC_CropOutsideRange
293};
294
297{
301 Below = 0,
305 Above = 1
306};
307CVB_END_INLINE_NS
308
309}
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:31
Calibration object to apply factors component wise.
Definition: decl_factors_calibrator_3d.hpp:16
Calibration object to appling 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:17
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:30
Root namespace for the Image Manager interface.
Definition: c_barcode.h:24
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
CropRange
Indicates cropping range.
Definition: core_3d.hpp:284
@ CropOutsideRange
Crops points outside given range.
@ CropWithinRange
Crops points within given range.
PointCloudLayout
Supported point cloud point layouts.
Definition: core_3d.hpp:195
SensorPixelPosition
Indicates pixel position on sensor.
Definition: core_3d.hpp:246
@ Relative
Scaled rangemap values represent relative pixel position to given offset on sensor.
CropDirection
Indicates cropping direction.
Definition: core_3d.hpp:297
@ Above
Crop above given plane.
@ Below
Crop below given plane.
DownSampleMode
Specifies how to remove points from a point cloud.
Definition: core_3d.hpp:232
SensorPixelsMirrored
Indicates if sensor pixels are mirrored in rangemap.
Definition: core_3d.hpp:260
@ X
Sensor pixel values are mirrored in X (or denoted by u), so that the columns of the range map will be...
@ Y
Sensor pixel values are mirrored in Y (or denoted by v), so that the range map pixel values will be f...
@ XY
Sensor pixel values are mirrored in X and Y.
Factor components to be applied in the 3D domain.
Definition: core_3d.hpp:17
double Z
The Z factor.
Definition: core_3d.hpp:23
double X
The X factor.
Definition: core_3d.hpp:19
Factors3D(double x=1, double y=1, double z=1)
Creates a new Factors3D object.
Definition: core_3d.hpp:31
double Y
The Y factor.
Definition: core_3d.hpp:21