Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Circle p a = Circle (p a) a
- mkCircleInt :: Num a => p a -> a -> Circle p a
- radius :: Circle p a -> a
- center :: Circle p a -> p a
- data Polygon p a = Polygon (p a) [p a]
- convexHull' :: forall p a. (Num (p a), Fractional a, Ord a, Scale p, Point p) => [p a] -> Maybe (Polygon p a)
- rectangleInt :: forall p a. (Point p, RealFloat a, Eq a, Translate p, Rotation p) => p a -> a -> a -> Maybe (Polygon p a)
- data Shape p a
- = ShapeCircle (Circle p a)
- | ShapePolygon (Polygon p a)
- class Spatial s where
- data Box a = Box (a, a) (a, a)
- spatialBox :: (Floating a, Ord a, Spatial s) => s a -> Box a
Documentation
Circle (p a) a |
mkCircleInt :: Num a => p a -> a -> Circle p a Source
A Polygon is meant to describe a convex 2-dimensional shape.
Polygon (p a) [p a] | The point (first argument) should be inside the polygon, otherwise weird stuff will happen. Also you must not specify the same vector (second argument) twice. |
Rotation p => Rotation (Polygon p) Source | |
Translate p => Translate (Polygon p) Source | |
Point p => Spatial (Polygon p) Source | |
(Point p, Ord a, Eq (p a), Floating a) => Intersect (p a) (Polygon p a) Source | |
Eq (p a) => Eq (Polygon p a) Source | |
Read (p a) => Read (Polygon p a) Source | |
Show (p a) => Show (Polygon p a) Source | |
(Arbitrary (p a), Num (p a), RealFloat a, Point p, Scale p, Eq (p a)) => Arbitrary (Polygon p a) Source | |
(Point p, Floating a, Num (p a), Eq (p a), Ord a) => Intersect (Polygon p a) (p a) Source | |
(RealFloat a, Eq a, Eq (p a), Point p) => Intersect (FinLine p a) (Polygon p a) Source | |
(RealFloat a, Eq a, Eq (p a), Point p) => Intersect (Polygon p a) (FinLine p a) Source | |
(Eq (p a), Num (p a), RealFloat a, Point p) => Intersect (Polygon p a) (Polygon p a) Source | |
(Eq (p a), Floating a, Num (p a), Ord a, Point p) => Intersect (Polygon p a) (Circle p a) Source | |
(Eq (p a), Floating a, Num (p a), Ord a, Point p) => Intersect (Circle p a) (Polygon p a) Source |
convexHull' :: forall p a. (Num (p a), Fractional a, Ord a, Scale p, Point p) => [p a] -> Maybe (Polygon p a) Source
Calculate the convex hull of an arbitrary number of points.
Shape
describes geometric shapes in the euklidean plain.
ShapeCircle (Circle p a) | |
ShapePolygon (Polygon p a) |
(Rotation p, Point p) => Rotation (Shape p) Source | |
Translate p => Translate (Shape p) Source | |
Point p => Spatial (Shape p) Source | |
(Floating a, Eq (p a), Num (p a), Ord a, Point p, Distance p p) => Intersect (p a) (Shape p a) Source | |
(Eq a, Eq (p a)) => Eq (Shape p a) Source | |
(Read a, Read (p a)) => Read (Shape p a) Source | |
(Show a, Show (p a)) => Show (Shape p a) Source | |
(Eq (p a), RealFloat a, Num (p a), Point p, Arbitrary a, Arbitrary (p a), Scale p) => Arbitrary (Shape p a) Source | |
(Floating a, Eq (p a), Num (p a), Ord a, Point p, Distance p p) => Intersect (Shape p a) (p a) Source | |
(Point p, RealFloat a, Ord a, Eq (p a)) => Intersect (FinLine p a) (Shape p a) Source | |
(Point p, RealFloat a, Ord a, Eq (p a)) => Intersect (Shape p a) (FinLine p a) Source | |
(Ord a, Distance p p, Eq (p a), Num (p a), Point p, RealFloat a) => Intersect (Shape p a) (Shape p a) Source |