diff --git a/Source/Editor/CustomEditors/Dedicated/SplineEditor.cs b/Source/Editor/CustomEditors/Dedicated/SplineEditor.cs index 4dc0643d3..63f608eaa 100644 --- a/Source/Editor/CustomEditors/Dedicated/SplineEditor.cs +++ b/Source/Editor/CustomEditors/Dedicated/SplineEditor.cs @@ -226,6 +226,12 @@ namespace FlaxEditor.CustomEditors.Dedicated /// public Spline SelectedSpline => !Values.HasDifferentValues && Values[0] is Spline ? (Spline)Values[0] : null; + private bool HasTangentsSelected => _selectedTangentIn != null || _selectedTangentOut != null; + + private bool HasPointSelected => _lastPointSelected != null; + + private bool CanSetTangentMode => HasPointSelected || HasTangentsSelected; + /// /// Create a Spline editor /// @@ -273,6 +279,15 @@ namespace FlaxEditor.CustomEditors.Dedicated UpdateSelectedPoint(); UpdateSelectedTangent(); + _freeTangentButton.Button.Enabled = CanSetTangentMode; + _linearTangentButton.Button.Enabled = CanSetTangentMode; + _alignedTangentButton.Button.Enabled = CanSetTangentMode; + + if (_lastPointSelected == null) + { + return; + } + var index = _lastPointSelected.Index; var currentTangentInPosition = SelectedSpline.GetSplineLocalTangent(index, true).Translation; var currentTangentOutPosition = SelectedSpline.GetSplineLocalTangent(index, false).Translation; @@ -366,6 +381,8 @@ namespace FlaxEditor.CustomEditors.Dedicated _selectedTangentOut = null; } + + private void OnSetTangentsLinear() { var enableUndo = Presenter.Undo != null && Presenter.Undo.Enabled;