Convert visual layers to scene nodes.

This commit is contained in:
James Grogan 2022-11-16 15:06:08 +00:00
parent 798cb365d7
commit 3e53bd9e00
64 changed files with 863 additions and 551 deletions

View file

@ -5,39 +5,25 @@
#include <vector>
#include <memory>
class VisualLayer;
class TriMesh;
class RootNode;
class AbstractVisualNode;
class SceneItem;
class FontsManager;
class RectangleNode;
template <typename T>
class Image;
class Scene
{
public:
Scene();
Scene() = default;
void update(FontsManager* fontsManager);
void syncLayers(const std::vector<VisualLayer*>& layers);
unsigned getNumItems() const;
void update(FontsManager* fontsManager, Image<unsigned char>* image = nullptr);
unsigned getNumMeshes() const;
TriMesh* getMesh(std::size_t idx) const;
Image<unsigned char>* getTexture(std::size_t idx) const;
const std::vector<TextData>& getTextData() const;
SceneItem* getItem(std::size_t idx) const;
RootNode* getRootNode() const;
private:
void processRectangleNode(RectangleNode* node);
std::vector<VisualLayer*> mLayers;
std::vector<TriMesh*> mWorkingMeshs;
std::vector<Image<unsigned char>* > mTextures;
std::vector<TextData> mTextData;
void updateNode(AbstractVisualNode* node, FontsManager* fontsManager);
std::unique_ptr<RootNode> mRootNode;
std::vector<SceneItem*> mSceneItems;
};