3#include "../../global.hpp"
5#include "../../point_2d.hpp"
6#include "../../point_3d.hpp"
7#include "../../point_3d_h.hpp"
9#include "detail_block.hpp"
28 template <size_t I, class T, std::enable_if_t<less<I, 2>::value,
int> = 0>
46 template <size_t I, class T, std::enable_if_t<less<I, 2>::value,
int> = 0>
65 template <size_t I, class T, std::enable_if_t<less<I, 2>::value,
int> = 0>
66 void internal_set(
Point2D<T> &point,
const T *val)
noexcept
68 assert(val !=
nullptr);
74 struct ComponentOf<Point2D<Type>, void>
80 struct NumComponentsOf<Point2D<Type>, void>
82 static constexpr size_t value = 2;
85#pragma endregion Point2D
100 template <size_t I, class T, std::enable_if_t<less<I, 3>::value,
int> = 0>
118 template <size_t I, class T, std::enable_if_t<less<I, 3>::value,
int> = 0>
137 template <size_t I, class T, std::enable_if_t<less<I, 3>::value,
int> = 0>
138 void internal_set(
Point3D<T> &point,
const T *val)
noexcept
140 assert(val !=
nullptr);
145 template <
class Type>
146 struct ComponentOf<Point3D<Type>, void>
151 template <
class Type>
152 struct NumComponentsOf<Point3D<Type>, void>
154 static constexpr size_t value = 3;
157#pragma endregion Point3D
159#pragma region Point3DH
173 template <size_t I, class T, std::enable_if_t<less<I, 4>::value,
int> = 0>
191 template <size_t I, class T, std::enable_if_t<less<I, 4>::value,
int> = 0>
210 template <size_t I, class T, std::enable_if_t<less<I, 4>::value,
int> = 0>
211 void internal_set(
Point3DH<T> &point,
const T *val)
noexcept
213 assert(val !=
nullptr);
218 template <
class Type>
219 struct ComponentOf<Point3DH<Type>, void>
224 template <
class Type>
225 struct NumComponentsOf<Point3DH<Type>, void>
227 static constexpr size_t value = 4;
230#pragma endregion Point3DH
232#pragma region Point3DC
246 template <size_t I, class T, std::enable_if_t<less<I, 4>::value,
int> = 0>
264 template <size_t I, class T, std::enable_if_t<less<I, 4>::value,
int> = 0>
283 template <size_t I, class T, std::enable_if_t<less<I, 4>::value,
int> = 0>
284 void internal_set(
Point3DC<T> &point,
const T *val)
noexcept
286 assert(val !=
nullptr);
291 template <
class Type>
292 struct ComponentOf<Point3DC<Type>, void>
297 template <
class Type>
298 struct NumComponentsOf<Point3DC<Type>, void>
300 static constexpr size_t value = 4;
303#pragma endregion Point3DC
Multi-purpose 2D vector class.
Definition: point_2d.hpp:20
CVB_BEGIN_INLINE_NS auto get(const Point2D< T > &point) noexcept -> decltype(point[I])
Get's the I-th element of the Point2D<T>.
Definition: detail_block_point_helper.hpp:29
void set(Point2D< T > &point, const T &val) noexcept
Set's the value of the I-th element in the Point2D<T> point.
Definition: detail_block_point_helper.hpp:47
Multi-purpose 3D vector class with confidence.
Definition: point_3d_c.hpp:23
void set(Point3DC< T > &point, const T &val) noexcept
Set's the value of the I-th element in the Point3DC<T> point.
Definition: detail_block_point_helper.hpp:265
auto get(const Point3DC< T > &point) noexcept -> decltype(point[I])
Get's the I-th element of the Point3DC<T>.
Definition: detail_block_point_helper.hpp:247
Multi-purpose 3D vector class (homogeneous).
Definition: point_3d_h.hpp:22
void set(Point3DH< T > &point, const T &val) noexcept
Set's the value of the I-th element in the Point3DH<T> point.
Definition: detail_block_point_helper.hpp:192
auto get(const Point3DH< T > &point) noexcept -> decltype(point[I])
Get's the I-th element of the Point3DH<T>.
Definition: detail_block_point_helper.hpp:174
Multi-purpose 3D vector class.
Definition: point_3d.hpp:22
void set(Point3D< T > &point, const T &val) noexcept
Set's the value of the I-th element in the Point3D<T> point.
Definition: detail_block_point_helper.hpp:119
auto get(const Point3D< T > &point) noexcept -> decltype(point[I])
Get's the I-th element of the Point3D<T>.
Definition: detail_block_point_helper.hpp:101
Root namespace for the Image Manager interface.
Definition: c_barcode.h:24