geom2d-0.1.0.1: package for geometry in euklidean 2d space

Safe HaskellNone
LanguageHaskell2010

Geom2d.Shape.Internal

Synopsis

Documentation

data Circle p a Source

Constructors

Circle (p a) a 

Instances

(Point p, Distance p p) => Distance p (Circle p) Source 
(Rotation p, Point p) => Rotation (Circle p) Source 
(Point p, Distance p p) => Distance (Circle p) p Source 
(Floating a, Ord a, Distance p p) => Intersect (p a) (Circle p a) Source 
(Eq a, Eq (p a)) => Eq (Circle p a) Source 
(Read a, Read (p a)) => Read (Circle p a) Source 
(Show a, Show (p a)) => Show (Circle p a) Source 
(Arbitrary a, Arbitrary (p a), Ord a, Num a) => Arbitrary (Circle p a) Source 
(Floating a, Ord a, Distance p p) => Intersect (Circle p a) (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 
(Floating a, Ord a, Distance p p) => Intersect (Circle p a) (Circle p a) Source 

mkCircleInt :: Num a => p a -> a -> Circle p a Source

radius :: Circle p a -> a Source

center :: Circle p a -> p a Source

data Polygon p a Source

A Polygon is meant to describe a convex 2-dimensional shape.

Constructors

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.

Instances

Rotation p => Rotation (Polygon p) Source 
(Point p, Fractional a, Num (p a), Eq (p a), Ord 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, Fractional a, Num (p a), Eq (p a), Ord a) => Intersect (Polygon p a) (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.

rectangleInt Source

Arguments

:: (Point p, RealFloat a, Eq a, Translate p, Rotation p) 
=> p a 
-> a

length of one side

-> a

length of the other side

-> Maybe (Polygon p a) 

data Shape p a Source

Shape describes geometric shapes in the euklidean plain.

Constructors

ShapeCircle (Circle p a) 
ShapePolygon (Polygon p a) 

Instances

(Rotation p, Point p) => Rotation (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 
(Floating a, Eq (p a), Num (p a), Ord a, Point p, Distance p p) => Intersect (Shape p a) (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