diff --git a/Source/Editor/Options/InterfaceOptions.cs b/Source/Editor/Options/InterfaceOptions.cs index 223420191..7fa08cc39 100644 --- a/Source/Editor/Options/InterfaceOptions.cs +++ b/Source/Editor/Options/InterfaceOptions.cs @@ -312,6 +312,13 @@ namespace FlaxEditor.Options [EditorDisplay("Cook & Run"), EditorOrder(500)] public int NumberOfGameClientsToLaunch = 1; + /// + /// Gets or sets the visject connection curvature. + /// + [DefaultValue(1.0f), Range(0.0f, 2.0f)] + [EditorDisplay("Visject"), EditorOrder(550)] + public float ConnectionCurvature { get; set; } = 1.0f; + private static FontAsset DefaultFont => FlaxEngine.Content.LoadAsyncInternal(EditorAssets.PrimaryFont); private static FontAsset ConsoleFont => FlaxEngine.Content.LoadAsyncInternal(EditorAssets.InconsolataRegularFont); diff --git a/Source/Editor/Surface/Elements/OutputBox.cs b/Source/Editor/Surface/Elements/OutputBox.cs index 555b0ae4e..4a0e50b0a 100644 --- a/Source/Editor/Surface/Elements/OutputBox.cs +++ b/Source/Editor/Surface/Elements/OutputBox.cs @@ -3,6 +3,7 @@ using FlaxEngine; using FlaxEngine.GUI; using System; +using FlaxEditor.Options; namespace FlaxEditor.Surface.Elements { @@ -57,8 +58,8 @@ namespace FlaxEditor.Surface.Elements private static void CalculateBezierControlPoints(Float2 start, Float2 end, out Float2 control1, out Float2 control2) { // Control points parameters - const float minControlLength = 100f; - const float maxControlLength = 150f; + const float minControlLength = 50f; + const float maxControlLength = 120f; var dst = (end - start).Length; var yDst = Mathf.Abs(start.Y - end.Y); @@ -66,6 +67,7 @@ namespace FlaxEditor.Surface.Elements var minControlDst = dst * 0.5f; var maxControlDst = Mathf.Max(Mathf.Min(maxControlLength, dst), minControlLength); var controlDst = Mathf.Lerp(minControlDst, maxControlDst, Mathf.Clamp(yDst / minControlLength, 0f, 1f)); + controlDst *= Editor.Instance.Options.Options.Interface.ConnectionCurvature; control1 = new Float2(start.X + controlDst, start.Y); control2 = new Float2(end.X - controlDst, end.Y);