Interface for a segment A segment is formed between two points p and q, containing only the points on the line between the points.
More...
template<typename S>
const std::remove_cvref_t<S> & segment,
const __impl::SegmentStub<typename std::remove_cvref_t<S>::numeric_type> & otherSegment,
const __impl::PointStub<typename std::remove_cvref_t<S>::numeric_type> & point,
const __impl::LineStub<typename std::remove_cvref_t<S>::numeric_type> & line
){
{segment.q()} -> IPoint;
{segment.direction()} -> IPoint;
{segment.length()} -> std::convertible_to<double>;
{segment.upperEndpoint()} -> IPoint;
{segment.lowerEndpoint()} -> IPoint;
{segment.leftEndpoint()} -> IPoint;
{segment.rightEndpoint()} -> IPoint;
{segment.isEndpoint(point)} -> std::same_as<bool>;
{segment.isValid()} -> std::same_as<bool>;
{segment.overlaps(otherSegment)} -> std::same_as<bool>;
{segment.contains(point)} -> std::same_as<bool>;
{segment.contains(otherSegment)} -> std::same_as<bool>;
{segment.touches(otherSegment)} -> std::same_as<bool>;
{segment.distance(point)} -> std::convertible_to<double>;
{segment.distance(otherSegment)} -> std::convertible_to<double>;
{segment.isParallel(line)} -> std::same_as<bool>;
{segment.isParallel(otherSegment)} -> std::same_as<bool>;
{segment.intersects(line)} -> std::same_as<bool>;
{segment.intersects(otherSegment)} -> std::same_as<bool>;
{segment.intersection(line)} -> IPointOptional;
{segment.intersection(otherSegment)} -> IPointOptional;
{segment.toLine()} -> ILine;
{segment.flip()} -> std::same_as<std::remove_cvref_t<S>>;
}
Definition GeometryBase.hpp:11
Interface for a point.
Definition IPoint.hpp:92
Interface for a segment A segment is formed between two points p and q, containing only the points on...
Definition ISegment.hpp:105
Interface for a segment A segment is formed between two points p and q, containing only the points on the line between the points.
- Template Parameters
-
| S | segment implementation type |