| #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; | |
| } |