Labyrinth-JIN/src/Maze.h

52 lines
1.1 KiB
C++

//
// Created by trotfunky on 04/11/2019.
//
#ifndef LABYRINTHE_MAZE_H
#define LABYRINTHE_MAZE_H
#include <string>
#include <vector>
#include <DataHandling/Texture.h>
#include <DataHandling/Model3D.h>
#include "TileTypes.h"
class Maze {
public:
Maze(const std::string& maze_map, unsigned int scaling_factor, const Texture& floor_texture,
const Texture& wall_texture, const Texture& outside_texture, Model3D& objective);
~Maze();
void draw();
bool remove_objective(const Vec2i& position);
unsigned int scaling_factor;
Texture map;
unsigned int total_objectives = 0;
private:
const Texture& floor;
const Texture& wall;
const Texture& out;
Model3D& objective;
GLuint display_list_index = -1;
const double objective_altitude = 0;
const double wall_height = 2;
unsigned corner_pos;
Vec3d outside_position;
std::vector<Vec3d> objective_positions;
// FIXME : Draw only border walls...
std::vector<Vec3d> wall_positions;
void preapre_display_list();
};
#endif //LABYRINTHE_MAZE_H