-- | Visibility on the 2D plane. -- Uses an instance of Warnocks algorithm. -- TODO: animate the line segments, make them spin and move around so we can see -- that it's a dynamic visiblity algorithm -- not pre-computed. -- Draw lines in random shades of color depending on the index. -- Make a key to swap between rectangular and polar projections. -- Allow viewpoint to be set with the mouse. -- -- TODO: To start with just do brute force visibility by dividing field into cells -- and doing vis based on center point of cell. -- import Interface import Draw import State import World import Graphics.Gloss.Interface.Pure.Game main :: IO () main = do world <- initialWorld let state = initialState world play (InWindow "Visibility" (800, 800) (10, 10)) black 100 state drawState handleInput stepState