blob: 8178aabaf5fa0569f3e1a3e18b4f702f5cf9a7b8 [file]
#include "rive/animation/transition_viewmodel_condition.hpp"
#include "rive/animation/state_transition.hpp"
#include "rive/importers/state_transition_importer.hpp"
#include "rive/importers/state_machine_importer.hpp"
#include "rive/animation/state_machine.hpp"
#include "rive/animation/state_machine_instance.hpp"
#include "rive/component_dirt.hpp"
using namespace rive;
TransitionViewModelCondition::~TransitionViewModelCondition()
{
if (m_leftComparator != nullptr)
{
delete m_leftComparator;
m_leftComparator = nullptr;
}
if (m_rightComparator != nullptr)
{
delete m_rightComparator;
m_rightComparator = nullptr;
}
}
bool TransitionViewModelCondition::evaluate(
const StateMachineInstance* stateMachineInstance,
StateMachineLayerInstance* layerInstance) const
{
if (leftComparator() != nullptr && rightComparator() != nullptr &&
stateMachineInstance->dataContext())
{
return leftComparator()->compare(rightComparator(),
op(),
stateMachineInstance,
layerInstance);
}
return false;
}
void TransitionViewModelCondition::useInLayer(
const StateMachineInstance* stateMachineInstance,
StateMachineLayerInstance* layerInstance) const
{
if (leftComparator() != nullptr)
{
return leftComparator()->useInLayer(stateMachineInstance,
layerInstance);
}
}