Module

Data.Vector.Polymorphic

#length

length :: forall p. ToPos Number p => p -> Number

Get the length of a position vector

#diagonal

diagonal :: forall s. ToSize Number s => s -> Number

Get the diagonal of a size

#inside

inside :: forall r p n. ToRegion n r => ToPos n p => Ord n => Semiring n => r -> p -> Boolean

Checks if a position is inside a region. Size of the region should be positive. Inclusive on the lower bound, exclusive on the higher bound.

#outside

outside :: forall r p n. ToRegion n r => ToPos n p => Ord n => Semiring n => r -> p -> Boolean

inside, but with its result negated.

#putInsideMod

putInsideMod :: forall r p n. ToRegion n r => AsPosEndo n p => EuclideanRing n => r -> p -> p

Put a position inside a region by using the modulus operator

#area

area :: forall s n. ToSize n s => Semiring n => s -> n

Get the area of a size

#perimeter

perimeter :: forall s n. ToSize n s => Semiring n => s -> n

Get the perimeter of a size

#ratio

ratio :: forall s n. ToSize n s => EuclideanRing n => s -> n

Get the ratio of a size by dividing the width by the height

#midPos

midPos :: forall s p n. ToRegion n s => FromPos n p => EuclideanRing n => s -> p

Get the center position of a region

#dot

dot :: forall p n. ToPos n p => Semiring n => p -> p -> n

Get the dot product of two vectors

#perpendicular

perpendicular :: forall p n. ToPos n p => Semiring n => Eq n => p -> p -> Boolean

Check if two vectors are perpendicular

#parallel

parallel :: forall p n. ToPos n p => EuclideanRing n => Eq n => p -> p -> Boolean

Check if two vectors are parallel

#convertPos

convertPos :: forall p1 p2 n. ToPos n p1 => FromPos n p2 => p1 -> p2

#convertSize

convertSize :: forall p1 p2 n. ToSize n p1 => FromSize n p2 => p1 -> p2

#convertRegion

convertRegion :: forall p1 p2 n. ToRegion n p1 => FromRegion n p2 => p1 -> p2

Re-exports from Data.Vector.Polymorphic.Types

#makeRect

makeRect :: forall a. a -> a -> a -> a -> Rect a

Constructs a Rect from four values

#getY

getY :: forall a. Vector2 a -> a

Get the y value from a Vector2

#getX

getX :: forall a. Vector2 a -> a

Get the x value from a Vector2

#getSize

getSize :: forall a. Rect a -> Vector2 a

Get the size of a Rect

#getPos

getPos :: forall a. Rect a -> Vector2 a

Get the topleft position of a Rect

#(><)

Operator alias for Data.Vector.Polymorphic.Types.Vector2 (non-associative / precedence 2)

Modules