| Copyright | (C) Frank Staals |
|---|---|
| License | see the LICENSE file |
| Maintainer | Frank Staals |
| Safe Haskell | None |
| Language | GHC2024 |
HGeometry.Plane.LowerEnvelope.Connected
Description
A Representation of the Lower envelope of planes as a bunch of convex regions
Synopsis
- newtype MinimizationDiagram r vertex plane = MinimizationDiagram (NEMap plane (Region r vertex))
- asMap :: MinimizationDiagram r vertex plane -> NEMap plane (Region r vertex)
- mapVertices :: (vertex -> vertex') -> MinimizationDiagram r vertex plane -> MinimizationDiagram r vertex' plane
- type Region r vertex = RegionF (ConvexPolygonF (Cyclic NonEmpty)) NonEmpty r vertex
- data RegionF (bounded :: Type -> Type) (unbounded :: Type -> Type) r vertex
- = BoundedRegion (bounded vertex)
- | UnboundedRegion (UnboundedConvexRegionF r unbounded vertex)
- data MDVertex r plane a = MDVertex (Point 3 r) (Definers plane) a
- location :: forall r1 plane a r2 f. Functor f => (Point 3 r1 -> f (Point 3 r2)) -> MDVertex r1 plane a -> f (MDVertex r2 plane a)
- vertexData :: forall r plane a1 a2 f. Functor f => (a1 -> f a2) -> MDVertex r plane a1 -> f (MDVertex r plane a2)
- toConvexPolygonIn :: (Rectangle_ rectangle corner, Point_ corner 2 r, Point_ point 2 r, Ord r, Fractional r) => rectangle -> Region r point -> Either (ConvexPolygonF (Cyclic NonEmpty) point) (ConvexPolygonF (Cyclic NonEmpty) (OriginalOrExtra point (Point 2 r)))
- intersectionLine :: (Plane_ plane r, Fractional r, Eq r) => plane -> plane -> Maybe (VerticalOrLineEQ r)
- intersectionPoint :: (Plane_ plane r, Ord r, Fractional r) => Three plane -> Maybe (Point 3 r)
- intersectionVector :: (Plane_ plane r, Ord r, Fractional r) => plane -> plane -> Maybe (Vector 2 r)
- fromMinimizationDiagramIn :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Point_ corner 2 r, Foldable1 set, Ord vtxData, Show r, Show corner, Show plane, Show vtxData) => Triangle corner -> set plane -> Maybe (MinimizationDiagram r (MDVertex r plane vtxData) plane) -> NEMap plane (ClippedMDCell r plane vtxData)
- fromVertexForm :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Show r, Show plane, Ord vtxData, HasDefiners vtxData plane) => NEMap (Point 3 r) vtxData -> MinimizationDiagram r (MDVertex r plane vtxData) plane
- fromVertexFormIn :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Show r, Show plane, Point_ corner 2 r, Foldable1 set, Show r, Show corner, Show vertexData, Ord vertexData, HasDefiners vertexData plane) => Triangle corner -> set plane -> NEMap (Point 3 r) vertexData -> NEMap plane (ClippedMDCell r plane vertexData)
- mergeDefiners :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Show plane, Show r) => Point 3 r -> Definers plane -> Definers plane -> Definers plane
- definers :: (Plane_ plane r, Ord r, Fractional r) => Three plane -> Maybe (Point 3 r, Definers plane)
- fromCCWList :: NonEmpty plane -> Definers plane
- type ClippedBoundedRegion (r :: k) vertex corner = ConvexPolygonF (Cyclic NonEmpty) (OriginalOrExtra vertex corner)
- data Definers plane
- type VertexForm (map :: Type -> Type -> k) r plane = map (Point 3 r) (Definers plane)
- module HGeometry.Plane.LowerEnvelope.Connected.BruteForce
- definers :: (Plane_ plane r, Ord r, Fractional r) => Three plane -> Maybe (Point 3 r, Definers plane)
- fromCCWList :: NonEmpty plane -> Definers plane
- newtype Definers plane = Definers (NonEmpty plane)
- class HasDefiners vertex plane | vertex -> plane where
- definersOf :: vertex -> Definers plane
- type VertexForm (map :: Type -> Type -> k) r plane = map (Point 3 r) (Definers plane)
Documentation
newtype MinimizationDiagram r vertex plane Source #
A minimization daigram just maps every plane on the lower envelope to the region above which it is minimal. Every plane has at most one such a region.
Constructors
| MinimizationDiagram (NEMap plane (Region r vertex)) |
Instances
asMap :: MinimizationDiagram r vertex plane -> NEMap plane (Region r vertex) Source #
Get the underlying Map that relates every plane in the envelope to its projected region
mapVertices :: (vertex -> vertex') -> MinimizationDiagram r vertex plane -> MinimizationDiagram r vertex' plane Source #
Apply some mapping function to the vertex data of each vertex
type Region r vertex = RegionF (ConvexPolygonF (Cyclic NonEmpty)) NonEmpty r vertex Source #
Unbounded regions
data RegionF (bounded :: Type -> Type) (unbounded :: Type -> Type) r vertex Source #
A region in the minimization diagram. The boundary is given in CCW order; i.e. the region is to the left of the boundary.
Constructors
| BoundedRegion (bounded vertex) | |
| UnboundedRegion (UnboundedConvexRegionF r unbounded vertex) |
Instances
| (Point_ vertex 2 r, Point_ corner 2 r, Ord r, Fractional r) => HasIntersectionWith (Rectangle corner) (Region r vertex) | |||||
Defined in HGeometry.Plane.LowerEnvelope.Clipped.Type Methods intersects :: Rectangle corner -> Region r vertex -> Bool | |||||
| (Point_ vertex 2 r, Point_ corner 2 r, Ord r, Fractional r) => HasIntersectionWith (Triangle corner) (Region r vertex) | |||||
Defined in HGeometry.Plane.LowerEnvelope.Clipped.Type Methods intersects :: Triangle corner -> Region r vertex -> Bool | |||||
| (Point_ vertex 2 r, Point_ corner 2 r, Ord r, Fractional r) => IsIntersectableWith (Rectangle corner) (Region r vertex) | |||||
Defined in HGeometry.Plane.LowerEnvelope.Clipped.Type | |||||
| (Point_ vertex 2 r, Point_ corner 2 r, Ord r, Fractional r) => IsIntersectableWith (Triangle corner) (Region r vertex) | |||||
| (Functor bounded, Functor unbounded) => Functor (RegionF bounded unbounded r) Source # | |||||
| (Foldable bounded, Foldable unbounded) => Foldable (RegionF bounded unbounded r) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Methods fold :: Monoid m => RegionF bounded unbounded r m -> m # foldMap :: Monoid m => (a -> m) -> RegionF bounded unbounded r a -> m # foldMap' :: Monoid m => (a -> m) -> RegionF bounded unbounded r a -> m # foldr :: (a -> b -> b) -> b -> RegionF bounded unbounded r a -> b # foldr' :: (a -> b -> b) -> b -> RegionF bounded unbounded r a -> b # foldl :: (b -> a -> b) -> b -> RegionF bounded unbounded r a -> b # foldl' :: (b -> a -> b) -> b -> RegionF bounded unbounded r a -> b # foldr1 :: (a -> a -> a) -> RegionF bounded unbounded r a -> a # foldl1 :: (a -> a -> a) -> RegionF bounded unbounded r a -> a # toList :: RegionF bounded unbounded r a -> [a] # null :: RegionF bounded unbounded r a -> Bool # length :: RegionF bounded unbounded r a -> Int # elem :: Eq a => a -> RegionF bounded unbounded r a -> Bool # maximum :: Ord a => RegionF bounded unbounded r a -> a # minimum :: Ord a => RegionF bounded unbounded r a -> a # | |||||
| (Traversable bounded, Traversable unbounded) => Traversable (RegionF bounded unbounded r) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Methods traverse :: Applicative f => (a -> f b) -> RegionF bounded unbounded r a -> f (RegionF bounded unbounded r b) # sequenceA :: Applicative f => RegionF bounded unbounded r (f a) -> f (RegionF bounded unbounded r a) # mapM :: Monad m => (a -> m b) -> RegionF bounded unbounded r a -> m (RegionF bounded unbounded r b) # sequence :: Monad m => RegionF bounded unbounded r (m a) -> m (RegionF bounded unbounded r a) # | |||||
| (NFData r, NFData (unbounded vertex), NFData (bounded vertex)) => NFData (RegionF bounded unbounded r vertex) Source # | |||||
| Generic (RegionF bounded unbounded r vertex) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Associated Types
| |||||
| (Show r, Show vertex, Point_ vertex 2 r, Show (bounded vertex), Show1 unbounded) => Show (RegionF bounded unbounded r vertex) Source # | |||||
| (Eq r, Eq vertex, Eq (bounded vertex), Eq1 unbounded) => Eq (RegionF bounded unbounded r vertex) Source # | |||||
| type Intersection (Rectangle corner) (Region r vertex) | Intersecting Rectangle and Region in a MinimizationDiagram yields a clipped cell. | ||||
Defined in HGeometry.Plane.LowerEnvelope.Clipped.Type | |||||
| type Intersection (Triangle corner) (Region r vertex) | Intersecting Triangles and Region in a MinimizationDiagram yields a clipped cell. | ||||
Defined in HGeometry.Plane.LowerEnvelope.Clipped.Type | |||||
| type Rep (RegionF bounded unbounded r vertex) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region type Rep (RegionF bounded unbounded r vertex) = D1 ('MetaData "RegionF" "HGeometry.Plane.LowerEnvelope.Connected.Region" "hgeometry-1.0.0.0-inplace" 'False) (C1 ('MetaCons "BoundedRegion" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (bounded vertex))) :+: C1 ('MetaCons "UnboundedRegion" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UnboundedConvexRegionF r unbounded vertex)))) | |||||
| type Dimension (RegionF bounded unbounded r point) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region type Dimension (RegionF bounded unbounded r point) = Dimension point | |||||
| type NumType (RegionF bounded unbounded r point) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region type NumType (RegionF bounded unbounded r point) = r | |||||
data MDVertex r plane a Source #
A vertex of the minimzation Diagram that is defined by the intersection of a number of planes.
Note that we interpet this vertex as a 2-dimensional thing.
Instances
| Bifoldable (MDVertex r) Source # | |||||
| Bifunctor (MDVertex r) Source # | |||||
| Functor (MDVertex r plane) Source # | |||||
| Foldable (MDVertex r plane) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Methods fold :: Monoid m => MDVertex r plane m -> m # foldMap :: Monoid m => (a -> m) -> MDVertex r plane a -> m # foldMap' :: Monoid m => (a -> m) -> MDVertex r plane a -> m # foldr :: (a -> b -> b) -> b -> MDVertex r plane a -> b # foldr' :: (a -> b -> b) -> b -> MDVertex r plane a -> b # foldl :: (b -> a -> b) -> b -> MDVertex r plane a -> b # foldl' :: (b -> a -> b) -> b -> MDVertex r plane a -> b # foldr1 :: (a -> a -> a) -> MDVertex r plane a -> a # foldl1 :: (a -> a -> a) -> MDVertex r plane a -> a # toList :: MDVertex r plane a -> [a] # null :: MDVertex r plane a -> Bool # length :: MDVertex r plane a -> Int # elem :: Eq a => a -> MDVertex r plane a -> Bool # maximum :: Ord a => MDVertex r plane a -> a # minimum :: Ord a => MDVertex r plane a -> a # | |||||
| (NFData r, NFData plane, NFData a) => NFData (MDVertex r plane a) Source # | |||||
| Generic (MDVertex r plane a) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Associated Types
| |||||
| (Show r, Show plane, Show a) => Show (MDVertex r plane a) Source # | |||||
| (Eq r, Eq plane, Eq a) => Eq (MDVertex r plane a) Source # | |||||
| (Ord r, Ord plane, Ord a) => Ord (MDVertex r plane a) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Methods compare :: MDVertex r plane a -> MDVertex r plane a -> Ordering # (<) :: MDVertex r plane a -> MDVertex r plane a -> Bool # (<=) :: MDVertex r plane a -> MDVertex r plane a -> Bool # (>) :: MDVertex r plane a -> MDVertex r plane a -> Bool # (>=) :: MDVertex r plane a -> MDVertex r plane a -> Bool # max :: MDVertex r plane a -> MDVertex r plane a -> MDVertex r plane a # min :: MDVertex r plane a -> MDVertex r plane a -> MDVertex r plane a # | |||||
| Num r => IsBoxable (MDVertex r plane a) Source # | |||||
| HasDefiners (MDVertex r plane a) plane Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Methods definersOf :: MDVertex r plane a -> Definers plane Source # | |||||
| Affine_ (MDVertex r plane a) 2 r Source # | |||||
| Num r => Point_ (MDVertex r plane a) 2 r Source # | |||||
| HasCoordinates (MDVertex r plane a) (MDVertex r plane a) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Methods coordinates :: IndexedTraversal1 Int (MDVertex r plane a) (MDVertex r plane a) (NumType (MDVertex r plane a)) (NumType (MDVertex r plane a)) # | |||||
| HasVector (MDVertex r plane a) (MDVertex r plane a) Source # | |||||
| type Rep (MDVertex r plane a) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region type Rep (MDVertex r plane a) = D1 ('MetaData "MDVertex" "HGeometry.Plane.LowerEnvelope.Connected.Region" "hgeometry-1.0.0.0-inplace" 'False) (C1 ('MetaCons "MDVertex" 'PrefixI 'True) (S1 ('MetaSel ('Just "_location") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point 3 r)) :*: (S1 ('MetaSel ('Just "_definers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Definers plane)) :*: S1 ('MetaSel ('Just "_vertexData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))) | |||||
| type Dimension (MDVertex r plane a) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region type Dimension (MDVertex r plane a) = 2 | |||||
| type NumType (MDVertex r plane a) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region type NumType (MDVertex r plane a) = r | |||||
location :: forall r1 plane a r2 f. Functor f => (Point 3 r1 -> f (Point 3 r2)) -> MDVertex r1 plane a -> f (MDVertex r2 plane a) Source #
vertexData :: forall r plane a1 a2 f. Functor f => (a1 -> f a2) -> MDVertex r plane a1 -> f (MDVertex r plane a2) Source #
toConvexPolygonIn :: (Rectangle_ rectangle corner, Point_ corner 2 r, Point_ point 2 r, Ord r, Fractional r) => rectangle -> Region r point -> Either (ConvexPolygonF (Cyclic NonEmpty) point) (ConvexPolygonF (Cyclic NonEmpty) (OriginalOrExtra point (Point 2 r))) Source #
Computes a convex polygon corresponding to the region.
pre: the bounding box (strictly) contains all vertices in its interior
intersectionLine :: (Plane_ plane r, Fractional r, Eq r) => plane -> plane -> Maybe (VerticalOrLineEQ r) Source #
Given two planes, computes the line in which they intersect.
intersectionPoint :: (Plane_ plane r, Ord r, Fractional r) => Three plane -> Maybe (Point 3 r) Source #
Computes there the three planes intersect
intersectionVector :: (Plane_ plane r, Ord r, Fractional r) => plane -> plane -> Maybe (Vector 2 r) Source #
Computes the direction vector v of the directed line l in which the two planes h and h' intersect, and so that h will be to the left of the directed line
fromMinimizationDiagramIn :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Point_ corner 2 r, Foldable1 set, Ord vtxData, Show r, Show corner, Show plane, Show vtxData) => Triangle corner -> set plane -> Maybe (MinimizationDiagram r (MDVertex r plane vtxData) plane) -> NEMap plane (ClippedMDCell r plane vtxData) Source #
Compute a clipped minimization diagram within the given triangle
The result is essentially a ClippedMinimizationDiagram.
fromVertexForm :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Show r, Show plane, Ord vtxData, HasDefiners vtxData plane) => NEMap (Point 3 r) vtxData -> MinimizationDiagram r (MDVertex r plane vtxData) plane Source #
Given the vertices of the lower envelope; compute the minimization diagram.
\(O(h\log h)\) assuming that the input is non-degenerate.
fromVertexFormIn :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Show r, Show plane, Point_ corner 2 r, Foldable1 set, Show r, Show corner, Show vertexData, Ord vertexData, HasDefiners vertexData plane) => Triangle corner -> set plane -> NEMap (Point 3 r) vertexData -> NEMap plane (ClippedMDCell r plane vertexData) Source #
Computes the part of the minimization diagram inside the given triangle.
This function takes both the set of planes, as well as the vertex form of the lower envelope of these planes.
mergeDefiners :: (Plane_ plane r, Ord plane, Ord r, Fractional r, Show plane, Show r) => Point 3 r -> Definers plane -> Definers plane -> Definers plane Source #
Merge two lists of definers.
\(O(n\log n)\), where \(n\) is the total number of planes involved.
definers :: (Plane_ plane r, Ord r, Fractional r) => Three plane -> Maybe (Point 3 r, Definers plane) Source #
Smart constructor for creating the definers of three planes
fromCCWList :: NonEmpty plane -> Definers plane Source #
Given the planes in order, starting with the one that is closest in the up direction, construct the Definers.
type ClippedBoundedRegion (r :: k) vertex corner = ConvexPolygonF (Cyclic NonEmpty) (OriginalOrExtra vertex corner) Source #
A Convex bounded region, which may be clipped using vertices of type corner.
in CCW order, starting with the plane that is minimal at the vertical up direction from their common vertex.
Instances
| Foldable1 Definers Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods fold1 :: Semigroup m => Definers m -> m # foldMap1 :: Semigroup m => (a -> m) -> Definers a -> m # foldMap1' :: Semigroup m => (a -> m) -> Definers a -> m # toNonEmpty :: Definers a -> NonEmpty a # maximum :: Ord a => Definers a -> a # minimum :: Ord a => Definers a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Definers a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Definers a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Definers a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Definers a -> b # | |||||
| Functor Definers Source # | |||||
| Foldable Definers Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods fold :: Monoid m => Definers m -> m # foldMap :: Monoid m => (a -> m) -> Definers a -> m # foldMap' :: Monoid m => (a -> m) -> Definers a -> m # foldr :: (a -> b -> b) -> b -> Definers a -> b # foldr' :: (a -> b -> b) -> b -> Definers a -> b # foldl :: (b -> a -> b) -> b -> Definers a -> b # foldl' :: (b -> a -> b) -> b -> Definers a -> b # foldr1 :: (a -> a -> a) -> Definers a -> a # foldl1 :: (a -> a -> a) -> Definers a -> a # elem :: Eq a => a -> Definers a -> Bool # maximum :: Ord a => Definers a -> a # minimum :: Ord a => Definers a -> a # | |||||
| NFData plane => NFData (Definers plane) Source # | |||||
| Generic (Definers plane) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Associated Types
| |||||
| Show plane => Show (Definers plane) Source # | |||||
| Eq plane => Eq (Definers plane) Source # | |||||
| Ord plane => Ord (Definers plane) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods compare :: Definers plane -> Definers plane -> Ordering # (<) :: Definers plane -> Definers plane -> Bool # (<=) :: Definers plane -> Definers plane -> Bool # (>) :: Definers plane -> Definers plane -> Bool # (>=) :: Definers plane -> Definers plane -> Bool # | |||||
| HasDefiners (Definers plane) plane Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods definersOf :: Definers plane -> Definers plane Source # | |||||
| HasDefiners (core :+ Definers plane) plane Source # | |||||
| HasDefiners (Definers plane, b) plane Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods definersOf :: (Definers plane, b) -> Definers plane Source # | |||||
| type Rep (Definers plane) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm type Rep (Definers plane) = D1 ('MetaData "Definers" "HGeometry.Plane.LowerEnvelope.Connected.VertexForm" "hgeometry-1.0.0.0-inplace" 'True) (C1 ('MetaCons "Definers" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty plane)))) | |||||
type VertexForm (map :: Type -> Type -> k) r plane = map (Point 3 r) (Definers plane) Source #
The vertices of a lower envelope is just a Map with every vertex its definers, i.e. the planes that define the vertex in CCW order around it.
definers :: (Plane_ plane r, Ord r, Fractional r) => Three plane -> Maybe (Point 3 r, Definers plane) Source #
Smart constructor for creating the definers of three planes
fromCCWList :: NonEmpty plane -> Definers plane Source #
Given the planes in order, starting with the one that is closest in the up direction, construct the Definers.
newtype Definers plane Source #
in CCW order, starting with the plane that is minimal at the vertical up direction from their common vertex.
Instances
| Foldable1 Definers Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods fold1 :: Semigroup m => Definers m -> m # foldMap1 :: Semigroup m => (a -> m) -> Definers a -> m # foldMap1' :: Semigroup m => (a -> m) -> Definers a -> m # toNonEmpty :: Definers a -> NonEmpty a # maximum :: Ord a => Definers a -> a # minimum :: Ord a => Definers a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Definers a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Definers a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Definers a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Definers a -> b # | |||||
| Functor Definers Source # | |||||
| Foldable Definers Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods fold :: Monoid m => Definers m -> m # foldMap :: Monoid m => (a -> m) -> Definers a -> m # foldMap' :: Monoid m => (a -> m) -> Definers a -> m # foldr :: (a -> b -> b) -> b -> Definers a -> b # foldr' :: (a -> b -> b) -> b -> Definers a -> b # foldl :: (b -> a -> b) -> b -> Definers a -> b # foldl' :: (b -> a -> b) -> b -> Definers a -> b # foldr1 :: (a -> a -> a) -> Definers a -> a # foldl1 :: (a -> a -> a) -> Definers a -> a # elem :: Eq a => a -> Definers a -> Bool # maximum :: Ord a => Definers a -> a # minimum :: Ord a => Definers a -> a # | |||||
| NFData plane => NFData (Definers plane) Source # | |||||
| Generic (Definers plane) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Associated Types
| |||||
| Show plane => Show (Definers plane) Source # | |||||
| Eq plane => Eq (Definers plane) Source # | |||||
| Ord plane => Ord (Definers plane) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods compare :: Definers plane -> Definers plane -> Ordering # (<) :: Definers plane -> Definers plane -> Bool # (<=) :: Definers plane -> Definers plane -> Bool # (>) :: Definers plane -> Definers plane -> Bool # (>=) :: Definers plane -> Definers plane -> Bool # | |||||
| HasDefiners (Definers plane) plane Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods definersOf :: Definers plane -> Definers plane Source # | |||||
| HasDefiners (core :+ Definers plane) plane Source # | |||||
| HasDefiners (Definers plane, b) plane Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods definersOf :: (Definers plane, b) -> Definers plane Source # | |||||
| type Rep (Definers plane) Source # | |||||
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm type Rep (Definers plane) = D1 ('MetaData "Definers" "HGeometry.Plane.LowerEnvelope.Connected.VertexForm" "hgeometry-1.0.0.0-inplace" 'True) (C1 ('MetaCons "Definers" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty plane)))) | |||||
class HasDefiners vertex plane | vertex -> plane where Source #
Instances
| HasDefiners (Definers plane) plane Source # | |
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods definersOf :: Definers plane -> Definers plane Source # | |
| HasDefiners (core :+ Definers plane) plane Source # | |
| HasDefiners (Definers plane, b) plane Source # | |
Defined in HGeometry.Plane.LowerEnvelope.Connected.VertexForm Methods definersOf :: (Definers plane, b) -> Definers plane Source # | |
| HasDefiners (MDVertex r plane a) plane Source # | |
Defined in HGeometry.Plane.LowerEnvelope.Connected.Region Methods definersOf :: MDVertex r plane a -> Definers plane Source # | |