From 51aa8ea1d403fc5c3b9ffb7d4ce426f032ddcec6 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Wed, 12 Mar 2025 13:00:54 +0000 Subject: [PATCH] Upload files to "leenkx/Sources/leenkx/logicnode" --- .../leenkx/logicnode/SetBoneTransformNode.hx | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 leenkx/Sources/leenkx/logicnode/SetBoneTransformNode.hx diff --git a/leenkx/Sources/leenkx/logicnode/SetBoneTransformNode.hx b/leenkx/Sources/leenkx/logicnode/SetBoneTransformNode.hx new file mode 100644 index 00000000..777ddbeb --- /dev/null +++ b/leenkx/Sources/leenkx/logicnode/SetBoneTransformNode.hx @@ -0,0 +1,38 @@ +package leenkx.logicnode; + +import iron.object.Object; +#if lnx_skin +import iron.object.BoneAnimation; +#end +import iron.math.Mat4; + +class SetBoneTransformNode extends LogicNode { + + public function new(tree: LogicTree) { + super(tree); + } + + + override function run(from: Int) { + #if lnx_skin + + var object: Object = inputs[1].get(); + if (object == null) return; + var transform = inputs[3].get(); + if (transform == null) return; + var boneName: String = inputs[2].get(); + + var anim = object.animation != null ? cast(object.animation, BoneAnimation) : null; + if (anim == null) anim = object.getBoneAnimation(object.uid); + + // Get bone in armature + var bone = anim.getBone(boneName); + + anim.setBoneMatFromWorldMat(anim.skeletonMats, transform, bone); + //return anim.getAbsMat(bone).clone().multmat(object.transform.world); + + runOutput(0); + + #end + } +}