Safe Haskell | None |
---|---|

Language | Haskell2010 |

PFOV (Permissive Field of View) clean-room reimplemented based on the algorithm described in http://roguebasin.roguelikedevelopment.org/index.php?title=Precise_Permissive_Field_of_View, though the general structure is more influenced by recursive shadow casting, as implemented in Shadow.hs. In the result, this algorithm is much faster than the original algorithm on dense maps, since it does not scan areas blocked by shadows.

# Documentation

Calculates the list of tiles, in `Bump`

coordinates, visible from (0, 0).

dsteeper :: Bump -> Bump -> Bump -> Bool Source

Compare steepness of `(p1, f)`

and `(p2, f)`

.
Debug: Verify that the results of 2 independent checks are equal.

intersect :: Line -> Distance -> (Int, Int) Source

The Y coordinate, represented as a fraction, of the intersection of
a given line and the line of diagonals of squares at distance
`d`

from (0, 0).