NAP
nap
system_modules
napscene
src
sceneservice.h
1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
* License, v. 2.0. If a copy of the MPL was not distributed with this
3
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
5
#pragma once
6
7
#include "entity.h"
8
#include <nap/service.h>
9
10
namespace
nap
11
{
16
class
NAPAPI
SceneService
:
public
Service
17
{
18
RTTI_ENABLE(
Service
)
19
20
public
:
21
using
SceneSet
= std::unordered_set<Scene*>;
22
23
// Default Constructor
24
SceneService
(
ServiceConfiguration
* configuration);
25
26
// Default Destructor
27
virtual
~
SceneService
() =
default
;
28
32
const
SceneSet
&
getScenes
()
const
{
return
mScenes; }
33
34
protected
:
35
39
virtual
void
registerObjectCreators(
rtti::Factory
& factory)
override
;
40
44
virtual
void
update(
double
deltaTime)
override
;
45
49
virtual
void
postUpdate(
double
deltaTime)
override
;
50
51
private
:
52
friend
class
Scene
;
53
57
void
registerScene(
Scene
& scene);
58
62
void
unregisterScene(
Scene
& scene);
63
64
private
:
65
SceneSet
mScenes;
//< All loaded scenes
66
};
67
}
nap::Scene
Definition:
scene.h:39
nap::SceneService::SceneSet
std::unordered_set< Scene * > SceneSet
Definition:
sceneservice.h:21
nap::ServiceConfiguration
Definition:
service.h:28
nap::SceneService::getScenes
const SceneSet & getScenes() const
Definition:
sceneservice.h:32
nap::Service
Definition:
templateservice.h:8
nap::rtti::Factory
Definition:
factory.h:78
nap
Definition:
templateapp.h:17
nap::SceneService
Definition:
sceneservice.h:16
Generated by doxygen