blob: 9bc0d697d6756bdc8d4d89a697095ff4201f2350 [file] [log] [blame]
#include "rive/component.hpp"
#include "rive/layout/n_sliced_node.hpp"
#include "rive/layout/n_slicer.hpp"
#include "rive/layout/n_slicer_details.hpp"
#include "rive/layout/n_slicer_tile_mode.hpp"
using namespace rive;
NSlicerDetails* NSlicerDetails::from(Component* component)
{
switch (component->coreType())
{
case NSlicer::typeKey:
return component->as<NSlicer>();
case NSlicedNode::typeKey:
return component->as<NSlicedNode>();
}
return nullptr;
}
int NSlicerDetails::patchIndex(int patchX, int patchY)
{
return patchY * (static_cast<int>(m_xs.size()) + 1) + patchX;
}
void NSlicerDetails::addAxisX(Axis* axis) { m_xs.push_back(axis); }
void NSlicerDetails::addAxisY(Axis* axis) { m_ys.push_back(axis); }
void NSlicerDetails::addTileMode(int patchIndex, NSlicerTileModeType style)
{
m_tileModes[patchIndex] = style;
}