geomancy-0.2.4.0: Geometry and matrix manipulation
Safe HaskellNone
LanguageHaskell2010

Geomancy.Point

Synopsis

Documentation

newtype Point v Source #

Constructors

Point v 

Instances

Instances details
Eq v => Eq (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

(==) :: Point v -> Point v -> Bool #

(/=) :: Point v -> Point v -> Bool #

Fractional v => Fractional (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

(/) :: Point v -> Point v -> Point v #

recip :: Point v -> Point v #

fromRational :: Rational -> Point v #

Num v => Num (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

(+) :: Point v -> Point v -> Point v #

(-) :: Point v -> Point v -> Point v #

(*) :: Point v -> Point v -> Point v #

negate :: Point v -> Point v #

abs :: Point v -> Point v #

signum :: Point v -> Point v #

fromInteger :: Integer -> Point v #

Ord v => Ord (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

compare :: Point v -> Point v -> Ordering #

(<) :: Point v -> Point v -> Bool #

(<=) :: Point v -> Point v -> Bool #

(>) :: Point v -> Point v -> Bool #

(>=) :: Point v -> Point v -> Bool #

max :: Point v -> Point v -> Point v #

min :: Point v -> Point v -> Point v #

Show v => Show (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

showsPrec :: Int -> Point v -> ShowS #

show :: Point v -> String #

showList :: [Point v] -> ShowS #

Storable v => Storable (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

sizeOf :: Point v -> Int #

alignment :: Point v -> Int #

peekElemOff :: Ptr (Point v) -> Int -> IO (Point v) #

pokeElemOff :: Ptr (Point v) -> Int -> Point v -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Point v) #

pokeByteOff :: Ptr b -> Int -> Point v -> IO () #

peek :: Ptr (Point v) -> IO (Point v) #

poke :: Ptr (Point v) -> Point v -> IO () #

NFData v => NFData (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

rnf :: Point v -> () #

MonoFunctor v => MonoFunctor (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

omap :: (Element (Point v) -> Element (Point v)) -> Point v -> Point v #

MonoPointed v => MonoPointed (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

opoint :: Element (Point v) -> Point v #

Elementwise v => Elementwise (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

epoint :: Element (Point v) -> Point v Source #

emap :: (Element (Point v) -> Element (Point v)) -> Point v -> Point v Source #

emap2 :: (Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v Source #

emap3 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v Source #

emap4 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v -> Point v Source #

emap5 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v -> Point v -> Point v Source #

VectorSpace v Float => AffineSpace (Point v) v Float Source # 
Instance details

Defined in Geomancy.Point

Methods

origin :: Point v #

(.+^) :: Point v -> v -> Point v #

(.-^) :: Point v -> v -> Point v #

(.-.) :: Point v -> Point v -> v #

distance :: Point v -> Point v -> Float #

type Element (Point v) Source # 
Instance details

Defined in Geomancy.Point

type Element (Point v) = Element v

class (Floating a, VectorSpace v a) => AffineSpace p v a | p -> v, v -> a #

Affine Space type relation.

An affine space is a set (type) p, and an associated vector space v over a field a.

Minimal complete definition

origin, (.+^), (.-.)

Instances

Instances details
VectorSpace v Float => AffineSpace (Point v) v Float Source # 
Instance details

Defined in Geomancy.Point

Methods

origin :: Point v #

(.+^) :: Point v -> v -> Point v #

(.-^) :: Point v -> v -> Point v #

(.-.) :: Point v -> Point v -> v #

distance :: Point v -> Point v -> Float #

(.+^) :: AffineSpace p v a => p -> v -> p infix 6 #

Addition of affine point and vector.

(.-^) :: AffineSpace p v a => p -> v -> p infix 6 #

Subtraction of affine point and vector.

(.-.) :: AffineSpace p v a => p -> p -> v infix 6 #

Subtraction of two points in the affine space, giving a vector.