source: trunk/src/scene.h @ 2394

Last change on this file since 2394 was 2289, checked in by sam, 7 years ago

easymesh: interface the shiny shader with new Light objects.

  • Property svn:keywords set to Id
File size: 1.1 KB
Line 
1//
2// Lol Engine
3//
4// Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net>
5//   This program is free software; you can redistribute it and/or
6//   modify it under the terms of the Do What The Fuck You Want To
7//   Public License, Version 2, as published by Sam Hocevar. See
8//   http://www.wtfpl.net/ for more details.
9//
10
11//
12// The Scene class
13// ---------------
14//
15
16#if !defined __LOL_SCENE_H__
17#define __LOL_SCENE_H__
18
19#include <stdint.h>
20
21#include "tileset.h"
22#include "light.h"
23
24namespace lol
25{
26
27class SceneData;
28
29class Scene
30{
31public:
32    Scene();
33    ~Scene();
34
35    static Scene *GetDefault();
36
37    void SetViewMatrix(mat4 const &m);
38    void SetProjMatrix(mat4 const &m);
39    mat4 const &GetViewMatrix(void);
40    mat4 const &GetProjMatrix(void);
41
42    void Reset();
43    void Render();
44
45    /* FIXME: this should be deprecated -- it doesn't really match
46     * the architecture we want to build */
47    void AddTile(TileSet *tileset, int id, vec3 pos, int o, vec2 scale);
48
49    void AddLight(Light *light);
50    Array<Light *> const &GetLights() const;
51
52private:
53    SceneData *data;
54};
55
56} /* namespace lol */
57
58#endif // __LOL_SCENE_H__
59
Note: See TracBrowser for help on using the repository browser.