numhask-space-0.7.1.0: Numerical spaces.
Safe HaskellNone
LanguageHaskell2010

NumHask.Space.XY

Description

Unification of Point and Rect.

Synopsis

Documentation

data XY a Source #

unification of a point and rect on the plane

Constructors

PointXY (Point a) 
RectXY (Rect a) 

Instances

Instances details
Functor XY Source # 
Instance details

Defined in NumHask.Space.XY

Methods

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

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

Eq a => Eq (XY a) Source # 
Instance details

Defined in NumHask.Space.XY

Methods

(==) :: XY a -> XY a -> Bool #

(/=) :: XY a -> XY a -> Bool #

Show a => Show (XY a) Source # 
Instance details

Defined in NumHask.Space.XY

Methods

showsPrec :: Int -> XY a -> ShowS #

show :: XY a -> String #

showList :: [XY a] -> ShowS #

Ord a => Semigroup (XY a) Source # 
Instance details

Defined in NumHask.Space.XY

Methods

(<>) :: XY a -> XY a -> XY a #

sconcat :: NonEmpty (XY a) -> XY a #

stimes :: Integral b => b -> XY a -> XY a #

(Ord a, Field a, Signed a) => Signed (XY a) Source # 
Instance details

Defined in NumHask.Space.XY

Methods

sign :: XY a -> XY a #

abs :: XY a -> XY a #

(Ord a, Field a) => Multiplicative (XY a) Source # 
Instance details

Defined in NumHask.Space.XY

Methods

(*) :: XY a -> XY a -> XY a #

one :: XY a #

Additive a => Additive (XY a) Source # 
Instance details

Defined in NumHask.Space.XY

Methods

(+) :: XY a -> XY a -> XY a #

zero :: XY a #

(Ord a, Subtractive a) => Subtractive (XY a) Source # 
Instance details

Defined in NumHask.Space.XY

Methods

negate :: XY a -> XY a #

(-) :: XY a -> XY a -> XY a #

pattern P :: a -> a -> XY a Source #

make an XY from a point

pattern R :: a -> a -> a -> a -> XY a Source #

make an XY from a rectangle

toRect :: XY a -> Rect a Source #

Convert an XY to a Rect

toPoint :: (Ord a, Field a) => XY a -> Point a Source #

Convert an XY to a Point

projectOn :: Rect Double -> Rect Double -> XY Double -> XY Double Source #

project an XY from one Rect to another, preserving relative position.

>>> projectOn one (Rect 0 1 0 1) zero
P -0.5 -0.5

projectTo :: Rect Double -> [XY Double] -> [XY Double] Source #

project an [XY a] from it's enclosing space to the given space

>>> projectTo one (zipWith P [0..2] [0..2])
[P -0.5 -0.5,P 0.0 0.0,P 0.5 0.5]