IDS peak ICV v1.3.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_hdr;
35struct peak_icv_tone_mapping;
36struct peak_icv_image;
37struct peak_icv_intrinsic_parameters;
38struct peak_icv_point_xyz;
39struct peak_icv_point_xyzi;
40struct peak_icv_pointcloud;
41struct peak_icv_undistortion;
42struct peak_icv_region;
43struct peak_icv_reprojection_error;
44struct peak_icv_serializer;
45struct peak_icv_polygon;
46struct peak_icv_coordinate_system;
47struct peak_icv_code_reader_result;
48
49// NOLINTEND(readability-identifier-naming)
50
51namespace peak
52{
53namespace common
54{
55namespace detail
56{
57template <typename T>
59
60template <typename T>
61class PointT;
62} // namespace detail
63
64} // namespace common
65} // namespace peak
66
67namespace peak
68{
69namespace icv
70{
71class Archive;
72class CaptureInformation;
73class Deserializer;
74class Downsampling;
75class Image;
76class Serializer;
77
78class CalibrationParameters;
79class CalibrationPlate;
80class CalibrationResult;
81class CalibrationView;
82class CoordinateSystem;
83class IntrinsicParameters;
84class ExtrinsicParameters;
85class PointCloudXYZ;
86class PointCloudXYZI;
87class PointXYZ;
88class PointXYZI;
89class Undistortion;
90class Region;
91class ReprojectionError;
92class XYZImage;
93
94namespace experimental
95{
96class CodeReaderResult;
97class HDR;
98class ToneMapping;
99} // namespace experimental
100
101namespace detail
102{
103class DrawingOptions;
104
105template <typename PointCloudType, typename PointType>
107
108template <typename PointType>
110
111template <typename Type>
112struct is_pointcloud : std::false_type
113{};
114
115template <>
116struct is_pointcloud<peak::icv::PointCloudXYZ> : std::true_type
117{};
118
119template <>
120struct is_pointcloud<peak::icv::PointCloudXYZI> : std::true_type
121{};
122
123template <typename Type>
125
126template <typename Type>
127struct is_threshold_interval : std::false_type
128{};
129
130template <>
132{};
133
134template <>
136{};
137
138template <typename Type>
140
141template <typename Type>
143
144template <>
145struct point_enum_of_<peak_common_point_f>
146{
147 static constexpr peak_icv_point_type value = PEAK_ICV_POINT_TYPE_XY;
148};
149
150template <typename Type>
152
153template <typename T, typename Element>
154struct is_contiguous_container : std::false_type
155{};
156
157template <typename Element, typename Alloc>
158struct is_contiguous_container<std::vector<Element, Alloc>, Element> : std::true_type
159{};
160
161template <typename Element, std::size_t N>
162struct is_contiguous_container<std::array<Element, N>, Element> : std::true_type
163{};
164
165
166} // namespace detail
167} // namespace icv
168} // namespace peak
169
170namespace peak
171{
172namespace common
173{
174namespace detail
175{
176
177template <typename Type>
179
180template <>
182{
183 using type = peak_icv_point_xyz;
184};
185
186template <>
188{
189 using type = peak_icv_point_xyzi;
190};
191
192template <>
194{
195 using type = peak_icv_calibration_result;
196};
197
198template <>
200{
201 using type = peak_icv_extrinsic_parameters;
202};
203
204template <>
206{
207 using type = peak_icv_intrinsic_parameters;
208};
209
210template <>
212{
213 using type = peak_icv_calibration_view;
214};
215
216template <>
218{
219 using type = peak_icv_region;
220};
221
222template <>
224{
225 using type = peak_icv_pointcloud;
226};
227
228template <>
230{
231 using type = peak_icv_pointcloud;
232};
233
234template <>
235struct c_type_of_<peak::icv::detail::PointCloud<peak::icv::PointCloudXYZ, peak::icv::PointXYZ>>
236{
237 using type = peak_icv_pointcloud;
238};
239
240template <>
241struct c_type_of_<peak::icv::detail::PointCloud<peak::icv::PointCloudXYZI, peak::icv::PointXYZI>>
242{
243 using type = peak_icv_pointcloud;
244};
245
246template <>
248{
249 using type = peak_icv_calibration_plate;
250};
251
252template <>
254{
255 using type = peak_icv_image;
256};
257
258template <>
260{
261 using type = peak_icv_image;
262};
263
264template <>
266{
267 using type = peak_icv_undistortion;
268};
269
270template <>
272{
273 using type = peak_icv_hdr;
274};
275
276template <>
278{
279 using type = peak_icv_tone_mapping;
280};
281
282template <>
283struct c_type_of_<peak::icv::CaptureInformation>
284{
285 using type = peak_icv_capture_information;
286};
287
288template <>
290{
291 using type = peak_icv_reprojection_error;
292};
293
294template <>
296{
297 using type = peak_icv_polygon;
298};
299
300template <>
302{
303 using type = peak_icv_coordinate_system;
304};
305
306template <>
308{
309 using type = peak_icv_calibration_parameters;
310};
311
312template <>
313struct c_type_of_<peak::icv::Downsampling>
314{
315 using type = peak_icv_downsampling;
316};
317
318template <>
320{
321 using type = peak_icv_archive;
322};
323
324template <>
326{
327 using type = peak_icv_serializer;
328};
329
330template <>
332{
333 using type = peak_icv_deserializer;
334};
335
336template <>
338{
339 using type = peak_icv_drawing_options;
340};
341
342template <>
344{
345 using type = peak_icv_code_reader_result;
346};
347
348template <typename Type>
350
351
352} // namespace detail
353} // namespace common
354} // namespace peak
Represents a continuous numeric interval with inclusive lower and upper bounds.
A 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....
Deserializer for reading serialized data and converting it into an IArchive object.
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.
Serializer for writing IArchive objects to an output stream.
Represents an undistortion transformation for images.
Represents a three-channel image encoding cartesian coordinates (x, y, z) of a 3D point.
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...
Class that represents a code that was found in an image.
Performs High Dynamic Range (HDR) image reconstruction.
Performs tone mapping on HDR images.
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