77 const std::remove_cvref_t<L> & line,
78 const __impl::LineStub<typename std::remove_cvref_t<L>::numeric_type> & otherLine,
79 const __impl::PointStub<typename std::remove_cvref_t<L>::numeric_type> & point,
80 typename std::remove_cvref_t<L>::numeric_type number
84 {std::remove_cvref_t<L>(number, number)} -> std::same_as<std::remove_cvref_t<L>>;
85 {line.direction()} ->
IPoint;
86 {line.isVertical()} -> std::same_as<bool>;
87 {line.isHorizontal()} -> std::same_as<bool>;
88 {line.slope()} -> std::convertible_to<double>;
89 {line.yIntercept()} -> std::same_as<fishnet::Option<double>>;
90 {line.contains(point)}-> std::same_as<bool>;
91 {line.isLeft(point)} -> std::same_as<bool>;
92 {line.isRight(point)} -> std::same_as<bool>;
93 {line.isParallel(otherLine)} -> std::same_as<bool>;
94 {line.intersects(otherLine)} ->std::same_as<
bool>;
96 {line.toLine()} -> std::same_as<std::remove_cvref_t<L>>;