add suport to loop spline on set tangent linear

This commit is contained in:
Ruan Lucas
2023-07-21 22:11:15 -04:00
parent 1bd7210107
commit f8da0708e1
2 changed files with 19 additions and 12 deletions

View File

@@ -109,17 +109,6 @@ namespace FlaxEditor.CustomEditors.Dedicated
/// <inheritdoc/>
public override void OnSelectTangent(Spline spline, int index) { }
private void SetKeyframeLinear(Spline spline, int index)
{
var tangentIn = spline.GetSplineTangent(index, true);
var tangentOut = spline.GetSplineTangent(index, false);
tangentIn.Translation = spline.GetSplinePoint(index);
tangentOut.Translation = spline.GetSplinePoint(index);
spline.SetSplineTangent(index, tangentIn, true, false);
spline.SetSplineTangent(index, tangentOut, false, false);
spline.UpdateSpline();
}
}
/// <summary>
@@ -330,7 +319,6 @@ namespace FlaxEditor.CustomEditors.Dedicated
}
var index = _lastPointSelected.Index;
var currentTangentInPosition = SelectedSpline.GetSplineLocalTangent(index, true).Translation;
var currentTangentOutPosition = SelectedSpline.GetSplineLocalTangent(index, false).Translation;
@@ -621,6 +609,24 @@ namespace FlaxEditor.CustomEditors.Dedicated
return keyframe.TangentOut.Translation.Length > 0 && keyframe.TangentIn.Translation.Length == 0;
}
private static void SetKeyframeLinear(Spline spline, int index)
{
var keyframe = spline.GetSplineKeyframe(index);
keyframe.TangentIn.Translation = Vector3.Zero;
keyframe.TangentOut.Translation = Vector3.Zero;
var lastSplineIndex = spline.SplinePointsCount - 1;
if (index == lastSplineIndex && spline.IsLoop)
{
var lastPoint = spline.GetSplineKeyframe(lastSplineIndex);
lastPoint.TangentIn.Translation = Vector3.Zero;
lastPoint.TangentOut.Translation = Vector3.Zero;
spline.SetSplineKeyframe(lastSplineIndex, lastPoint);
}
spline.SetSplineKeyframe(index, keyframe);
}
private static void SetTangentSmoothIn(Spline spline, int index)
{
var keyframe = spline.GetSplineKeyframe(index);