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