blob: 0cf0f1b16fd2a90853882d2d54cc4b3366a31b71 [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;
}