Lugdunum
0.1.0
include
lug
Graphics
Scene
Scene.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <list>
4
#include <string>
5
6
#include <
lug/Graphics/Export.hpp
>
7
#include <
lug/Graphics/Render/Light.hpp
>
8
#include <
lug/Graphics/Render/SkyBox.hpp
>
9
#include <
lug/Graphics/Resource.hpp
>
10
#include <
lug/Graphics/Scene/Node.hpp
>
11
12
namespace
lug
{
13
namespace
Graphics {
14
15
namespace
Builder {
16
class
Scene;
17
}
// Builder
18
19
namespace
Render {
20
namespace
Camera {
21
class
Camera;
22
}
// Camera
23
24
class
Queue;
25
class
View;
26
}
// Render
27
28
namespace
Scene {
29
30
class
LUG_GRAPHICS_API
Scene
:
public
Resource
{
31
friend
class
Builder::Scene
;
32
33
public
:
34
Scene
() =
default
;
35
36
Scene
(
const
Scene
&) =
delete
;
37
Scene
(
Scene
&&) =
delete
;
38
39
Scene
& operator=(
const
Scene
&) =
delete
;
40
Scene
& operator=(
Scene
&&) =
delete
;
41
42
~
Scene
() =
default
;
43
44
Node
* createSceneNode(
const
std::string& name);
45
46
void
setSkyBox(
Resource::SharedPtr<Render::SkyBox>
skyBox);
47
48
Node
& getRoot();
49
const
Node
& getRoot()
const
;
50
51
Node
* getSceneNode(
const
std::string& name);
52
const
Node
* getSceneNode(
const
std::string& name)
const
;
53
const
Resource::SharedPtr<Render::SkyBox>
getSkyBox()
const
;
54
55
void
fetchVisibleObjects(
const
Renderer
& renderer,
const
Render::View
& renderView,
const
Render::Camera::Camera
& camera,
Render::Queue
& renderQueue)
const
;
56
57
private
:
58
Scene
(
const
std::string& name);
59
60
private
:
61
Node
_root
;
62
63
Resource::SharedPtr<Render::SkyBox>
_skyBox{
nullptr
};
64
65
std::list<Node>
_nodes
;
66
};
67
68
#include <
lug/Graphics/Scene/Scene.inl
>
69
70
}
// Scene
71
}
// Graphics
72
}
// lug
Node.hpp
LUG_GRAPHICS_API
#define LUG_GRAPHICS_API
Definition:
Export.hpp:11
Light.hpp
lug::Graphics::Scene::Node
Definition:
Node.hpp:27
lug::Graphics::Render::Camera::Camera
Class for camera.
Definition:
Camera.hpp:30
lug::Graphics::Resource::SharedPtr
Dummy class for a shared pointer.
Definition:
Resource.hpp:66
lug::Graphics::Scene::Scene::_root
Node _root
Definition:
Scene.hpp:61
Resource.hpp
lug::Graphics::Resource
Class for resource.
Definition:
Resource.hpp:17
SkyBox.hpp
lug::Graphics::Render::Queue
Definition:
Queue.hpp:17
lug::Graphics::Render::View
Definition:
View.hpp:18
lug::Graphics::Renderer
Definition:
Renderer.hpp:18
lug
Definition:
Application.hpp:11
lug::Graphics::Scene::Scene
Definition:
Scene.hpp:30
lug::Graphics::Scene::Scene::_nodes
std::list< Node > _nodes
Definition:
Scene.hpp:65
Scene.inl
Export.hpp
lug::Graphics::Builder::Scene
Definition:
Scene.hpp:16
Generated by
1.8.13