| #include "rive/animation/state_machine_fire_trigger.hpp" | |
| #include "rive/animation/state_machine_instance.hpp" | |
| #include "rive/viewmodel/viewmodel_instance_trigger.hpp" | |
| using namespace rive; | |
| void StateMachineFireTrigger::perform( | |
| StateMachineInstance* stateMachineInstance) const | |
| { | |
| auto dataContext = stateMachineInstance->dataContext(); | |
| if (dataContext != nullptr) | |
| { | |
| auto vmProp = | |
| dataContext->getViewModelProperty(m_viewModelPathIdsBuffer); | |
| if (vmProp && vmProp->is<ViewModelInstanceTrigger>()) | |
| { | |
| vmProp->as<ViewModelInstanceTrigger>()->trigger(); | |
| } | |
| } | |
| } | |
| void StateMachineFireTrigger::decodeViewModelPathIds(Span<const uint8_t> value) | |
| { | |
| BinaryReader reader(value); | |
| while (!reader.reachedEnd()) | |
| { | |
| auto val = reader.readVarUintAs<uint32_t>(); | |
| m_viewModelPathIdsBuffer.push_back(val); | |
| } | |
| } | |
| void StateMachineFireTrigger::copyViewModelPathIds( | |
| const StateMachineFireTriggerBase& object) | |
| { | |
| m_viewModelPathIdsBuffer = | |
| object.as<StateMachineFireTrigger>()->m_viewModelPathIdsBuffer; | |
| } |