protected override AnimatableProperty <XNAV3> GetScale(GLTFNODE node) { var lxform = node.LocalTransform.ToXna(); var s = new AnimatableProperty <XNAV3>(lxform.Scale); foreach (var anim in node.LogicalParent.LogicalAnimations) { var sAnim = anim .FindScaleChannel(node) ?.GetScaleSampler() ?.CreateCurveSampler(true) .ToXna(); if (sAnim != null) { s.SetCurve(anim.LogicalIndex, sAnim); } } return(s); }
protected override AnimatableProperty <XNAQUAT> GetRotation(GLTFNODE node) { var lxform = node.LocalTransform.ToXna(); var r = new AnimatableProperty <XNAQUAT>(lxform.Rotation); foreach (var anim in node.LogicalParent.LogicalAnimations) { var rAnim = anim .FindRotationChannel(node) ?.GetRotationSampler() ?.CreateCurveSampler(true) .ToXna(); if (rAnim != null) { r.SetCurve(anim.LogicalIndex, rAnim); } } return(r); }
protected override AnimatableProperty <XNAV3> GetTranslation(GLTFNODE node) { var lxform = node.LocalTransform.ToXna(); var t = new AnimatableProperty <XNAV3>(lxform.Translation); foreach (var anim in node.LogicalParent.LogicalAnimations) { var tAnim = anim .FindTranslationChannel(node) ?.GetTranslationSampler() ?.CreateCurveSampler(true) .ToXna(); if (tAnim != null) { t.SetCurve(anim.LogicalIndex, tAnim); } } return(t); }