42 lines
814 B
C++
42 lines
814 B
C++
#ifndef SCENE_H
|
|
#define SCENE_H
|
|
|
|
#include "lights.h"
|
|
#include <glew/glew.h>
|
|
#include <vector>
|
|
|
|
class Entity;
|
|
class Camera;
|
|
class Mesh;
|
|
class Material;
|
|
class Shader;
|
|
|
|
class Scene
|
|
{
|
|
Lights directionnalLights;
|
|
Lights pointLights;
|
|
std::vector<Entity*> entities;
|
|
Camera* camera;
|
|
|
|
public:
|
|
// main methods
|
|
Scene() : camera(NULL) {}
|
|
~Scene();
|
|
void drawAll();
|
|
|
|
// entities
|
|
void addEntity(Entity* parent, Mesh* mesh, Material* mat);
|
|
void addEntity(Mesh* mesh, Material* mat);
|
|
void addEntity(Entity* entity);
|
|
|
|
// lights
|
|
void addDirectionnalLight(const glm::vec3 &position, const glm::vec3 &color);
|
|
void addPointLight(const glm::vec3 &position, const glm::vec3 &color);
|
|
|
|
// camera
|
|
void setCamera(Camera* myCamera);
|
|
Camera* getCamera();
|
|
};
|
|
|
|
#endif // SCENE_H
|