| |
| #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; |
| } |