Initial scene to svg conversion.

This commit is contained in:
James Grogan 2022-12-08 08:48:18 +00:00
parent 65ac927929
commit 1fc730d413
15 changed files with 164 additions and 28 deletions

View file

@ -12,12 +12,27 @@ Scene::Scene()
mRootNode->setName("Scene_RootNode");
}
Scene::~Scene()
{
}
void Scene::update(FontsManager* fontsManager)
{
mSceneItems.clear();
updateNode(mRootNode.get(), fontsManager);
}
void Scene::addNode(AbstractVisualNode* node)
{
mRootNode->addChild(node);
}
bool Scene::isEmpty() const
{
return mRootNode->getNumChildren() == 0;
}
void Scene::updateNode(AbstractVisualNode* node, FontsManager* fontsManager)
{
for (auto child : node->getChildren())
@ -39,17 +54,7 @@ void Scene::updateNode(AbstractVisualNode* node, FontsManager* fontsManager)
}
}
RootNode* Scene::getRootNode() const
const std::vector<SceneItem*>& Scene::getItems() const
{
return mRootNode.get();
}
unsigned Scene::getNumItems() const
{
return mSceneItems.size();
}
SceneItem* Scene::getItem(std::size_t idx) const
{
return mSceneItems[idx];
return mSceneItems;
}

View file

@ -15,13 +15,15 @@ class Scene
public:
Scene();
void update(FontsManager* fontsManager);
~Scene();
unsigned getNumItems() const;
void addNode(AbstractVisualNode* node);
SceneItem* getItem(std::size_t idx) const;
const std::vector<SceneItem*>& getItems() const;
RootNode* getRootNode() const;
bool isEmpty() const;
void update(FontsManager* fontsManager = nullptr);
private:
void updateNode(AbstractVisualNode* node, FontsManager* fontsManager);
std::unique_ptr<RootNode> mRootNode;