|
| constexpr | Point ()=default |
| | Creates the origin point (0, 0).
|
| constexpr | Point (NumberType x, NumberType y) |
| | Creates a point from its x and y coordinates.
|
template<class X, class Y, class A>
requires (std::constructible_from<NumberType, const X&> && std::constructible_from<NumberType, const Y&> &&
std::constructible_from<LabelType, A&&>) |
| constexpr | Point (const X &x, const Y &y, A &&label) |
| | Creates a point from its coordinates and label.
|
| template<PointConcept OtherPoint> |
| constexpr | Point (const OtherPoint &other) |
| | Converts a point with different coordinate and label types.
|
| constexpr const NumberType & | x () const |
| | Returns the x coordinate.
|
| NumberType & | x () |
| constexpr const NumberType & | y () const |
| | Returns the y coordinate.
|
| NumberType & | y () |
template<class A = LabelType>
requires (detail::has_label_v<A>) |
| constexpr A & | label () const |
| | Returns the stored label.
|
| constexpr const NumberType & | operator[] (std::size_t index) const |
| | Returns coordinate 0 for x and 1 for y.
|
| NumberType & | operator[] (std::size_t index) |
| | Returns coordinate 0 for x and 1 for y.
|
| constexpr const NumberType & | get (std::ptrdiff_t index) const |
| | Cyclic access: same as operator[] but index is taken modulo size(); negative indices wrap from the end.
|
| constexpr NumberType & | get (std::ptrdiff_t index) |
| constexpr std::ptrdiff_t | index (const NumberType &value) const |
| | Returns the smallest index i with (*this)[i] == value, or -1 if no coordinate equals value.
|
| constexpr auto | begin () |
| | Returns an iterator to the first coordinate.
|
| constexpr auto | begin () const |
| constexpr auto | cbegin () const |
| | Returns an iterator to the first coordinate.
|
| constexpr auto | end () |
| | Returns an iterator past the last coordinate.
|
| constexpr auto | end () const |
| constexpr auto | cend () const |
| | Returns an iterator past the last coordinate.
|
| constexpr Point | operator- () const |
| | Returns the point mirrored through the origin.
|
| template<PointConcept OtherPoint> |
| constexpr bool | operator== (const OtherPoint &other) const |
| | Tests coordinate equality.
|
| template<AnyShapeConcept OtherShape> |
| constexpr bool | samePointSet (const OtherShape &other) const |
| | Tests whether another shape defines exactly the same point set.
|
| template<PointConcept OtherPoint> |
| constexpr std::strong_ordering | operator<=> (const OtherPoint &other) const |
| | Provides lexicographic ordering on (x, y).
|
| constexpr Rectangle< Point > | bbox () const |
| | Returns the bounding box of the point.
|
| template<std::floating_point ResultNumber = double> |
| constexpr Rectangle< Point< ResultNumber > > | fbox () const |
| | Returns a floating-point bounding box containing the point.
|
| constexpr std::array< Point, 1 > | vertices () const |
| | Returns the unique vertex of the point-shaped object.
|
| constexpr Convex< Point > | convexHull () const |
| | Returns the convex hull of the point.
|
| constexpr std::array< Segment< Point >, 0 > | edges () const |
| | Returns the point boundary edges.
|
| constexpr std::array< OrientedSegment< Point >, 0 > | orientedEdges () const |
| | Returns the oriented boundary edges.
|
| template<PointConcept OtherPoint> |
| constexpr bool | contains (const OtherPoint &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<SegmentConcept OtherSegment> |
| constexpr bool | contains (const OtherSegment &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<OrientedSegmentConcept OtherOrientedSegment> |
| constexpr bool | contains (const OtherOrientedSegment &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<LineConcept OtherLine> |
| constexpr bool | contains (const OtherLine &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<OrientedLineConcept OtherOrientedLine> |
| constexpr bool | contains (const OtherOrientedLine &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<RayConcept OtherRay> |
| constexpr bool | contains (const OtherRay &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | contains (const OtherHalfplane &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<RectangleConcept OtherRectangle> |
| constexpr bool | contains (const OtherRectangle &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<TriangleConcept OtherTriangle> |
| constexpr bool | contains (const OtherTriangle &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<ConvexConcept OtherConvex> |
| constexpr bool | contains (const OtherConvex &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PolygonConcept OtherPolygon> |
| constexpr bool | contains (const OtherPolygon &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<DiskConcept OtherDisk> |
| constexpr bool | contains (const OtherDisk &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| constexpr bool | contains (const Shape< Point< TNumber, TLabel > > &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| constexpr bool | boundaryContains (const Shape< Point< TNumber, TLabel > > &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<class EmptyPoint> |
| constexpr bool | contains (const EmptyShape< EmptyPoint > &) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<class EmptyPoint> |
| constexpr bool | boundaryContains (const EmptyShape< EmptyPoint > &) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<class EmptyPoint> |
| constexpr bool | interiorContains (const EmptyShape< EmptyPoint > &) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<PointConcept OtherPoint> |
| constexpr bool | boundaryContains (const OtherPoint &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<SegmentConcept OtherSegment> |
| constexpr bool | boundaryContains (const OtherSegment &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<OrientedSegmentConcept OtherOrientedSegment> |
| constexpr bool | boundaryContains (const OtherOrientedSegment &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<LineConcept OtherLine> |
| constexpr bool | boundaryContains (const OtherLine &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<OrientedLineConcept OtherOrientedLine> |
| constexpr bool | boundaryContains (const OtherOrientedLine &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<RayConcept OtherRay> |
| constexpr bool | boundaryContains (const OtherRay &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | boundaryContains (const OtherHalfplane &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<RectangleConcept OtherRectangle> |
| constexpr bool | boundaryContains (const OtherRectangle &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<TriangleConcept OtherTriangle> |
| constexpr bool | boundaryContains (const OtherTriangle &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PointConcept OtherPoint> |
| constexpr bool | interiorContains (const OtherPoint &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<SegmentConcept OtherSegment> |
| constexpr bool | interiorContains (const OtherSegment &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<OrientedSegmentConcept OtherOrientedSegment> |
| constexpr bool | interiorContains (const OtherOrientedSegment &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<LineConcept OtherLine> |
| constexpr bool | interiorContains (const OtherLine &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<OrientedLineConcept OtherOrientedLine> |
| constexpr bool | interiorContains (const OtherOrientedLine &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<RayConcept OtherRay> |
| constexpr bool | interiorContains (const OtherRay &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | interiorContains (const OtherHalfplane &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<RectangleConcept OtherRectangle> |
| constexpr bool | interiorContains (const OtherRectangle &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<TriangleConcept OtherTriangle> |
| constexpr bool | interiorContains (const OtherTriangle &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<ConvexConcept OtherConvex> |
| constexpr bool | interiorContains (const OtherConvex &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<PolygonConcept OtherPolygon> |
| constexpr bool | interiorContains (const OtherPolygon &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<DiskConcept OtherDisk> |
| constexpr bool | interiorContains (const OtherDisk &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<DiskConcept OtherDisk> |
| constexpr bool | boundaryContains (const OtherDisk &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<ConvexConcept OtherConvex> |
| constexpr bool | boundaryContains (const OtherConvex &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PolygonConcept OtherPolygon> |
| constexpr bool | boundaryContains (const OtherPolygon &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PointConcept OtherPoint> |
| constexpr bool | separates (const OtherPoint &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | separates (const OtherHalfplane &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<RectangleConcept OtherRectangle> |
| constexpr bool | separates (const OtherRectangle &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<TriangleConcept OtherTriangle> |
| constexpr bool | separates (const OtherTriangle &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<DiskConcept OtherDisk> |
| constexpr bool | separates (const OtherDisk &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<ConvexConcept OtherConvex> |
| constexpr bool | separates (const OtherConvex &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PolygonConcept OtherPolygon> |
| constexpr bool | separates (const OtherPolygon &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<MonotoneChainConcept OtherChain> |
| constexpr bool | contains (const OtherChain &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<MonotoneChainConcept OtherChain> |
| constexpr bool | boundaryContains (const OtherChain &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<MonotoneChainConcept OtherChain> |
| constexpr bool | interiorContains (const OtherChain &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<MonotoneChainConcept OtherChain> |
| constexpr bool | separates (const OtherChain &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | contains (const OtherPolyline &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | boundaryContains (const OtherPolyline &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | interiorContains (const OtherPolyline &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | separates (const OtherPolyline &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | contains (const OtherRegion &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | boundaryContains (const OtherRegion &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | interiorContains (const OtherRegion &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | separates (const OtherRegion &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PolygonWithHolesConcept OtherRegion> |
| constexpr bool | contains (const OtherRegion &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PolygonWithHolesConcept OtherRegion> |
| constexpr bool | boundaryContains (const OtherRegion &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PolygonWithHolesConcept OtherRegion> |
| constexpr bool | interiorContains (const OtherRegion &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<PolygonWithHolesConcept OtherRegion> |
| bool | separates (const OtherRegion &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PolygonSetConcept OtherSet> |
| constexpr bool | contains (const OtherSet &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PolygonSetConcept OtherSet> |
| constexpr bool | boundaryContains (const OtherSet &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PolygonSetConcept OtherSet> |
| constexpr bool | interiorContains (const OtherSet &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<PolygonSetConcept OtherSet> |
| bool | separates (const OtherSet &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PointConcept OtherPoint> |
| constexpr bool | intersects (const OtherPoint &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| constexpr bool | intersects (const Shape< Point< TNumber, TLabel > > &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
template<typename OtherShape>
requires (!PointConcept<OtherShape> && detail::shapeRank<OtherShape> > detail::shapeRank<Point>) |
| constexpr bool | intersects (const OtherShape &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<class EmptyPoint> |
| constexpr bool | intersects (const EmptyShape< EmptyPoint > &) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<PointConcept OtherPoint> |
| constexpr bool | interiorsIntersect (const OtherPoint &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| constexpr bool | interiorsIntersect (const Shape< Point< TNumber, TLabel > > &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
template<typename OtherShape>
requires (!PointConcept<OtherShape> && detail::shapeRank<OtherShape> > detail::shapeRank<Point>) |
| constexpr bool | interiorsIntersect (const OtherShape &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<class EmptyPoint> |
| constexpr bool | interiorsIntersect (const EmptyShape< EmptyPoint > &) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<SegmentConcept OtherSegment> |
| constexpr bool | separates (const OtherSegment &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<OrientedSegmentConcept OtherOrientedSegment> |
| constexpr bool | separates (const OtherOrientedSegment &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<LineConcept OtherLine> |
| constexpr bool | separates (const OtherLine &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<OrientedLineConcept OtherOrientedLine> |
| constexpr bool | separates (const OtherOrientedLine &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<RayConcept OtherRay> |
| constexpr bool | separates (const OtherRay &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PointConcept OtherPoint> |
| constexpr bool | crosses (const OtherPoint &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| constexpr bool | crosses (const Shape< Point< TNumber, TLabel > > &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
template<typename OtherShape>
requires (!PointConcept<OtherShape> && detail::shapeRank<OtherShape> > detail::shapeRank<Point>) |
| constexpr bool | crosses (const OtherShape &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<class EmptyPoint> |
| constexpr bool | crosses (const EmptyShape< EmptyPoint > &) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr std::optional< Point< ResultNumber, LabelType > > | intersection (const OtherPoint &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
template<class ResultNumber = NumberType, typename OtherShape>
requires (!PointConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<Point>) && requires(const OtherShape& o,
const Point& self) { o.template intersection<ResultNumber>(self); }) |
| constexpr auto | intersection (const OtherShape &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = NumberType, class EmptyPoint> |
| constexpr EmptyShape< EmptyPoint > | intersection (const EmptyShape< EmptyPoint > &) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | squaredDistance (const OtherPoint &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = NumberType, RectangleConcept OtherRectangle> |
| constexpr auto | squaredDistance (const OtherRectangle &other) const |
| | Returns the squared distance to an axis-aligned rectangle without division.
|
template<class ResultNumber = division_result_t<NumberType>, typename OtherShape>
requires (!RectangleConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<Point>) && requires(const
OtherShape& o, const Point& self) { o.template squaredDistance<ResultNumber>(self); }) |
| constexpr auto | squaredDistance (const OtherShape &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = double, class DiskPointType, class DiskLabel> |
| detail::floating_result_t< ResultNumber > | squaredDistance (const Disk< DiskPointType, DiskLabel > &disk) const |
| | Returns the squared Euclidean distance to a disk.
|
template<class ResultNumber = NumberType, BoundedPolygonalConcept OtherShape>
requires detail::ClosestPairConcept<Point<TNumber, TLabel>, OtherShape> |
| constexpr auto | closestSegments (const OtherShape &other) const |
| | Returns the pair of elements realizing the distance, nothing when the shapes meet.
|
template<class ResultNumber = division_result_t<NumberType>, class OtherShape>
requires detail::ClosestPointsPairConcept<Point<TNumber, TLabel>, OtherShape> |
| constexpr auto | closestPoints (const OtherShape &other) const |
| | Returns the pair of points realizing the distance, nothing when the shapes meet.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | squaredHausdorffDistance (const OtherPoint &other) const |
| | Returns the squared Hausdorff distance to another point.
|
template<class ResultNumber = NumberType, typename OtherShape>
requires ((detail::shapeRank<OtherShape> > detail::shapeRank<Point>) && requires(const OtherShape& o, const Point& self)
{ o.template squaredHausdorffDistance<ResultNumber>(self); }) |
| constexpr auto | squaredHausdorffDistance (const OtherShape &other) const |
| | Returns the squared Hausdorff distance to the given shape.
|
| template<class ApproximateNumber = double, PointConcept OtherPoint> |
| ApproximateNumber | distance (const OtherPoint &other) const |
| | Returns the Euclidean distance to another point.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | distanceL1 (const OtherPoint &other) const |
| | Returns the Manhattan distance to another point.
|
| template<class ResultNumber = NumberType, RectangleConcept OtherRectangle> |
| constexpr auto | distanceL1 (const OtherRectangle &other) const |
| | Returns the Manhattan distance to an axis-aligned rectangle without division.
|
template<class ResultNumber = division_result_t<NumberType>, typename OtherShape>
requires (!PointConcept<OtherShape> && !RectangleConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<Point>) &&
requires(const OtherShape& o, const Point& self) { o.template distanceL1<ResultNumber>(self); }) |
| constexpr auto | distanceL1 (const OtherShape &other) const |
| | Returns the Manhattan distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, PointConcept OtherPoint> |
| constexpr auto | intersection (const Shape< OtherPoint > &other) const |
| | Returns the intersection of the two shapes (A ∩ B), re-dispatching through the wrapper's own intersection.
|
| template<class ResultNumber = double, PointConcept OtherPoint> |
| constexpr auto | distanceL1 (const Shape< OtherPoint > &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | distanceLInf (const OtherPoint &other) const |
| | Returns the Chebyshev distance to another point.
|
| template<class ResultNumber = NumberType, RectangleConcept OtherRectangle> |
| constexpr auto | distanceLInf (const OtherRectangle &other) const |
| | Returns the Chebyshev distance to an axis-aligned rectangle without division.
|
template<class ResultNumber = division_result_t<NumberType>, typename OtherShape>
requires (!PointConcept<OtherShape> && !RectangleConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<Point>) &&
requires(const OtherShape& o, const Point& self) { o.template distanceLInf<ResultNumber>(self); }) |
| constexpr auto | distanceLInf (const OtherShape &other) const |
| | Returns the Chebyshev distance to the given shape.
|
| template<class ResultNumber = double, PointConcept OtherPoint> |
| constexpr auto | distanceLInf (const Shape< OtherPoint > &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | hausdorffDistanceL1 (const OtherPoint &other) const |
| | Returns the Manhattan (L1) Hausdorff distance to another point.
|
template<class ResultNumber = NumberType, typename OtherShape>
requires (!PointConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<Point>) && requires(const OtherShape& o,
const Point& self) { o.template hausdorffDistanceL1<ResultNumber>(self); }) |
| constexpr auto | hausdorffDistanceL1 (const OtherShape &other) const |
| | Returns the Manhattan (L1) Hausdorff distance to the given shape.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | hausdorffDistanceL1 (const Shape< OtherPoint > &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | hausdorffDistanceLInf (const OtherPoint &other) const |
| | Returns the Chebyshev (LInf) Hausdorff distance to another point.
|
template<class ResultNumber = NumberType, typename OtherShape>
requires (!PointConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<Point>) && requires(const OtherShape& o,
const Point& self) { o.template hausdorffDistanceLInf<ResultNumber>(self); }) |
| constexpr auto | hausdorffDistanceLInf (const OtherShape &other) const |
| | Returns the Chebyshev (LInf) Hausdorff distance to the given shape.
|
| template<class ResultNumber = NumberType, PointConcept OtherPoint> |
| constexpr auto | hausdorffDistanceLInf (const Shape< OtherPoint > &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = double, class DiskPointType, class DiskLabel> |
| detail::floating_result_t< ResultNumber > | distanceL1 (const Disk< DiskPointType, DiskLabel > &disk) const |
| | Returns the Manhattan (L1) distance to a disk.
|
| template<class ResultNumber = double, class DiskPointType, class DiskLabel> |
| detail::floating_result_t< ResultNumber > | distanceLInf (const Disk< DiskPointType, DiskLabel > &disk) const |
| | Returns the Chebyshev (LInf) distance to a disk.
|
template<class OtherShape>
requires MinkowskiSummableConcept<Point<TNumber, TLabel>, OtherShape> |
| constexpr auto | minkowskiSum (const OtherShape &other) const |
| | Returns the Minkowski sum of this shape and another (A ⊕ B).
|
template<class OtherShape>
requires MinkowskiSummableConcept<Point<TNumber, TLabel>, OtherShape> |
| constexpr auto | minkowskiErosion (const OtherShape &other) const |
| | Returns the Minkowski erosion of this shape by another (A ⊖ B).
|
| template<PointConcept OtherPoint> |
| constexpr Point & | operator+= (const OtherPoint &other) |
| | Translates a point by another point in place.
|
| template<PointConcept OtherPoint> |
| constexpr Point & | operator-= (const OtherPoint &other) |
| | Translates a point by the opposite of another point in place.
|
| template<class OtherNumber> |
| constexpr Point & | operator*= (const OtherNumber scalar) |
| | Scales a point by a scalar in place.
|
| template<class OtherNumber> |
| constexpr Point & | operator/= (const OtherNumber scalar) |
| | Scales a point by a scalar division in place.
|
| constexpr Point | swapped () const |
| | Returns the point with x and y swapped.
|
| constexpr Point | rotated90 (int k=1) const |
| | Returns the point rotated by 90k degrees around the origin.
|
| constexpr void | rotate90 (int k=1) |
| | Rotates the point by 90k degrees around the origin in place.
|
| template<class OtherNumber> |
| constexpr Point | scaledUpX (const OtherNumber scalar) const |
| | Returns the point with its x-coordinate multiplied by a scalar.
|
| template<class OtherNumber> |
| constexpr void | scaleUpX (const OtherNumber scalar) |
| | Multiplies the point's x-coordinate by a scalar in place.
|
| template<class OtherNumber> |
| constexpr Point | scaledUpY (const OtherNumber scalar) const |
| | Returns the point with its y-coordinate multiplied by a scalar.
|
| template<class OtherNumber> |
| constexpr void | scaleUpY (const OtherNumber scalar) |
| | Multiplies the point's y-coordinate by a scalar in place.
|
| template<class OtherNumber> |
| constexpr Point | scaledDownX (const OtherNumber scalar) const |
| | Returns the point with its x-coordinate divided by a scalar.
|
| template<class OtherNumber> |
| constexpr void | scaleDownX (const OtherNumber scalar) |
| | Divides the point's x-coordinate by a scalar in place.
|
| template<class OtherNumber> |
| constexpr Point | scaledDownY (const OtherNumber scalar) const |
| | Returns the point with its y-coordinate divided by a scalar.
|
| template<class OtherNumber> |
| constexpr void | scaleDownY (const OtherNumber scalar) |
| | Divides the point's y-coordinate by a scalar in place.
|
| constexpr HalfplaneIntersection< Point< NumberType, LabelType > > | asHalfplaneIntersection () const |
| | Returns the point as a (degenerate) half-plane intersection.
|
| template<class ResultNumber = NumberType> |
| constexpr Line< Point< ResultNumber, LabelType > > | dual () const |
| | Returns the dual Line.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr Line< Point< ResultNumber, LabelType > > | polar () const |
| | Returns the polar Line.
|
| template<class ResultNumber> |
| constexpr Line< Point< ResultNumber, Label > > | dual () const |
| | Returns the projective dual line of a point.
|
| template<class ResultNumber> |
| constexpr Line< Point< ResultNumber, Label > > | polar () const |
| | Returns the polar line of a point with respect to the unit parabola model used here.
|
| template<class ResultNumber, PointConcept OtherPoint> |
| constexpr std::optional< Point< ResultNumber, Label > > | intersection (const OtherPoint &other) const |
| template<PointConcept OtherPoint> |
| constexpr Point< Number, Label > & | operator+= (const OtherPoint &other) |
| template<PointConcept OtherPoint> |
| constexpr Point< Number, Label > & | operator-= (const OtherPoint &other) |
| template<class OtherNumber> |
| constexpr Point< Number, Label > & | operator*= (const OtherNumber scalar) |
| template<class OtherNumber> |
| constexpr Point< Number, Label > & | operator/= (const OtherNumber scalar) |
| template<class OtherNumber> |
| constexpr Point< Number, Label > | scaledUpX (const OtherNumber scalar) const |
| template<class OtherNumber> |
| constexpr Point< Number, Label > | scaledUpY (const OtherNumber scalar) const |
| template<class OtherNumber> |
| constexpr Point< Number, Label > | scaledDownX (const OtherNumber scalar) const |
| template<class OtherNumber> |
| constexpr Point< Number, Label > | scaledDownY (const OtherNumber scalar) const |