Saxum/level.hh

35 lines
869 B
C++
Raw Normal View History

2014-10-20 16:38:29 +00:00
#ifndef LEVEL_HH_INCLUDED
#define LEVEL_HH_INCLUDED
#include <string>
#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"
#include "material.hh"
#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);
Level();
2014-10-20 16:38:29 +00:00
~Level();
void load(ACGL::OpenGL::SharedShaderProgram shader); // Shader is necessary for correct texture assigning
void update(float runTime, glm::vec2 mouseDelta);
void render();
2014-10-30 22:59:03 +00:00
glm::vec3 getAmbientLight();
std::vector<Light> getLights();
Object* getCameraCenter();
Camera getCamera();
2014-10-20 16:38:29 +00:00
private:
2014-10-20 16:44:23 +00:00
std::string filePath;
std::vector<Object> objects;
std::vector<Light> lights;
glm::vec3 ambientLight;
Object* cameraCenter;
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