|
| constexpr | HalfplaneIntersection ()=default |
| | Creates the whole plane (the intersection of no half-planes).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr | HalfplaneIntersection (const OtherHalfplane &halfplane) |
| | Creates the region bounded by a single half-plane.
|
template<std::ranges::input_range Range = std::initializer_list<HalfplaneType>>
requires std::convertible_to<std::ranges::range_value_t<Range>, HalfplaneType> && (!detail::is_halfplane_intersection_v<Range>) |
| constexpr | HalfplaneIntersection (Range &&halfplanes, bool trusted=false) |
| | Creates the intersection of a range of half-planes.
|
| template<RectangleConcept OtherRectangle> |
| constexpr | HalfplaneIntersection (const OtherRectangle &rectangle) |
| | Creates the region of a rectangle as four half-planes.
|
| template<TriangleConcept OtherTriangle> |
| constexpr | HalfplaneIntersection (const OtherTriangle &triangle) |
| | Creates the region of a triangle as three half-planes.
|
| template<ConvexConcept OtherConvex> |
| constexpr | HalfplaneIntersection (const OtherConvex &convex) |
| | Creates the region of a convex polygon as its edge half-planes.
|
| template<PointConcept OtherPoint> |
| constexpr | HalfplaneIntersection (const OtherPoint &point) |
| | Creates the degenerate region consisting of a single point.
|
| template<SegmentConcept OtherSegment> |
| constexpr | HalfplaneIntersection (const OtherSegment &segment) |
| | Creates the degenerate region consisting of a segment.
|
| template<LineConcept OtherLine> |
| constexpr | HalfplaneIntersection (const OtherLine &line) |
| | Creates the degenerate region consisting of a line.
|
template<PointConcept OtherPointType, class OtherLabelType>
requires (std::constructible_from<PointType, const OtherPointType&>) |
| constexpr | HalfplaneIntersection (const HalfplaneIntersection< OtherPointType, OtherLabelType > &other) |
| | Converts a half-plane intersection with a compatible point type.
|
template<PointConcept OtherPointType, class OtherLabelType>
requires (std::constructible_from<PointType, const OtherPointType&>) |
| constexpr HalfplaneIntersection & | operator= (const HalfplaneIntersection< OtherPointType, OtherLabelType > &other) |
| | Assigns from a half-plane intersection with a compatible point type.
|
template<class A = LabelType>
requires (detail::has_label_v<A>) |
| constexpr A & | label () const |
| | Returns the label.
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | insert (const OtherHalfplane &other) |
| | Intersects the region with one more half-plane.
|
| constexpr std::size_t | size () const |
| | Returns the number of stored (non-redundant) half-planes.
|
| constexpr const HalfplaneType & | operator[] (std::size_t index) const |
| | Accesses a stored half-plane by index, in boundary (counterclockwise pseudo-angle) order.
|
| constexpr const HalfplaneType & | get (std::ptrdiff_t index) const |
| | Cyclic access: same as operator[] but index is taken modulo size(); negative indices wrap from the end.
|
| constexpr std::ptrdiff_t | index (const HalfplaneType &halfplane) const |
| | Returns the smallest index i with (*this)[i] == halfplane, or -1 if no stored half-plane equals it.
|
| constexpr std::vector< HalfplaneType > | halfplanes () const |
| | Returns a copy of the stored half-planes, in boundary order.
|
| constexpr auto | begin () const |
| | Returns a constant iterator to the first half-plane, in boundary order.
|
| constexpr auto | cbegin () const |
| | Returns a constant iterator to the first half-plane, in boundary order.
|
| constexpr auto | end () const |
| | Returns a constant iterator past the last half-plane.
|
| constexpr auto | cend () const |
| | Returns a constant iterator past the last half-plane.
|
| constexpr bool | empty () const |
| | Returns whether the region is the empty set.
|
| constexpr bool | isPlane () const |
| | Returns whether the region is the whole plane (no half-planes).
|
| constexpr bool | isDegenerate () const |
| | Returns whether the region has empty interior (it is empty or lower-dimensional: a line, ray, segment, or point).
|
| constexpr bool | isUndefined () const |
| | Returns whether the region is undefined.
|
| constexpr bool | isHalfplane () const |
| | Returns whether the region is exactly one closed half-plane.
|
| constexpr std::optional< HalfplaneType > | getIfHalfplane () const |
| | Returns the half-plane the region equals, if it is one.
|
| constexpr bool | isLine () const |
| | Returns whether the region is exactly one line.
|
| constexpr std::optional< Line< PointType > > | getIfLine () const |
| | Returns the line the region equals, if it is one.
|
| constexpr bool | isRay () const |
| | Returns whether the region is exactly one ray.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr std::optional< Ray< Point< ResultNumber, typename PointType::LabelType > > > | getIfRay () const |
| | Returns the ray the region equals, if it is one.
|
| constexpr bool | isPoint () const |
| | Returns whether the region is a single point.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr std::optional< Point< ResultNumber, typename PointType::LabelType > > | getIfPoint () const |
| | Returns the point the region collapses to, if it is one.
|
| constexpr bool | isSegment () const |
| | Returns whether the region is a segment of positive length.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr std::optional< Segment< Point< ResultNumber, typename PointType::LabelType > > > | getIfSegment () const |
| | Returns the segment the region collapses to, if it is one.
|
| constexpr bool | isBounded () const |
| | Returns whether the region is bounded.
|
| constexpr std::size_t | vertexCount () const |
| | Returns the number of vertices of the region.
|
| constexpr bool | vertexExists (std::size_t i) const |
| | Returns whether the half-plane pair (i, i+1) (cyclically) defines a vertex of the region.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr Point< ResultNumber, typename PointType::LabelType > | vertex (std::size_t i) const |
| | Returns the vertex between half-planes i and i+1 (cyclically).
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr std::vector< Point< ResultNumber, typename PointType::LabelType > > | vertices () const |
| | Returns every vertex of the region, in pair-index order (for a bounded region: counterclockwise).
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr std::variant< Segment< Point< ResultNumber, typename PointType::LabelType > >, Ray< Point< ResultNumber, typename PointType::LabelType > >, Line< Point< ResultNumber, typename PointType::LabelType > > > | edge (std::size_t i) const |
| | Returns the boundary contribution of half-plane i as a typed one-dimensional shape.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr Convex< Point< ResultNumber, typename PointType::LabelType > > | asConvex () const |
| | Returns the region as a convex polygon.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr Convex< Point< ResultNumber, typename PointType::LabelType > > | convexHull () const |
| | Returns the region's convex hull.
|
| constexpr bool | operator== (const HalfplaneIntersection &other) const |
| | Tests equality of the stored regions.
|
| template<AnyShapeConcept OtherShape> |
| constexpr bool | samePointSet (const OtherShape &other) const |
| | Tests whether another shape defines exactly the same point set.
|
| constexpr auto | operator<=> (const HalfplaneIntersection &other) const |
| | Provides an ordering compatible with operator==.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr Rectangle< Point< ResultNumber, typename PointType::LabelType > > | bbox () const |
| | Computes the bounding box of the region.
|
template<class ResultNumber = grid_number_t<typename PointType_::NumberType>>
requires (detail::extended_integral<ResultNumber> || std::same_as<ResultNumber, BigInt>) |
| std::vector< Point< ResultNumber, typename PointType::LabelType > > | latticePoints () const |
| | Returns the integer points the region contains.
|
| template<std::floating_point ResultNumber = double> |
| constexpr Rectangle< Point< ResultNumber > > | fbox () const |
| | Computes the floating-point bounding box of the region.
|
template<class OtherShape>
requires MinkowskiSummableConcept<HalfplaneIntersection<PointType_, 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<HalfplaneIntersection<PointType_, TLabel>, OtherShape> |
| constexpr auto | minkowskiErosion (const OtherShape &other) const |
| | Returns the Minkowski erosion of this shape by another (A ⊖ B).
|
| template<PointConcept OtherPoint> |
| constexpr HalfplaneIntersection & | operator+= (const OtherPoint &translation) |
| | Translates the region by the given point in place.
|
| template<PointConcept OtherPoint> |
| constexpr HalfplaneIntersection & | operator-= (const OtherPoint &translation) |
| | Translates the region by the negation of the given point in place.
|
template<class Scalar>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) |
| constexpr HalfplaneIntersection & | operator*= (const Scalar &scalar) |
| | Scales the region around the origin by a scalar in place.
|
template<class Scalar>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) |
| constexpr HalfplaneIntersection & | operator/= (const Scalar &scalar) |
| | Divides the region coordinates by a scalar in place.
|
| constexpr HalfplaneIntersection | rotated90 (int k=1) const |
| | Returns the region rotated by 90k degrees around the origin.
|
| constexpr void | rotate90 (int k=1) |
| | Rotates the region by 90k degrees around the origin in place.
|
| template<class OtherNumber> |
| constexpr HalfplaneIntersection | scaledUpX (const OtherNumber scalar) const |
| | Returns the region with its x-coordinates multiplied by a factor.
|
| template<class OtherNumber> |
| constexpr void | scaleUpX (const OtherNumber scalar) |
| | Multiplies the region's x-coordinates by a factor in place.
|
| template<class OtherNumber> |
| constexpr HalfplaneIntersection | scaledUpY (const OtherNumber scalar) const |
| | Returns the region with its y-coordinates multiplied by a factor.
|
| template<class OtherNumber> |
| constexpr void | scaleUpY (const OtherNumber scalar) |
| | Multiplies the region's y-coordinates by a factor in place.
|
| template<class OtherNumber> |
| constexpr HalfplaneIntersection | scaledDownX (const OtherNumber scalar) const |
| | Returns the region with its x-coordinates divided by a divisor.
|
| template<class OtherNumber> |
| constexpr void | scaleDownX (const OtherNumber scalar) |
| | Divides the region's x-coordinates by a divisor in place.
|
| template<class OtherNumber> |
| constexpr HalfplaneIntersection | scaledDownY (const OtherNumber scalar) const |
| | Returns the region with its y-coordinates divided by a divisor.
|
| template<class OtherNumber> |
| constexpr void | scaleDownY (const OtherNumber scalar) |
| | Divides the region's y-coordinates by a divisor in place.
|
| template<PointConcept OtherPoint> |
| constexpr bool | contains (const OtherPoint &point) 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<DiskConcept OtherDisk> |
| constexpr bool | contains (const OtherDisk &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<MonotoneChainConcept OtherChain> |
| constexpr bool | contains (const OtherChain &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | contains (const OtherPolyline &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<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | contains (const OtherRegion &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PointConcept OtherPoint> |
| constexpr bool | boundaryContains (const OtherPoint &point) 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<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<MonotoneChainConcept OtherChain> |
| constexpr bool | boundaryContains (const OtherChain &other) const |
| | Tests whether this shape's boundary 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<PolygonConcept OtherPolygon> |
| constexpr bool | boundaryContains (const OtherPolygon &other) const |
| | Tests whether this shape's boundary 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<PointConcept OtherPoint> |
| constexpr bool | interiorContains (const OtherPoint &point) 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<DiskConcept OtherDisk> |
| constexpr bool | interiorContains (const OtherDisk &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<MonotoneChainConcept OtherChain> |
| constexpr bool | interiorContains (const OtherChain &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂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<PolygonConcept OtherPolygon> |
| constexpr bool | interiorContains (const OtherPolygon &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂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<PointConcept OtherPoint> |
| constexpr bool | intersects (const OtherPoint &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<SegmentConcept OtherSegment> |
| constexpr bool | intersects (const OtherSegment &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<OrientedSegmentConcept OtherOrientedSegment> |
| constexpr bool | intersects (const OtherOrientedSegment &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<LineConcept OtherLine> |
| constexpr bool | intersects (const OtherLine &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<OrientedLineConcept OtherOrientedLine> |
| constexpr bool | intersects (const OtherOrientedLine &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<RayConcept OtherRay> |
| constexpr bool | intersects (const OtherRay &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | intersects (const OtherHalfplane &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<RectangleConcept OtherRectangle> |
| constexpr bool | intersects (const OtherRectangle &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<TriangleConcept OtherTriangle> |
| constexpr bool | intersects (const OtherTriangle &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<DiskConcept OtherDisk> |
| constexpr bool | intersects (const OtherDisk &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<ConvexConcept OtherConvex> |
| constexpr bool | intersects (const OtherConvex &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<MonotoneChainConcept OtherChain> |
| constexpr bool | intersects (const OtherChain &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | intersects (const OtherPolyline &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<PolygonConcept OtherPolygon> |
| constexpr bool | intersects (const OtherPolygon &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | intersects (const OtherRegion &other) 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) ≠ ∅).
|
| template<SegmentConcept OtherSegment> |
| constexpr bool | interiorsIntersect (const OtherSegment &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<OrientedSegmentConcept OtherOrientedSegment> |
| constexpr bool | interiorsIntersect (const OtherOrientedSegment &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<LineConcept OtherLine> |
| constexpr bool | interiorsIntersect (const OtherLine &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<OrientedLineConcept OtherOrientedLine> |
| constexpr bool | interiorsIntersect (const OtherOrientedLine &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<RayConcept OtherRay> |
| constexpr bool | interiorsIntersect (const OtherRay &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | interiorsIntersect (const OtherHalfplane &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<RectangleConcept OtherRectangle> |
| constexpr bool | interiorsIntersect (const OtherRectangle &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<TriangleConcept OtherTriangle> |
| constexpr bool | interiorsIntersect (const OtherTriangle &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<DiskConcept OtherDisk> |
| constexpr bool | interiorsIntersect (const OtherDisk &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<ConvexConcept OtherConvex> |
| constexpr bool | interiorsIntersect (const OtherConvex &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<MonotoneChainConcept OtherChain> |
| constexpr bool | interiorsIntersect (const OtherChain &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | interiorsIntersect (const OtherPolyline &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<PolygonConcept OtherPolygon> |
| constexpr bool | interiorsIntersect (const OtherPolygon &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | interiorsIntersect (const OtherRegion &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂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<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<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<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 | separates (const OtherPolyline &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<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | separates (const OtherRegion &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PolygonWithHolesConcept OtherHoledRegion> |
| constexpr bool | contains (const OtherHoledRegion &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PolygonWithHolesConcept OtherHoledRegion> |
| constexpr bool | boundaryContains (const OtherHoledRegion &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PolygonWithHolesConcept OtherHoledRegion> |
| constexpr bool | interiorContains (const OtherHoledRegion &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<PolygonWithHolesConcept OtherHoledRegion> |
| bool | separates (const OtherHoledRegion &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 | crosses (const OtherPoint &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<SegmentConcept OtherSegment> |
| constexpr bool | crosses (const OtherSegment &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<OrientedSegmentConcept OtherOrientedSegment> |
| constexpr bool | crosses (const OtherOrientedSegment &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<LineConcept OtherLine> |
| constexpr bool | crosses (const OtherLine &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<OrientedLineConcept OtherOrientedLine> |
| constexpr bool | crosses (const OtherOrientedLine &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<RayConcept OtherRay> |
| constexpr bool | crosses (const OtherRay &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<HalfplaneConcept OtherHalfplane> |
| constexpr bool | crosses (const OtherHalfplane &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<RectangleConcept OtherRectangle> |
| constexpr bool | crosses (const OtherRectangle &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<TriangleConcept OtherTriangle> |
| constexpr bool | crosses (const OtherTriangle &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<DiskConcept OtherDisk> |
| constexpr bool | crosses (const OtherDisk &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<ConvexConcept OtherConvex> |
| constexpr bool | crosses (const OtherConvex &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<MonotoneChainConcept OtherChain> |
| constexpr bool | crosses (const OtherChain &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<PolylineConcept OtherPolyline> |
| constexpr bool | crosses (const OtherPolyline &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<PolygonConcept OtherPolygon> |
| constexpr bool | crosses (const OtherPolygon &other) const |
| | Tests whether the two shapes mutually separate each other (each disconnects the other).
|
| template<HalfplaneIntersectionConcept OtherRegion> |
| constexpr bool | crosses (const OtherRegion &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<HalfplaneIntersection>) |
| constexpr bool | intersects (const OtherShape &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
template<typename OtherShape>
requires (!PointConcept<OtherShape> && detail::shapeRank<OtherShape> > detail::shapeRank<HalfplaneIntersection>) |
| constexpr bool | interiorsIntersect (const OtherShape &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<HalfplaneIntersection> && requires(const
OtherShape& o, const HalfplaneIntersection& self) { o.crosses(self); }) |
| 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 | 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<class EmptyPoint> |
| constexpr bool | intersects (const EmptyShape< EmptyPoint > &) const |
| | Tests whether this shape and the other shape intersect (A ∩ 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<class EmptyPoint> |
| constexpr bool | separates (const EmptyShape< EmptyPoint > &) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| 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, 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<PointConcept OtherPoint> |
| constexpr bool | contains (const Shape< OtherPoint > &other) const |
| | Tests whether this shape contains the other shape (A ⊇ B).
|
| template<PointConcept OtherPoint> |
| constexpr bool | boundaryContains (const Shape< OtherPoint > &other) const |
| | Tests whether this shape's boundary contains the other shape (∂A ⊇ B).
|
| template<PointConcept OtherPoint> |
| constexpr bool | interiorContains (const Shape< OtherPoint > &other) const |
| | Tests whether this shape's interior contains the other shape (A∖∂A ⊇ B).
|
| template<PointConcept OtherPoint> |
| constexpr bool | intersects (const Shape< OtherPoint > &other) const |
| | Tests whether this shape and the other shape intersect (A ∩ B ≠ ∅).
|
| template<PointConcept OtherPoint> |
| constexpr bool | interiorsIntersect (const Shape< OtherPoint > &other) const |
| | Tests whether the interiors of the two shapes intersect ((A∖∂A) ∩ (B∖∂B) ≠ ∅).
|
| template<PointConcept OtherPoint> |
| constexpr bool | separates (const Shape< OtherPoint > &other) const |
| | Tests whether removing this shape disconnects the other shape (B∖A is disconnected).
|
| template<PointConcept OtherPoint> |
| constexpr bool | crosses (const Shape< OtherPoint > &other) 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, typename PointType::LabelType > > | intersection (const OtherPoint &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = division_result_t<NumberType>, LineConcept OtherLine> |
| constexpr std::optional< std::variant< Point< ResultNumber, typename PointType::LabelType >, Segment< Point< ResultNumber, typename PointType::LabelType > >, Ray< Point< ResultNumber, typename PointType::LabelType > >, Line< Point< ResultNumber, typename PointType::LabelType > > > > | intersection (const OtherLine &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedLineConcept OtherOrientedLine> |
| constexpr std::optional< std::variant< Point< ResultNumber, typename PointType::LabelType >, Segment< Point< ResultNumber, typename PointType::LabelType > >, Ray< Point< ResultNumber, typename PointType::LabelType > >, Line< Point< ResultNumber, typename PointType::LabelType > > > > | intersection (const OtherOrientedLine &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = division_result_t<NumberType>, SegmentConcept OtherSegment> |
| constexpr std::optional< std::variant< Point< ResultNumber, typename PointType::LabelType >, Segment< Point< ResultNumber, typename PointType::LabelType > > > > | intersection (const OtherSegment &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedSegmentConcept OtherOrientedSegment> |
| constexpr std::optional< std::variant< Point< ResultNumber, typename PointType::LabelType >, Segment< Point< ResultNumber, typename PointType::LabelType > > > > | intersection (const OtherOrientedSegment &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = division_result_t<NumberType>, RayConcept OtherRay> |
| constexpr std::optional< std::variant< Point< ResultNumber, typename PointType::LabelType >, Segment< Point< ResultNumber, typename PointType::LabelType > >, Ray< Point< ResultNumber, typename PointType::LabelType > > > > | intersection (const OtherRay &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
| template<class ResultNumber = NumberType, HalfplaneConcept OtherHalfplane> |
| constexpr HalfplaneIntersection< Point< ResultNumber, typename PointType::LabelType > > | intersection (const OtherHalfplane &other) const |
| | Returns the intersection with a half-plane, as a half-plane intersection.
|
| template<class ResultNumber = NumberType, RectangleConcept OtherRectangle> |
| constexpr HalfplaneIntersection< Point< ResultNumber, typename PointType::LabelType > > | intersection (const OtherRectangle &other) const |
| | Returns the intersection with a rectangle, as a half-plane intersection.
|
| template<class ResultNumber = NumberType, TriangleConcept OtherTriangle> |
| constexpr HalfplaneIntersection< Point< ResultNumber, typename PointType::LabelType > > | intersection (const OtherTriangle &other) const |
| | Returns the intersection with a triangle, as a half-plane intersection.
|
| template<class ResultNumber = NumberType, ConvexConcept OtherConvex> |
| constexpr HalfplaneIntersection< Point< ResultNumber, typename PointType::LabelType > > | intersection (const OtherConvex &other) const |
| | Returns the intersection with a convex polygon, as a half-plane intersection.
|
| template<class ResultNumber = NumberType, HalfplaneIntersectionConcept OtherRegion> |
| constexpr HalfplaneIntersection< Point< ResultNumber, typename PointType::LabelType > > | intersection (const OtherRegion &other) const |
| | Returns the intersection with another half-plane intersection.
|
| template<class ResultNumber = division_result_t<NumberType>, PolygonConcept OtherPolygon> |
| std::vector< std::variant< Point< ResultNumber, typename PointType::LabelType >, Polyline< Point< ResultNumber, typename PointType::LabelType > >, Polygon< Point< ResultNumber, typename PointType::LabelType > > > > | intersection (const OtherPolygon &other) const |
| | Returns the intersection with a simple polygon (A ∩ B), as components.
|
template<class ResultNumber = division_result_t<NumberType>, typename OtherShape>
requires (!PointConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<HalfplaneIntersection>) && requires(const
OtherShape& o, const HalfplaneIntersection& self) { o.template intersection<ResultNumber>(self); }) |
| auto | intersection (const OtherShape &other) const |
| | Returns the intersection of the two shapes (A ∩ B), empty when they are disjoint.
|
template<class ResultNumber = division_result_t<NumberType>, typename OtherShape>
requires (!PointConcept<OtherShape> && (detail::shapeRank<OtherShape> > detail::shapeRank<HalfplaneIntersection>) && requires(const
OtherShape& o, const HalfplaneIntersection& self) { o.template regularizedIntersection<ResultNumber>(self); }) |
| auto | regularizedIntersection (const OtherShape &other) const |
| | Forwards a regularized intersection to the shape that owns it.
|
| template<class ResultNumber = division_result_t<NumberType>, PointConcept OtherPoint> |
| constexpr auto | squaredDistance (const OtherPoint &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, SegmentConcept OtherSegment> |
| constexpr auto | squaredDistance (const OtherSegment &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedSegmentConcept OtherOrientedSegment> |
| constexpr auto | squaredDistance (const OtherOrientedSegment &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, LineConcept OtherLine> |
| constexpr auto | squaredDistance (const OtherLine &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedLineConcept OtherOrientedLine> |
| constexpr auto | squaredDistance (const OtherOrientedLine &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, RayConcept OtherRay> |
| constexpr auto | squaredDistance (const OtherRay &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, HalfplaneConcept OtherHalfplane> |
| constexpr auto | squaredDistance (const OtherHalfplane &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, RectangleConcept OtherRectangle> |
| constexpr auto | squaredDistance (const OtherRectangle &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, TriangleConcept OtherTriangle> |
| constexpr auto | squaredDistance (const OtherTriangle &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, ConvexConcept OtherConvex> |
| constexpr auto | squaredDistance (const OtherConvex &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, MonotoneChainConcept OtherChain> |
| constexpr auto | squaredDistance (const OtherChain &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, PolylineConcept OtherPolyline> |
| constexpr auto | squaredDistance (const OtherPolyline &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, PolygonConcept OtherPolygon> |
| constexpr auto | squaredDistance (const OtherPolygon &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
| template<class ResultNumber = double, DiskConcept OtherDisk> |
| detail::floating_result_t< ResultNumber > | squaredDistance (const OtherDisk &other) const |
| | Returns the squared Euclidean distance to the given disk.
|
| template<class ResultNumber = division_result_t<NumberType>, HalfplaneIntersectionConcept OtherRegion> |
| constexpr auto | squaredDistance (const OtherRegion &other) const |
| | Returns the squared Euclidean distance to the given shape.
|
template<class ResultNumber = division_result_t<NumberType>, class OtherShape>
requires detail::ClosestPointsPairConcept<HalfplaneIntersection<PointType_, 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 = division_result_t<NumberType>, PointConcept OtherPoint> |
| constexpr auto | distanceL1 (const OtherPoint &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, SegmentConcept OtherSegment> |
| constexpr auto | distanceL1 (const OtherSegment &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedSegmentConcept OtherOrientedSegment> |
| constexpr auto | distanceL1 (const OtherOrientedSegment &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, LineConcept OtherLine> |
| constexpr auto | distanceL1 (const OtherLine &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedLineConcept OtherOrientedLine> |
| constexpr auto | distanceL1 (const OtherOrientedLine &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, RayConcept OtherRay> |
| constexpr auto | distanceL1 (const OtherRay &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, HalfplaneConcept OtherHalfplane> |
| constexpr auto | distanceL1 (const OtherHalfplane &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, RectangleConcept OtherRectangle> |
| constexpr auto | distanceL1 (const OtherRectangle &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, TriangleConcept OtherTriangle> |
| constexpr auto | distanceL1 (const OtherTriangle &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, ConvexConcept OtherConvex> |
| constexpr auto | distanceL1 (const OtherConvex &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, MonotoneChainConcept OtherChain> |
| constexpr auto | distanceL1 (const OtherChain &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, PolylineConcept OtherPolyline> |
| constexpr auto | distanceL1 (const OtherPolyline &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, PolygonConcept OtherPolygon> |
| constexpr auto | distanceL1 (const OtherPolygon &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, HalfplaneIntersectionConcept OtherRegion> |
| constexpr auto | distanceL1 (const OtherRegion &other) const |
| | Returns the Manhattan (L1) 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 = division_result_t<NumberType>, PointConcept OtherPoint> |
| auto | regularizedIntersection (const Shape< OtherPoint > &other) const |
| | Re-dispatches a regularized intersection through a runtime shape.
|
| template<class ResultNumber = double, PointConcept OtherPoint> |
| constexpr auto | distanceL1 (const Shape< OtherPoint > &other) const |
| | Returns the Manhattan (L1) distance to the given shape, using symmetry to re-dispatch through the wrapper's own distanceL1.
|
| template<class ResultNumber = division_result_t<NumberType>, PointConcept OtherPoint> |
| constexpr auto | distanceLInf (const OtherPoint &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, SegmentConcept OtherSegment> |
| constexpr auto | distanceLInf (const OtherSegment &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedSegmentConcept OtherOrientedSegment> |
| constexpr auto | distanceLInf (const OtherOrientedSegment &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, LineConcept OtherLine> |
| constexpr auto | distanceLInf (const OtherLine &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, OrientedLineConcept OtherOrientedLine> |
| constexpr auto | distanceLInf (const OtherOrientedLine &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, RayConcept OtherRay> |
| constexpr auto | distanceLInf (const OtherRay &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, HalfplaneConcept OtherHalfplane> |
| constexpr auto | distanceLInf (const OtherHalfplane &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, RectangleConcept OtherRectangle> |
| constexpr auto | distanceLInf (const OtherRectangle &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, TriangleConcept OtherTriangle> |
| constexpr auto | distanceLInf (const OtherTriangle &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, ConvexConcept OtherConvex> |
| constexpr auto | distanceLInf (const OtherConvex &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, MonotoneChainConcept OtherChain> |
| constexpr auto | distanceLInf (const OtherChain &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, PolylineConcept OtherPolyline> |
| constexpr auto | distanceLInf (const OtherPolyline &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, PolygonConcept OtherPolygon> |
| constexpr auto | distanceLInf (const OtherPolygon &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>, HalfplaneIntersectionConcept OtherRegion> |
| constexpr auto | distanceLInf (const OtherRegion &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = double, PointConcept OtherPoint> |
| constexpr auto | distanceLInf (const Shape< OtherPoint > &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape, using symmetry to re-dispatch through the wrapper's own distanceLInf.
|
template<class ResultNumber = division_result_t<NumberType>, typename OtherShape>
requires ((detail::shapeRank<OtherShape> > detail::shapeRank<HalfplaneIntersection>) && requires(const OtherShape& o, const
HalfplaneIntersection& 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 = division_result_t<NumberType>, typename OtherShape>
requires ((detail::shapeRank<OtherShape> > detail::shapeRank<HalfplaneIntersection>) && requires(const OtherShape& o, const
HalfplaneIntersection& self) { o.template distanceL1<ResultNumber>(self); }) |
| constexpr auto | distanceL1 (const OtherShape &other) const |
| | Returns the Manhattan (L1) distance to the given shape.
|
template<class ResultNumber = division_result_t<NumberType>, typename OtherShape>
requires ((detail::shapeRank<OtherShape> > detail::shapeRank<HalfplaneIntersection>) && requires(const OtherShape& o, const
HalfplaneIntersection& self) { o.template distanceLInf<ResultNumber>(self); }) |
| constexpr auto | distanceLInf (const OtherShape &other) const |
| | Returns the Chebyshev (L∞) distance to the given shape.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr auto | twiceArea () const |
| | Returns twice the area of the region.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr auto | area () const |
| | Returns the area of the region.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr Point< ResultNumber > | centroid () const |
| | Returns the centroid of the region.
|
| template<class ResultNumber = division_result_t<NumberType>> |
| constexpr Point< ResultNumber > | pointInside () const |
| | Returns a representative point of the region: a point of its interior when the region is full-dimensional, and a point of the region otherwise.
|
| template<class OtherShape> |
| constexpr bool | pointInsideInteriorContainedIn (const OtherShape &shape) const |
| | Tests whether an exact interior witness of this region lies in the interior of the given shape.
|
| template<PointConcept OtherPoint> |
| constexpr HalfplaneIntersection< PointType, LabelType > & | operator+= (const OtherPoint &translation) |
| template<PointConcept OtherPoint> |
| constexpr HalfplaneIntersection< PointType, LabelType > & | operator-= (const OtherPoint &translation) |
template<class Scalar>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) |
| constexpr HalfplaneIntersection< PointType, LabelType > & | operator*= (const Scalar &scalar) |
template<class Scalar>
requires (!detail::is_point_v<Scalar> && !TransformationConcept<Scalar>) |
| constexpr HalfplaneIntersection< PointType, LabelType > & | operator/= (const Scalar &scalar) |
| template<class OtherNumber> |
| constexpr HalfplaneIntersection< PointType, LabelType > | scaledUpX (const OtherNumber scalar) const |
| template<class OtherNumber> |
| constexpr HalfplaneIntersection< PointType, LabelType > | scaledUpY (const OtherNumber scalar) const |
| template<class OtherNumber> |
| constexpr HalfplaneIntersection< PointType, LabelType > | scaledDownX (const OtherNumber scalar) const |
| template<class OtherNumber> |
| constexpr HalfplaneIntersection< PointType, LabelType > | scaledDownY (const OtherNumber scalar) const |