11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
16PROMEKI_NAMESPACE_BEGIN
33template <
typename T,
size_t N>
class Line {
36 using Pt = Point<T, N>;
46 Line(
const Pt &s,
const Pt &e) : _start(s), _end(e) {};
53 Line(
const Pt &&s,
const Pt &&e) : _start(std::move(s)), _end(std::move(e)) {}
59 const Pt &start()
const {
return _start; }
65 const Pt &end()
const {
return _end; }
73using Line2Di32 = Line<int32_t, 2>;
75using Line2Df = Line<float, 2>;
77using Line2Dd = Line<double, 2>;
79using Line3Di32 = Line<int32_t, 3>;
81using Line3Df = Line<float, 3>;
83using Line3Dd = Line<double, 3>;
85using Line4Di32 = Line<int32_t, 4>;
87using Line4Df = Line<float, 4>;
89using Line4Dd = Line<double, 4>;