Covellite++  Version: 2.3.0 Revision: 2580 Platform: x64 Build: 15:23 16.10.2020
Кроссплатформенный фреймворк для разработки приложений на С++
Landscape.hpp
1 
2 #pragma once
3 #include "Defines.hpp"
4 #include "GameObject.hpp"
5 #include "CubeCoords.hpp"
6 
7 namespace basement
8 {
9 
10 namespace model
11 {
12 
30 class Landscape final :
31  public GameObject
32 {
33 public:
34  Objects_t GetObject(const Any_t &) const override;
35 
36 public:
37  class Mesh final :
38  public GameObject::Mesh
39  {
40  class MeshStreamBuffer;
41 
42  private:
43  void LoadMesh(const Path_t &, const Rect &);
44  void BuildGrass(const int, const float, const Rect &);
45  // cppcheck-suppress unusedPrivateFunction
46  // cppcheck-suppress functionStatic
47  void BuildTriplex6Object(const Point &, const float, const float,
48  const float, const Rect &);
49  void BuildTriplex12Object(const Point &, const float, const float,
50  const float, const Rect &);
51 
52  public:
53  Mesh(const size_t, const float, const Rect &);
54  Mesh(const int, const float, const Rect &);
55  Mesh(const Path_t &, const float, const Rect &);
56  };
57 
58 private:
59  Object_t GetTransform(const CubeCoords &, String_t &) const;
60  Object_t GetPointLight(const CubeCoords &) const;
61  Object_t GetUserConstantBuffer(const CubeCoords &) const;
62 
63 private:
64  bool m_IsUsingRotate = true;
65  float m_ScaleFactor = 1.25f;
66  const IGameWorld & m_GameWorld;
67  ::std::vector<::std::vector<::std::pair<size_t, size_t>>> m_Models;
68 
69 private:
70  Landscape(const GameObject::Landscape::Value, const IGameWorld &);
71  friend GameObject;
72 };
73 
74 } // namespace model
75 
76 } // namespace basement
basement::model::Landscape::GetObject
Objects_t GetObject(const Any_t &) const override
Функция получения уникального набора компонентов игрового объекта.
Definition: Landscape.cpp:153
basement::model::PointLights
Класс входит в проект Example Класс набора точечных источников света сцены.
Definition: PointLights.hpp:29
covellite::api::Component::Make
static ComponentPtr_t Make(const SourceParams_t &)
Функция создания объектов компонентов.
Definition: Component.inl:29
basement
Definition: Common.hpp:10
basement::model::IGameWorld
Класс входит в проект Example Интерфейсный класс игрового мира.
Definition: IGameWorld.hpp:34
basement::model::CubeCoords
Класс входит в проект Example Класс манипуляции кубическими координатами.
Definition: CubeCoords.hpp:26
basement::model::GameObject
Класс входит в проект Example Общий базовый класс игрового объекта.
Definition: GameObject.hpp:34