hgeometry-kernel
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageGHC2024

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
Functor Ellipse Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

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

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

Foldable Ellipse Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

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

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

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

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

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

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

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

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

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

toList :: Ellipse a -> [a] Source #

null :: Ellipse a -> Bool Source #

length :: Ellipse a -> Int Source #

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

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

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

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

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

Traversable Ellipse Source # 
Instance details

Defined in HGeometry.Ellipse

Methods

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

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

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

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

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

Defined in HGeometry.Ellipse

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

Defined in HGeometry.Ellipse

Methods

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

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

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 :: forall r s p f. (Profunctor p, Functor f) => p (Transformation 2 r) (f (Transformation 2 s)) -> p (Ellipse r) (f (Ellipse s)) Source #

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

ellipseMatrix :: forall r s p f. (Profunctor p, Functor f) => p (Matrix 3 3 r) (f (Matrix 3 3 s)) -> p (Ellipse r) (f (Ellipse 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.