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" 15 #pragma region Point2D 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 87 #pragma region Point3D 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 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 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 with confidence.
Definition: point_3d_c.hpp:22
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
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
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
Root namespace for the Image Manager interface.
Definition: version.hpp:11
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
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
Multi-purpose 3D vector class.
Definition: point_3d.hpp:21
Multi-purpose 2D vector class.
Definition: point_2d.hpp:19
Multi-purpose 3D vector class (homogeneous).
Definition: point_3d_h.hpp:21
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