| #include "rive/importers/backboard_importer.hpp" | |
| #include "rive/nested_artboard.hpp" | |
| #include "rive/assets/file_asset_referencer.hpp" | |
| using namespace rive; | |
| BackboardImporter::BackboardImporter(Backboard* backboard) : | |
| m_Backboard(backboard), m_NextArtboardId(0) {} | |
| void BackboardImporter::addNestedArtboard(NestedArtboard* artboard) { | |
| m_NestedArtboards.push_back(artboard); | |
| } | |
| void BackboardImporter::addFileAsset(FileAsset* asset) { m_FileAssets.push_back(asset); } | |
| void BackboardImporter::addFileAssetReferencer(FileAssetReferencer* referencer) { | |
| m_FileAssetReferencers.push_back(referencer); | |
| } | |
| void BackboardImporter::addArtboard(Artboard* artboard) { | |
| m_ArtboardLookup[m_NextArtboardId++] = artboard; | |
| } | |
| void BackboardImporter::addMissingArtboard() { m_NextArtboardId++; } | |
| StatusCode BackboardImporter::resolve() { | |
| for (auto nestedArtboard : m_NestedArtboards) { | |
| auto itr = m_ArtboardLookup.find(nestedArtboard->artboardId()); | |
| if (itr != m_ArtboardLookup.end()) { | |
| auto artboard = itr->second; | |
| if (artboard != nullptr) { | |
| nestedArtboard->nest(artboard); | |
| } | |
| } | |
| } | |
| for (auto referencer : m_FileAssetReferencers) { | |
| referencer->assets(m_FileAssets); | |
| } | |
| return StatusCode::Ok; | |
| } |