r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
IScene.hpp
Go to the documentation of this file.
1///
2/// @file IScene.hpp
3/// @brief This file contains the IScene class
4/// @namespace srv
5///
6
7#pragma once
8
9#include <string>
10
11#include "ECS/Registry.hpp"
12
13namespace srv
14{
15
16 using id = unsigned int;
17
18 ///
19 /// @class IScene
20 /// @brief interface class for scene
21 /// @namespace srv
22 ///
23 class IScene
24 {
25 public:
26 virtual ~IScene() = default;
27
28 [[nodiscard]] virtual std::string &getName() = 0;
29 [[nodiscard]] virtual id getId() const = 0;
30 [[nodiscard]] virtual ecs::Registry &getRegistry() = 0;
31
32 virtual void setName(const std::string &newName) = 0;
33
34 virtual void update(float dt) = 0;
35 }; // class IScene
36
37 ///
38 /// @class AScene
39 /// @brief Class for scene
40 /// @namespace srv
41 ///
42 class AScene : public IScene
43 {
44 public:
46 ~AScene() override = default;
47
48 AScene(const AScene &other) = delete;
49 AScene(AScene &&other) = delete;
50 AScene &operator=(const AScene &other) = delete;
51 AScene &operator=(AScene &&other) = delete;
52
53 [[nodiscard]] std::string &getName() override { return m_name; }
54 [[nodiscard]] id getId() const override { return m_id; }
55 [[nodiscard]] ecs::Registry &getRegistry() override { return m_registry; }
56
57 void setName(const std::string &newName) override { m_name = newName; }
58
59 private:
60 std::string m_name = "default_name";
61 id m_id = 1;
63 inline static id s_nextId = 1;
64 }; // class AScene
65
66} // namespace srv
This file contains the Registry class declaration.
Class for managing entities and their components.
Definition Registry.hpp:25
Class for scene.
Definition IScene.hpp:43
id getId() const override
Definition IScene.hpp:54
std::string & getName() override
Definition IScene.hpp:53
AScene & operator=(AScene &&other)=delete
static id s_nextId
Definition IScene.hpp:63
ecs::Registry & getRegistry() override
Definition IScene.hpp:55
std::string m_name
Definition IScene.hpp:60
AScene(AScene &&other)=delete
ecs::Registry m_registry
Definition IScene.hpp:62
void setName(const std::string &newName) override
Definition IScene.hpp:57
AScene & operator=(const AScene &other)=delete
~AScene() override=default
AScene(const AScene &other)=delete
interface class for scene
Definition IScene.hpp:24
virtual ecs::Registry & getRegistry()=0
virtual void setName(const std::string &newName)=0
virtual ~IScene()=default
virtual id getId() const =0
virtual void update(float dt)=0
virtual std::string & getName()=0
unsigned int id
Definition IScene.hpp:16