hgeometry-1.0.0.0: Geometric Algorithms, Data structures, and Data types.
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellSafe-Inferred
LanguageGHC2021

HGeometry.Ellipse

Description

Data type for representing an Ellipse.

Synopsis

Documentation

newtype Ellipse r Source #

A type representing planar ellipses

Constructors

Ellipse (Transformation 2 r) 

Instances

Instances details
Foldable Ellipse Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

fold :: Monoid m => Ellipse m -> m #

foldMap :: Monoid m => (a -> m) -> Ellipse a -> m #

foldMap' :: Monoid m => (a -> m) -> Ellipse a -> m #

foldr :: (a -> b -> b) -> b -> Ellipse a -> b #

foldr' :: (a -> b -> b) -> b -> Ellipse a -> b #

foldl :: (b -> a -> b) -> b -> Ellipse a -> b #

foldl' :: (b -> a -> b) -> b -> Ellipse a -> b #

foldr1 :: (a -> a -> a) -> Ellipse a -> a #

foldl1 :: (a -> a -> a) -> Ellipse a -> a #

toList :: Ellipse a -> [a] #

null :: Ellipse a -> Bool #

length :: Ellipse a -> Int #

elem :: Eq a => a -> Ellipse a -> Bool #

maximum :: Ord a => Ellipse a -> a #

minimum :: Ord a => Ellipse a -> a #

sum :: Num a => Ellipse a -> a #

product :: Num a => Ellipse a -> a #

Traversable Ellipse Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

traverse :: Applicative f => (a -> f b) -> Ellipse a -> f (Ellipse b) #

sequenceA :: Applicative f => Ellipse (f a) -> f (Ellipse a) #

mapM :: Monad m => (a -> m b) -> Ellipse a -> m (Ellipse b) #

sequence :: Monad m => Ellipse (m a) -> m (Ellipse a) #

Functor Ellipse Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

fmap :: (a -> b) -> Ellipse a -> Ellipse b #

(<$) :: a -> Ellipse b -> Ellipse a #

Show r => Show (Ellipse r) Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

showsPrec :: Int -> Ellipse r -> ShowS #

show :: Ellipse r -> String #

showList :: [Ellipse r] -> ShowS #

Eq r => Eq (Ellipse r) Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

(==) :: Ellipse r -> Ellipse r -> Bool #

(/=) :: Ellipse r -> Ellipse r -> Bool #

Num r => IsTransformable (Ellipse r) Source # 
Instance details

Defined in HGeometry.Ellipse

type Dimension (Ellipse r) Source # 
Instance details

Defined in HGeometry.Ellipse

type Dimension (Ellipse r) = 2
type NumType (Ellipse r) Source # 
Instance details

Defined in HGeometry.Ellipse

type NumType (Ellipse r) = r

affineTransformation :: Iso (Ellipse r) (Ellipse s) (Transformation 2 r) (Transformation 2 s) Source #

Iso to access the transformation (applied on the unit circle) that we use to actually represent the ellipse

ellipseMatrix :: Iso (Ellipse r) (Ellipse s) (Matrix 3 3 r) (Matrix 3 3 s) Source #

Get the matrix describing the ellipse.

unitEllipse :: Num r => Ellipse r Source #

Ellipse representing the unit circle

circleToEllipse :: (Radical r, Point_ point 2 r) => Circle point -> Ellipse r Source #

Convert a circle to an ellipse

ellipseToCircle :: (Num r, Eq r) => Ellipse r -> Maybe (Circle (Point 2 r)) Source #

Try to Convert a circle into an ellipse. Returns a Nothing if the ellipse is not an actual circle.

_EllipseCircle :: (Radical r, Eq r) => Prism' (Ellipse r) (Circle (Point 2 r)) Source #

Converting between ellipses and circles

Prims to convert between an Ellipse and a Circle.