| Copyright | (C) Frank Staals |
|---|---|
| License | see the LICENSE file |
| Maintainer | Frank Staals |
| Safe Haskell | None |
| Language | GHC2024 |
HGeometry.Polygon.Class
Description
A polygon and some basic functions to interact with them.
Synopsis
- class HasVertices polygon polygon => HasOuterBoundary polygon where
- outerBoundary :: IndexedTraversal1' (VertexIx polygon) polygon (Vertex polygon)
- ccwOuterBoundaryFrom :: VertexIx polygon -> IndexedTraversal1' (VertexIx polygon) polygon (Vertex polygon)
- cwOuterBoundaryFrom :: VertexIx polygon -> IndexedTraversal1' (VertexIx polygon) polygon (Vertex polygon)
- outerBoundaryVertexAt :: VertexIx polygon -> IndexedGetter (VertexIx polygon) polygon (Vertex polygon)
- outerBoundaryEdges :: IndexedFold1 (VertexIx polygon, VertexIx polygon) polygon (Vertex polygon, Vertex polygon)
- outerBoundaryEdgeAt :: VertexIx polygon -> IndexedGetter (VertexIx polygon, VertexIx polygon) polygon (Vertex polygon, Vertex polygon)
- signedArea2X :: (Num r, HasOuterBoundary simplePolygon, Point_ point 2 r, Vertex simplePolygon ~ point) => simplePolygon -> r
- minimumVertexBy :: HasOuterBoundary polygon => (Vertex polygon -> Vertex polygon -> Ordering) -> IndexedFold1 (VertexIx polygon) polygon (Vertex polygon)
- maximumVertexBy :: HasOuterBoundary polygon => (Vertex polygon -> Vertex polygon -> Ordering) -> IndexedFold1 (VertexIx polygon) polygon (Vertex polygon)
- outerBoundaryEdgeSegmentAt :: (HasOuterBoundary polygon, Vertex polygon ~ point, Point_ point 2 r) => VertexIx polygon -> IndexedGetter (VertexIx polygon, VertexIx polygon) polygon (ClosedLineSegment point)
- outerBoundaryEdgeSegments :: (HasOuterBoundary polygon, Vertex polygon ~ point, Point_ point 2 r) => IndexedFold1 (VertexIx polygon, VertexIx polygon) polygon (ClosedLineSegment point)
- outerBoundaryWithNeighbours :: (HasOuterBoundary polygon, VertexIx polygon ~ Int) => IndexedFold1 (VertexIx polygon, (VertexIx polygon, VertexIx polygon)) polygon (Vertex polygon, (Vertex polygon, Vertex polygon))
- type Hole polygon = SimplePolygonF (HoleF polygon) (Vertex polygon)
- class VertexContainer (HoleF polygon) (Vertex polygon) => HasHoles polygon where
- class (HasOuterBoundary polygon, Vertex polygon ~ point, Point_ point 2 r, NumType polygon ~ r, Dimension polygon ~ 2, HasHoles polygon) => Polygon_ polygon point r where
- extremes :: Vector 2 r -> polygon -> (point, point)
- ccwPredecessorOf :: VertexIx polygon -> IndexedLens' (VertexIx polygon) polygon (Vertex polygon)
- ccwSuccessorOf :: VertexIx polygon -> IndexedLens' (VertexIx polygon) polygon (Vertex polygon)
- class HasVertices' graph => HasVertices graph graph' where
- vertices :: IndexedTraversal1 (VertexIx graph) graph graph' (Vertex graph) (Vertex graph')
- class HasVertices' graph where
- type Vertex graph
- type VertexIx graph
- vertexAt :: VertexIx graph -> IndexedTraversal' (VertexIx graph) graph (Vertex graph)
- numVertices :: graph -> Int
- class HasEdges' graph => HasEdges graph graph' where
- edges :: IndexedTraversal (EdgeIx graph) graph graph' (Edge graph) (Edge graph')
- class HasEdges' graph where
- class HasPickPoint polygon r | polygon -> r where
- pointInteriorTo :: polygon -> Point 2 r
Documentation
class HasVertices polygon polygon => HasOuterBoundary polygon where Source #
A class for items that have an outer boundary.
Minimal complete definition
outerBoundaryVertexAt, ccwOuterBoundaryFrom, cwOuterBoundaryFrom
Methods
outerBoundary :: IndexedTraversal1' (VertexIx polygon) polygon (Vertex polygon) Source #
A fold over all vertices of the outer boundary, the vertices are traversed in CCW order.
running time :: \(O(n)\)
default outerBoundary :: Num (VertexIx polygon) => IndexedFold1 (VertexIx polygon) polygon (Vertex polygon) Source #
ccwOuterBoundaryFrom :: VertexIx polygon -> IndexedTraversal1' (VertexIx polygon) polygon (Vertex polygon) Source #
A CCW-traversal over all vertices of the outer boundary, starting from the vertex with the given index.
running time :: \(O(n)\)
cwOuterBoundaryFrom :: VertexIx polygon -> IndexedTraversal1' (VertexIx polygon) polygon (Vertex polygon) Source #
A CW-fold over all vertices of the outer boundary, starting from the vertex with the given index.
running time :: \(O(n)\)
outerBoundaryVertexAt :: VertexIx polygon -> IndexedGetter (VertexIx polygon) polygon (Vertex polygon) Source #
A particular vertex of the outer polygon
running time: \(O(1)\)
outerBoundaryEdges :: IndexedFold1 (VertexIx polygon, VertexIx polygon) polygon (Vertex polygon, Vertex polygon) Source #
A fold over all edges in the polygon. The edges are folded over in CCW order, and each edge is associated with the index of its start vertex outerBoundaryEdges :: IndexedFold (VertexIx polygon) polygon (Vertex polygon, Vertex polygon)
running time :: \(O(n)\)
default outerBoundaryEdges :: Enum (VertexIx polygon) => IndexedFold1 (VertexIx polygon, VertexIx polygon) polygon (Vertex polygon, Vertex polygon) Source #
outerBoundaryEdgeAt :: VertexIx polygon -> IndexedGetter (VertexIx polygon, VertexIx polygon) polygon (Vertex polygon, Vertex polygon) Source #
Get the edge that has the given vertex as its starting edge
running time: \(O(1)\)
Instances
signedArea2X :: (Num r, HasOuterBoundary simplePolygon, Point_ point 2 r, Vertex simplePolygon ~ point) => simplePolygon -> r Source #
Compute the signed area times 2 of a simple polygon. The the vertices are in clockwise order, the signed area will be negative, if the verices are given in counter clockwise order, the area will be positive.
running time: \(O(n)\)
minimumVertexBy :: HasOuterBoundary polygon => (Vertex polygon -> Vertex polygon -> Ordering) -> IndexedFold1 (VertexIx polygon) polygon (Vertex polygon) Source #
Yield the minimum vertex of a polygon according to the given comparison function.
running time \( O(n) \)
Yield the minimum vertex of a polygon according to the given comparison function.
running time \( O(n) \)
maximumVertexBy :: HasOuterBoundary polygon => (Vertex polygon -> Vertex polygon -> Ordering) -> IndexedFold1 (VertexIx polygon) polygon (Vertex polygon) Source #
Yield the maximum vertex of a polygon according to the given comparison function.
running time \( O(n) \)
outerBoundaryEdgeSegmentAt :: (HasOuterBoundary polygon, Vertex polygon ~ point, Point_ point 2 r) => VertexIx polygon -> IndexedGetter (VertexIx polygon, VertexIx polygon) polygon (ClosedLineSegment point) Source #
Get the line segment representing the edge that has the given vertex as its starting edge
running time: \(O(1)\)
outerBoundaryEdgeSegments :: (HasOuterBoundary polygon, Vertex polygon ~ point, Point_ point 2 r) => IndexedFold1 (VertexIx polygon, VertexIx polygon) polygon (ClosedLineSegment point) Source #
Get the line segments representing the outer boundary of the polygon.
outerBoundaryWithNeighbours :: (HasOuterBoundary polygon, VertexIx polygon ~ Int) => IndexedFold1 (VertexIx polygon, (VertexIx polygon, VertexIx polygon)) polygon (Vertex polygon, (Vertex polygon, Vertex polygon)) Source #
A fold that associates each vertex on the boundary with its predecessor and successor (in that order) along the boundary.
type Hole polygon = SimplePolygonF (HoleF polygon) (Vertex polygon) Source #
A hole is a simple polygon
class VertexContainer (HoleF polygon) (Vertex polygon) => HasHoles polygon where Source #
Accessing the holes in a polygon (if there are any.)
the default implementation assumes there are no holes
Minimal complete definition
Nothing
Associated Types
Type we use to index holes.
type HoleF polygon :: Type -> Type Source #
The functor used in the holes
Traversal over the holes in the polygon. Each hole is a simple polygon.
type HoleF polygon = Cyclic NonEmptyVector
Methods
holes :: IndexedTraversal' (HoleIx polygon) polygon (Hole polygon) Source #
holeAt :: HoleIx polygon -> IndexedTraversal' (HoleIx polygon) polygon (Hole polygon) Source #
Instances
class (HasOuterBoundary polygon, Vertex polygon ~ point, Point_ point 2 r, NumType polygon ~ r, Dimension polygon ~ 2, HasHoles polygon) => Polygon_ polygon point r where Source #
A class representing (planar) polygons. The edges of the polygon may not intersect.
Minimal complete definition
Methods
extremes :: Vector 2 r -> polygon -> (point, point) Source #
Finds the extreme points, minimum and maximum, in a given direction
running time: \(O(n)\)
ccwPredecessorOf :: VertexIx polygon -> IndexedLens' (VertexIx polygon) polygon (Vertex polygon) Source #
Given a vertexIdx v; get an IndexedLens to access the CCW predecessor of v
ccwSuccessorOf :: VertexIx polygon -> IndexedLens' (VertexIx polygon) polygon (Vertex polygon) Source #
Given a vertexIdx v; get an IndexedLens to access the CCW predecessor of v
Instances
| Polygon_ polygon point r => Polygon_ (polygon :+ extra) point r Source # | |
Defined in HGeometry.Polygon.Class Methods extremes :: Vector 2 r -> (polygon :+ extra) -> (point, point) Source # ccwPredecessorOf :: VertexIx (polygon :+ extra) -> IndexedLens' (VertexIx (polygon :+ extra)) (polygon :+ extra) (Vertex (polygon :+ extra)) Source # ccwSuccessorOf :: VertexIx (polygon :+ extra) -> IndexedLens' (VertexIx (polygon :+ extra)) (polygon :+ extra) (Vertex (polygon :+ extra)) Source # | |
| (SimplePolygon_ (SimplePolygonF f point) point r, Point_ point 2 r) => Polygon_ (ConvexPolygonF f point) point r Source # | |
Defined in HGeometry.Polygon.Convex.Internal Methods extremes :: Vector 2 r -> ConvexPolygonF f point -> (point, point) Source # ccwPredecessorOf :: VertexIx (ConvexPolygonF f point) -> IndexedLens' (VertexIx (ConvexPolygonF f point)) (ConvexPolygonF f point) (Vertex (ConvexPolygonF f point)) Source # ccwSuccessorOf :: VertexIx (ConvexPolygonF f point) -> IndexedLens' (VertexIx (ConvexPolygonF f point)) (ConvexPolygonF f point) (Vertex (ConvexPolygonF f point)) Source # | |
| (Point_ point 2 r, HasFromFoldable1 f, VertexContainer f point) => Polygon_ (SimplePolygonF f point) point r Source # | |
Defined in HGeometry.Polygon.Simple Methods extremes :: Vector 2 r -> SimplePolygonF f point -> (point, point) Source # ccwPredecessorOf :: VertexIx (SimplePolygonF f point) -> IndexedLens' (VertexIx (SimplePolygonF f point)) (SimplePolygonF f point) (Vertex (SimplePolygonF f point)) Source # ccwSuccessorOf :: VertexIx (SimplePolygonF f point) -> IndexedLens' (VertexIx (SimplePolygonF f point)) (SimplePolygonF f point) (Vertex (SimplePolygonF f point)) Source # | |
| (Point_ point 2 r, HasFromFoldable1 f, HoleContainer h f point) => Polygon_ (PolygonalDomainF h f point) point r Source # | |
Defined in HGeometry.Polygon.WithHoles Methods extremes :: Vector 2 r -> PolygonalDomainF h f point -> (point, point) Source # ccwPredecessorOf :: VertexIx (PolygonalDomainF h f point) -> IndexedLens' (VertexIx (PolygonalDomainF h f point)) (PolygonalDomainF h f point) (Vertex (PolygonalDomainF h f point)) Source # ccwSuccessorOf :: VertexIx (PolygonalDomainF h f point) -> IndexedLens' (VertexIx (PolygonalDomainF h f point)) (PolygonalDomainF h f point) (Vertex (PolygonalDomainF h f point)) Source # | |
class HasVertices' graph => HasVertices graph graph' where Source #
Class that expresses that we have a non-empty type changing traversal of all vertices.
Methods
vertices :: IndexedTraversal1 (VertexIx graph) graph graph' (Vertex graph) (Vertex graph') Source #
Traversal of all vertices in the graph
Instances
| HasVertices Graph Graph Source # | |
| HasVertices (Triangle point) (Triangle point') Source # | |
| HasVertices graph graph' => HasVertices (graph :+ extra) (graph' :+ extra) Source # | |
| (Traversable1 endPoint, EndPoint_ (endPoint v), IxValue (endPoint v) ~ v) => HasVertices (LineSegment endPoint v) (LineSegment endPoint v') Source # | |
Defined in HGeometry.LineSegment.Internal Methods vertices :: IndexedTraversal1 (VertexIx (LineSegment endPoint v)) (LineSegment endPoint v) (LineSegment endPoint v') (Vertex (LineSegment endPoint v)) (Vertex (LineSegment endPoint v')) Source # | |
| HasVertices (SimplePolygonF f point) (SimplePolygonF f point') => HasVertices (ConvexPolygonF f point) (ConvexPolygonF f point') Source # | |
Defined in HGeometry.Polygon.Convex.Internal Methods vertices :: IndexedTraversal1 (VertexIx (ConvexPolygonF f point)) (ConvexPolygonF f point) (ConvexPolygonF f point') (Vertex (ConvexPolygonF f point)) (Vertex (ConvexPolygonF f point')) Source # | |
| (Traversable1 nonEmpty, Ixed (nonEmpty vertex), IxValue (nonEmpty vertex) ~ vertex, IxValue (nonEmpty vertex') ~ vertex', Index (nonEmpty vertex) ~ Int, Index (nonEmpty vertex') ~ Int) => HasVertices (UnboundedConvexRegionF r nonEmpty vertex) (UnboundedConvexRegionF r nonEmpty vertex') Source # | |
Defined in HGeometry.Polygon.Convex.Unbounded Methods vertices :: IndexedTraversal1 (VertexIx (UnboundedConvexRegionF r nonEmpty vertex)) (UnboundedConvexRegionF r nonEmpty vertex) (UnboundedConvexRegionF r nonEmpty vertex') (Vertex (UnboundedConvexRegionF r nonEmpty vertex)) (Vertex (UnboundedConvexRegionF r nonEmpty vertex')) Source # | |
| VertexContainer f point => HasVertices (SimplePolygonF f point) (SimplePolygonF f point') Source # | |
Defined in HGeometry.Polygon.Simple.Type Methods vertices :: IndexedTraversal1 (VertexIx (SimplePolygonF f point)) (SimplePolygonF f point) (SimplePolygonF f point') (Vertex (SimplePolygonF f point)) (Vertex (SimplePolygonF f point')) Source # | |
| (HoleContainer h f point, VertexContainer f point) => HasVertices (PolygonalDomainF h f point) (PolygonalDomainF h f point') Source # | |
Defined in HGeometry.Polygon.WithHoles Methods vertices :: IndexedTraversal1 (VertexIx (PolygonalDomainF h f point)) (PolygonalDomainF h f point) (PolygonalDomainF h f point') (Vertex (PolygonalDomainF h f point)) (Vertex (PolygonalDomainF h f point')) Source # | |
| HasVertices (GGraph f v e) (GGraph f v' e) Source # | |
| Ord i => HasVertices (GGraph f i v e) (GGraph f i v' e) Source # | |
| HasVertices (PlanarGraph w s v e f) (PlanarGraph w s v' e f) Source # | |
Defined in Hiraffe.PlanarGraph.Type Methods vertices :: IndexedTraversal1 (VertexIx (PlanarGraph w s v e f)) (PlanarGraph w s v e f) (PlanarGraph w s v' e f) (Vertex (PlanarGraph w s v e f)) (Vertex (PlanarGraph w s v' e f)) Source # | |
class HasVertices' graph where Source #
A class representing types that have vertices.
Minimal complete definition
Associated Types
Vertices of the graph are of this type
Vertices are indexed by elements of type VertexIx
Methods
vertexAt :: VertexIx graph -> IndexedTraversal' (VertexIx graph) graph (Vertex graph) Source #
Accessor to a given vertex.
numVertices :: graph -> Int Source #
Number of vertices in the graph.
running time: O(1)
default numVertices :: HasVertices graph graph => graph -> Int Source #
Instances
| HasVertices' Graph Source # | |||||||||
Defined in Hiraffe.Graph.Class Associated Types
| |||||||||
| HasVertices' (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle Associated Types
| |||||||||
| HasVertices' graph => HasVertices' (graph :+ extra) Source # | |||||||||
Defined in Hiraffe.Graph.Class Associated Types
| |||||||||
| (IxValue (endPoint vertex) ~ vertex, EndPoint_ (endPoint vertex)) => HasVertices' (LineSegment endPoint vertex) Source # | |||||||||
Defined in HGeometry.LineSegment.Internal Associated Types
Methods vertexAt :: VertexIx (LineSegment endPoint vertex) -> IndexedTraversal' (VertexIx (LineSegment endPoint vertex)) (LineSegment endPoint vertex) (Vertex (LineSegment endPoint vertex)) Source # numVertices :: LineSegment endPoint vertex -> Int Source # | |||||||||
| HasVertices' (SimplePolygonF f point) => HasVertices' (ConvexPolygonF f point) Source # | |||||||||
Defined in HGeometry.Polygon.Convex.Internal Associated Types
Methods vertexAt :: VertexIx (ConvexPolygonF f point) -> IndexedTraversal' (VertexIx (ConvexPolygonF f point)) (ConvexPolygonF f point) (Vertex (ConvexPolygonF f point)) Source # numVertices :: ConvexPolygonF f point -> Int Source # | |||||||||
| (Traversable1 nonEmpty, Ixed (nonEmpty vertex), IxValue (nonEmpty vertex) ~ vertex, Index (nonEmpty vertex) ~ Int) => HasVertices' (UnboundedConvexRegionF r nonEmpty vertex) Source # | |||||||||
Defined in HGeometry.Polygon.Convex.Unbounded Associated Types
Methods vertexAt :: VertexIx (UnboundedConvexRegionF r nonEmpty vertex) -> IndexedTraversal' (VertexIx (UnboundedConvexRegionF r nonEmpty vertex)) (UnboundedConvexRegionF r nonEmpty vertex) (Vertex (UnboundedConvexRegionF r nonEmpty vertex)) Source # numVertices :: UnboundedConvexRegionF r nonEmpty vertex -> Int Source # | |||||||||
| VertexContainer f point => HasVertices' (SimplePolygonF f point) Source # | |||||||||
Defined in HGeometry.Polygon.Simple.Type Associated Types
Methods vertexAt :: VertexIx (SimplePolygonF f point) -> IndexedTraversal' (VertexIx (SimplePolygonF f point)) (SimplePolygonF f point) (Vertex (SimplePolygonF f point)) Source # numVertices :: SimplePolygonF f point -> Int Source # | |||||||||
| HoleContainer h f point => HasVertices' (PolygonalDomainF h f point) Source # | |||||||||
Defined in HGeometry.Polygon.WithHoles Associated Types
Methods vertexAt :: VertexIx (PolygonalDomainF h f point) -> IndexedTraversal' (VertexIx (PolygonalDomainF h f point)) (PolygonalDomainF h f point) (Vertex (PolygonalDomainF h f point)) Source # numVertices :: PolygonalDomainF h f point -> Int Source # | |||||||||
| HasVertices' (GGraph f v e) Source # | |||||||||
Defined in Hiraffe.AdjacencyListRep Associated Types
| |||||||||
| Ord i => HasVertices' (GGraph f i v e) Source # | |||||||||
Defined in Hiraffe.AdjacencyListRep.Map Associated Types
| |||||||||
| HasVertices' (DualGraph w s v e f) Source # | |||||||||
Defined in Hiraffe.PlanarGraph.Type Associated Types
| |||||||||
| HasVertices' (PlanarGraph w s v e f) Source # | |||||||||
Defined in Hiraffe.PlanarGraph.Type Associated Types
Methods vertexAt :: VertexIx (PlanarGraph w s v e f) -> IndexedTraversal' (VertexIx (PlanarGraph w s v e f)) (PlanarGraph w s v e f) (Vertex (PlanarGraph w s v e f)) Source # numVertices :: PlanarGraph w s v e f -> Int Source # | |||||||||
class HasEdges' graph => HasEdges graph graph' where Source #
Class for types that have a type changing traversal of the edges
Methods
edges :: IndexedTraversal (EdgeIx graph) graph graph' (Edge graph) (Edge graph') Source #
Traversal of all edges in the graph
Instances
| HasEdges Graph Graph Source # | |
| HasEdges graph graph' => HasEdges (graph :+ extra) (graph' :+ extra) Source # | |
| VertexContainer f vertex => HasEdges (SimplePolygonF f vertex) (SimplePolygonF f vertex) Source # | |
Defined in HGeometry.Polygon.Simple.Type Methods edges :: IndexedTraversal (EdgeIx (SimplePolygonF f vertex)) (SimplePolygonF f vertex) (SimplePolygonF f vertex) (Edge (SimplePolygonF f vertex)) (Edge (SimplePolygonF f vertex)) Source # | |
| HasEdges (GGraph f v e) (GGraph f v e') Source # | |
| Ord i => HasEdges (GGraph f i v e) (GGraph f i v e') Source # | |
| HasEdges (PlanarGraph w s v e f) (PlanarGraph w s v e' f) Source # | |
Defined in Hiraffe.PlanarGraph.Type Methods edges :: IndexedTraversal (EdgeIx (PlanarGraph w s v e f)) (PlanarGraph w s v e f) (PlanarGraph w s v e' f) (Edge (PlanarGraph w s v e f)) (Edge (PlanarGraph w s v e' f)) Source # | |
class HasEdges' graph where Source #
A class for things that have edges
Minimal complete definition
Associated Types
The edges of the graph are of this type
The Edges are indexed by something of type EdgeIx
Methods
edgeAt :: EdgeIx graph -> IndexedTraversal' (EdgeIx graph) graph (Edge graph) Source #
Indexed traversal of a given edge.
numEdges :: graph -> Int Source #
Number of edges in the graph.
running time: O(1)
Instances
| HasEdges' Graph Source # | |||||||||
Defined in Hiraffe.Graph.Class Associated Types
| |||||||||
| HasEdges' (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle Associated Types
| |||||||||
| HasEdges' graph => HasEdges' (graph :+ extra) Source # | |||||||||
Defined in Hiraffe.Graph.Class Associated Types
| |||||||||
| VertexContainer f vertex => HasEdges' (SimplePolygonF f vertex) Source # | |||||||||
Defined in HGeometry.Polygon.Simple.Type Associated Types
Methods edgeAt :: EdgeIx (SimplePolygonF f vertex) -> IndexedTraversal' (EdgeIx (SimplePolygonF f vertex)) (SimplePolygonF f vertex) (Edge (SimplePolygonF f vertex)) Source # numEdges :: SimplePolygonF f vertex -> Int Source # | |||||||||
| HasEdges' (GGraph f v e) Source # | |||||||||
Defined in Hiraffe.AdjacencyListRep Associated Types
| |||||||||
| Ord i => HasEdges' (GGraph f i v e) Source # | |||||||||
Defined in Hiraffe.AdjacencyListRep.Map Associated Types
| |||||||||
| HasEdges' (PlanarGraph w s v e f) Source # | |||||||||
Defined in Hiraffe.PlanarGraph.Type Associated Types
Methods edgeAt :: EdgeIx (PlanarGraph w s v e f) -> IndexedTraversal' (EdgeIx (PlanarGraph w s v e f)) (PlanarGraph w s v e f) (Edge (PlanarGraph w s v e f)) Source # numEdges :: PlanarGraph w s v e f -> Int Source # | |||||||||
class HasPickPoint polygon r | polygon -> r where Source #
A Class for polygon types that support returning a point inside the polygon.
Methods
pointInteriorTo :: polygon -> Point 2 r Source #
Returns a point in the interior of the polygon
Instances
| (Point_ vertex 2 r, Fractional r, Eq r) => HasPickPoint (Triangle vertex) r Source # | |
Defined in HGeometry.Polygon.Class Methods pointInteriorTo :: Triangle vertex -> Point 2 r Source # | |
| (VertexContainer nonEmpty vertex, HasFromFoldable1 nonEmpty, Point_ vertex 2 r, Fractional r) => HasPickPoint (SimplePolygonF nonEmpty vertex) r Source # | |
Defined in HGeometry.Polygon.Simple Methods pointInteriorTo :: SimplePolygonF nonEmpty vertex -> Point 2 r Source # | |
| (HoleContainer h nonEmpty vertex, VertexContainer nonEmpty vertex, HasFromFoldable1 nonEmpty, Point_ vertex 2 r, Fractional r, Ord r) => HasPickPoint (PolygonalDomainF h nonEmpty vertex) r Source # | |
Defined in HGeometry.Polygon.WithHoles Methods pointInteriorTo :: PolygonalDomainF h nonEmpty vertex -> Point 2 r Source # | |