SparrowRenderer/scene.h

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