SFML and Dear ImGui have incompatible color types, abstract them through
a new Color class which has conversions.
Centralize color constants in a namespace as well.
Introduce Dear ImGui to the CMakeBuild, allow building without it.
Add two debug interfaces : one FPS counter and frame time graph,
one map visualizer and editor.
Previously CastRay did the scale computation and used the player view statistics.
This makes it quite specialized, and the rest of the computations are made outside.
Move the computations in the render function and make castRay generic.
World has a lot of type conversion warnings. Take care of most of them,
for a slight performance hit ( :( ).
Re-order constructor parameters to match declaration.
Move FillColumn to a more appropriate place.
GetBlock gets called a lot : use direct memory access of the vector
rather than going through bounds checks with .at().
Introduce an integer overload to remove warnings.
Handle window resizes by resizing the view frame as well.
Clean up the event handling to allow interleaving other code between
different checks.
Remove early first frame, handle it like the others.
Player: Add rotation and linear speeds, as well as their current state.
Player: Allow to move in the local coordinates and compute
world-speed equivalent.
Player: Update movement axis while rotating.
World: Add a function to advance a step.
Main: Handle key events, add world step in the main loop.
Implement the basic raycaster, checking every block intersection and the block
linked to that position.
Split the screen uniformally along the width.
Add data needed for camera maths in the Player class
Specify constraints on the raycast parameters.
Render the screen using the raycasts.
Call the renderer in the main loop.
Rotation wasn't handled properly at all.
Properly bound between 0 and 360, and use
a proper modulo for floats.
Switch to float to have a more fluid rotation
between frames.