//
// Created by trotFunky on 03/11/2019.
//

#ifndef LABYRINTHE_MOVEMENTMANAGER_H
#define LABYRINTHE_MOVEMENTMANAGER_H

#include <Math/Vectors.h>
#include <DataHandling/Texture.h>
#include <Camera.h>

#include "TileTypes.h"

/// Returns the colour of the pixel corresponding to the current world position, assuming the map starts at (0,0).
Vec3i current_map_colour(const Vec3d& world_pos, const Texture& texture, const unsigned int& pixel_scale);

/// Translates the camera inside the maze and check for collisions
/// \param translation Translation that will be executed in the horizontal plane, x forward, z strafe.
void constrained_translation(const Vec3d& translation, Camera& camera, const Texture& map, const unsigned int& pixel_scale);

#endif //LABYRINTHE_MOVEMENTMANAGER_H
