Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
fishnet::geometry::ILine Concept Reference

Interface for a line A line is defined through two points p and q, defining a direction vector. More...

#include <ILine.hpp>

Concept definition

template<typename L>
const std::remove_cvref_t<L> & line,
const __impl::LineStub<typename std::remove_cvref_t<L>::numeric_type> & otherLine,
const __impl::PointStub<typename std::remove_cvref_t<L>::numeric_type> & point,
typename std::remove_cvref_t<L>::numeric_type number
){
{line.p()} -> IPoint;
{line.q()} -> IPoint;
{std::remove_cvref_t<L>(number, number)} -> std::same_as<std::remove_cvref_t<L>>;
{line.direction()} -> IPoint;
{line.isVertical()} -> std::same_as<bool>;
{line.isHorizontal()} -> std::same_as<bool>;
{line.slope()} -> std::convertible_to<double>;
{line.yIntercept()} -> std::same_as<fishnet::Option<double>>;
{line.contains(point)}-> std::same_as<bool>;
{line.isLeft(point)} -> std::same_as<bool>;
{line.isRight(point)} -> std::same_as<bool>;
{line.isParallel(otherLine)} -> std::same_as<bool>;
{line.intersects(otherLine)} ->std::same_as<bool>;
{line.intersection(otherLine)} -> IPointOptional;
{line.toLine()} -> std::same_as<std::remove_cvref_t<L>>;
}
Definition GeometryBase.hpp:11
Interface for a line A line is defined through two points p and q, defining a direction vector.
Definition ILine.hpp:76
Interface for a point.
Definition IPoint.hpp:92

Detailed Description

Interface for a line A line is defined through two points p and q, defining a direction vector.

Template Parameters
LLine implementation type