2014-10-20 16:38:29 +00:00
|
|
|
#ifndef LEVEL_HH_INCLUDED
|
|
|
|
#define LEVEL_HH_INCLUDED
|
|
|
|
|
|
|
|
#include <string>
|
2014-10-30 22:54:19 +00:00
|
|
|
#include "object.hh"
|
|
|
|
#include "light.hh"
|
2014-10-20 16:38:29 +00:00
|
|
|
#include "entity.hh"
|
2014-10-20 17:07:45 +00:00
|
|
|
#include "terrain.hh"
|
2014-11-08 00:17:23 +00:00
|
|
|
#include "material.hh"
|
2014-11-13 16:19:56 +00:00
|
|
|
#include "camera.hh"
|
2014-10-20 16:38:29 +00:00
|
|
|
|
|
|
|
class Level {
|
|
|
|
public:
|
2014-10-20 16:44:23 +00:00
|
|
|
Level(std::string filePath);
|
2014-10-30 22:54:19 +00:00
|
|
|
Level();
|
2014-10-20 16:38:29 +00:00
|
|
|
~Level();
|
2014-11-08 01:45:32 +00:00
|
|
|
void load(ACGL::OpenGL::SharedShaderProgram shader); // Shader is necessary for correct texture assigning
|
2014-11-12 23:40:28 +00:00
|
|
|
void update(float runTime);
|
2014-10-30 22:54:19 +00:00
|
|
|
void render();
|
2014-10-30 22:59:03 +00:00
|
|
|
glm::vec3 getAmbientLight();
|
|
|
|
std::vector<Light> getLights();
|
2014-11-13 00:22:33 +00:00
|
|
|
Object* getCameraCenter();
|
2014-11-13 16:19:56 +00:00
|
|
|
Camera getCamera();
|
2014-10-20 16:38:29 +00:00
|
|
|
private:
|
2014-10-20 16:44:23 +00:00
|
|
|
std::string filePath;
|
2014-10-30 22:54:19 +00:00
|
|
|
std::vector<Object> objects;
|
|
|
|
std::vector<Light> lights;
|
|
|
|
glm::vec3 ambientLight;
|
2014-11-13 00:22:33 +00:00
|
|
|
Object* cameraCenter;
|
2014-11-13 16:19:56 +00:00
|
|
|
Camera camera;
|
2014-10-20 17:07:45 +00:00
|
|
|
Terrain terrain;
|
2014-10-20 16:44:23 +00:00
|
|
|
};
|
2014-10-20 16:48:20 +00:00
|
|
|
|
|
|
|
#endif
|