1 #include "rive/bones/tendon.hpp"
2 #include "rive/bones/bone.hpp"
3 #include "rive/bones/skin.hpp"
4 #include "rive/core_context.hpp"
8 StatusCode Tendon::onAddedDirty(CoreContext* context) {
17 if (!bind.invert(&m_InverseBind)) {
18 return StatusCode::FailedInversion;
21 StatusCode code = Super::onAddedDirty(context);
22 if (code != StatusCode::Ok) {
25 auto coreObject = context->resolve(boneId());
26 if (coreObject == nullptr || !coreObject->is<Bone>()) {
27 return StatusCode::MissingObject;
30 m_Bone = reinterpret_cast<Bone*>(coreObject);
32 return StatusCode::Ok;
35 StatusCode Tendon::onAddedClean(CoreContext* context) {
36 if (!parent()->is<Skin>()) {
37 return StatusCode::MissingObject;
40 parent()->as<Skin>()->addTendon(this);
42 return StatusCode::Ok;