Covellite++  Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
3DScene.impl.hpp
1
2#pragma once
3#include <set>
4#include <Covellite/Expanse/I3DScene.hpp>
5#include "IProduce3DObject.impl.hpp"
6
7namespace covellite
8{
9
10namespace expanse
11{
12
30class C3DScene final :
31 public IProduce3DObject,
32 public I3DScene
33{
34 using Object_t = ::std::pair<size_t, ObjectId_t>;
35
36public:
37 // Интерфейс IProduce3DObject:
38 void Add(const ObjectId_t, const C3DObject_t &) override;
39 void Remove(const ObjectId_t) override;
40
41public:
42 // Интерфейс I3DScene:
43 void Add(const ObjectId_t) override;
44
45public:
46 void Render(void);
47
48private:
49 const C3DObject_t & Get(const ObjectId_t) const;
50
51private:
52 struct CombinationLess
53 {
54 inline bool operator()(const Object_t & _Left, const Object_t & _Right) const noexcept
55 {
56 return _Left.first < _Right.first;
57 }
58 };
59
60 ::std::vector<C3DObject_t> m_Renders;
61 ::std::vector<ObjectId_t> m_RenderQueue;
62
63public:
64 C3DScene(void);
65 C3DScene(const C3DScene &) = delete;
66 C3DScene(C3DScene &&) = delete;
67 C3DScene & operator= (const C3DScene &) = delete;
68 C3DScene & operator= (C3DScene &&) = delete;
69 ~C3DScene(void) = default;
70
71private:
72 FRIEND_TEST(C3DScene_test, /*DISABLED_*/Test_Produce3DObjects);
73};
74
75} // namespace expanse
76
77} // namespace covellite
Класс входит в проект Covellite.Expanse Класс-контейнер для объектов, которые должны рендеринтся в ...
Definition 3DScene.impl.hpp:33
void Add(const ObjectId_t) override
Функция добавления идентификатора объекта в очередь рендеринга.
const C3DObject_t & Get(const ObjectId_t) const
Функция получения набора рендеров 3D объекта по его идентификатору.
Definition 3DScene.cpp:112
void Add(const ObjectId_t, const C3DObject_t &) override
Функция добавления 3D объекта в 3D сцену.
void Remove(const ObjectId_t) override
Функция удаления 3D объекта из 3D cцены.
Definition 3DScene.cpp:46
Класс входит в проект Covellite.Expanse Интерфейс класса 3D сцены.
Definition I3DScene.hpp:27
Класс входит в проект Covellite.Expanse Интерфейсный класс создания/удаления 3D объектов.
Definition IProduce3DObject.impl.hpp:27