LambdaHack-0.2.10.6: A roguelike game engine in early and active development

Safe HaskellNone

Game.LambdaHack.Common.VectorXY

Description

Basic cartesian geometry operations on 2D vectors.

Synopsis

Documentation

newtype VectorXY Source

2D vectors in cartesian representation.

Constructors

VectorXY (X, Y) 

shiftXY :: PointXY -> VectorXY -> PointXYSource

Shift a point by a vector.

movesXY :: [VectorXY]Source

Vectors of all unit moves in the chessboard metric, clockwise, starting north-west.

movesCardinalXY :: [VectorXY]Source

Vectors of all cardinal direction unit moves, clockwise, starting north.

chessDistXY :: VectorXY -> IntSource

The lenght of a vector in the chessboard metric, where diagonal moves cost 1.

euclidDistSqXY :: VectorXY -> IntSource

Squared euclidean length of a vector.

negXY :: VectorXY -> VectorXYSource

Reverse an arbirary vector.

vicinityXYSource

Arguments

:: (X, Y, X, Y)

limit the search to this area

-> PointXY

position to find neighbours of

-> [PointXY] 

All (8 at most) closest neighbours of a point within an area.

vicinityCardinalXYSource

Arguments

:: (X, Y, X, Y)

limit the search to this area

-> PointXY

position to find neighbours of

-> [PointXY] 

All (4 at most) cardinal direction neighbours of a point within an area.