blob: 35efecd4fe339d672ea2e8356260f6e9bb34bfb2 [file] [log] [blame]
#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;
}