blob: e575022dcc67818ed3322901f57436d61700260f [file] [log] [blame]
#include "rive/animation/nested_bool.hpp"
#include "rive/animation/nested_state_machine.hpp"
#include "rive/animation/state_machine_input_instance.hpp"
#include "rive/container_component.hpp"
using namespace rive;
class StateMachineInstance;
// Use the NestedBoolBase m_NestedValue on initialization but then it won't
// be used anymore and interface directly with the nested input value.
void NestedBool::applyValue()
{
auto inputInstance = input();
if (inputInstance != nullptr)
{
auto boolInput = static_cast<SMIBool*>(inputInstance);
if (boolInput != nullptr)
{
boolInput->value(NestedBoolBase::nestedValue());
}
}
}
void NestedBool::nestedValue(bool value)
{
auto inputInstance = input();
if (inputInstance != nullptr)
{
auto boolInput = static_cast<SMIBool*>(inputInstance);
if (boolInput != nullptr && boolInput->value() != value)
{
boolInput->value(value);
}
}
}
bool NestedBool::nestedValue() const
{
auto inputInstance = input();
if (inputInstance != nullptr)
{
auto boolInput = static_cast<SMIBool*>(inputInstance);
if (boolInput != nullptr)
{
return boolInput->value();
}
}
return false;
}