IDS peak ICV v1.1.0
Loading...
Searching...
No Matches
peak_icv_type_traits.hpp
Go to the documentation of this file.
1
11#pragma once
12
14#include <peak_icv_c/types/peak_icv_simple_types.h>
15#include <type_traits>
16#include <array>
17#include <cstddef>
18#include <cstdint>
19#include <vector>
20
21
22// NOLINTBEGIN(readability-identifier-naming)
23struct peak_icv_archive;
24struct peak_icv_calibration_parameters;
25struct peak_icv_calibration_plate;
26struct peak_icv_calibration_result;
27struct peak_icv_calibration_view;
28struct peak_icv_capture_information;
29struct peak_icv_coordinate_system;
30struct peak_icv_deserializer;
31struct peak_icv_downsampling;
32struct peak_icv_drawing_options;
33struct peak_icv_extrinsic_parameters;
34struct peak_icv_image;
35struct peak_icv_intrinsic_parameters;
36struct peak_icv_point_xyz;
37struct peak_icv_point_xyzi;
38struct peak_icv_pointcloud;
39struct peak_icv_undistortion;
40struct peak_icv_region;
41struct peak_icv_reprojection_error;
42struct peak_icv_serializer;
43struct peak_icv_polygon;
44struct peak_icv_coordinate_system;
45
46// NOLINTEND(readability-identifier-naming)
47
48namespace peak
49{
50namespace common
51{
52namespace detail
53{
54template <typename T>
56
57template <typename T>
58class PointT;
59} // namespace detail
60
61} // namespace common
62} // namespace peak
63
64namespace peak
65{
66namespace icv
67{
68class Archive;
69class CaptureInformation;
70class Deserializer;
71class Downsampling;
72class Image;
73class Serializer;
74
75class CalibrationParameters;
76class CalibrationPlate;
77class CalibrationResult;
78class CalibrationView;
79class CoordinateSystem;
80class IntrinsicParameters;
81class ExtrinsicParameters;
82class PointCloudXYZ;
83class PointCloudXYZI;
84class PointXYZ;
85class PointXYZI;
86class Undistortion;
87class Region;
88class ReprojectionError;
89class XYZImage;
90
91namespace detail
92{
93class DrawingOptions;
94
95template <typename PointCloudType, typename PointType>
97
98template <typename PointType>
99class Polygon;
100
101template <typename Type>
102struct is_pointcloud : std::false_type
103{};
104
105template <>
106struct is_pointcloud<peak::icv::PointCloudXYZ> : std::true_type
107{};
108
109template <>
110struct is_pointcloud<peak::icv::PointCloudXYZI> : std::true_type
111{};
112
113template <typename Type>
115
116template <typename Type>
117struct is_threshold_interval : std::false_type
118{};
119
120template <>
122{};
123
124template <>
126{};
127
128template <typename Type>
130
131template <typename Type>
133
134template <>
135struct point_enum_of_<peak_common_point_f>
136{
137 static constexpr peak_icv_point_type value = PEAK_ICV_POINT_TYPE_XY;
138};
139
140template <typename Type>
142
143template <typename T, typename Element>
144struct is_contiguous_container : std::false_type
145{};
146
147template <typename Element, typename Alloc>
148struct is_contiguous_container<std::vector<Element, Alloc>, Element> : std::true_type
149{};
150
151template <typename Element, std::size_t N>
152struct is_contiguous_container<std::array<Element, N>, Element> : std::true_type
153{};
154
155
156} // namespace detail
157} // namespace icv
158} // namespace peak
159
160namespace peak
161{
162namespace common
163{
164namespace detail
165{
166
167template <typename Type>
169
170template <>
172{
173 using type = peak_icv_point_xyz;
174};
175
176template <>
178{
179 using type = peak_icv_point_xyzi;
180};
181
182template <>
184{
185 using type = peak_icv_calibration_result;
186};
187
188template <>
190{
191 using type = peak_icv_extrinsic_parameters;
192};
193
194template <>
196{
197 using type = peak_icv_intrinsic_parameters;
198};
199
200template <>
202{
203 using type = peak_icv_calibration_view;
204};
205
206template <>
208{
209 using type = peak_icv_region;
210};
211
212template <>
214{
215 using type = peak_icv_pointcloud;
216};
217
218template <>
220{
221 using type = peak_icv_pointcloud;
222};
223
224template <>
225struct c_type_of_<peak::icv::detail::PointCloud<peak::icv::PointCloudXYZ, peak::icv::PointXYZ>>
226{
227 using type = peak_icv_pointcloud;
228};
229
230template <>
231struct c_type_of_<peak::icv::detail::PointCloud<peak::icv::PointCloudXYZI, peak::icv::PointXYZI>>
232{
233 using type = peak_icv_pointcloud;
234};
235
236template <>
238{
239 using type = peak_icv_calibration_plate;
240};
241
242template <>
244{
245 using type = peak_icv_image;
246};
247
248template <>
250{
251 using type = peak_icv_image;
252};
253
254template <>
256{
257 using type = peak_icv_undistortion;
258};
259
260template <>
261struct c_type_of_<peak::icv::CaptureInformation>
262{
263 using type = peak_icv_capture_information;
264};
265
266template <>
268{
269 using type = peak_icv_reprojection_error;
270};
271
272template <>
274{
275 using type = peak_icv_polygon;
276};
277
278template <>
280{
281 using type = peak_icv_coordinate_system;
282};
283
284template <>
286{
287 using type = peak_icv_calibration_parameters;
288};
289
290template <>
291struct c_type_of_<peak::icv::Downsampling>
292{
293 using type = peak_icv_downsampling;
294};
295
296template <>
298{
299 using type = peak_icv_archive;
300};
301
302template <>
304{
305 using type = peak_icv_serializer;
306};
307
308template <>
310{
311 using type = peak_icv_deserializer;
312};
313
314template <>
316{
317 using type = peak_icv_drawing_options;
318};
319
320template <typename Type>
322
323
324} // namespace detail
325} // namespace common
326} // namespace peak
Represents a continuous numeric interval with inclusive lower and upper bounds.
A simple key-value store that implements the IArchive interface.
Holds a complete set of camera calibration parameters, including both intrinsic and extrinsic data.
Calibration plate representation holding the world coordinates of the reference points on a calibrati...
Holds the results of a camera calibration.
Represents a single observation of a calibration plate in an image.
Represents the coordinate system of a calibration view projected into the image plane....
A deserializer that reads serialized data and converts it to IArchive objects.
This class stores and provides access to the extrinsic parameters, which include the translation,...
For detailed information about the use of ids_peak_icv Image refer to the Image Guide.
The intrinsic parameters contain the necessary information to use the camera calibration.
Represents a point cloud consisting of points with x, y, and z coordinates.
Represents a point cloud consisting of points with x, y, z coordinates and an intensity value.
A point consists of x, y and z coordinate.
A point consists of x, y, z coordinates and intensity meta data.
Represents a region defined by a set of points in the image plane.
Represents the reprojection error for a marker point in the image.
A serializer that serializes IArchive objects.
Represents an undistortion transformation for images.
Represents a three-channel image with Cartesian coordinates derived from an undistorted depth map.
Represents a generic point cloud interface for spatial data types.
A polygon is a two-dimensional geometric shape that is made up of a finite number of straight line se...
typename c_type_of_< Type >::type c_type_of_t
constexpr bool is_threshold_interval_v
peak::common::detail::c_type_of_t< Type > * handle_of_t