Merge branch 'Visject-ConnectionCurvatureOption' of https://github.com/Chikinsupu/FlaxEngine into Chikinsupu-Visject-ConnectionCurvatureOption

This commit is contained in:
Wojtek Figat
2024-05-30 12:11:40 +02:00
2 changed files with 11 additions and 2 deletions

View File

@@ -312,6 +312,13 @@ namespace FlaxEditor.Options
[EditorDisplay("Cook & Run"), EditorOrder(500)]
public int NumberOfGameClientsToLaunch = 1;
/// <summary>
/// Gets or sets the visject connection curvature.
/// </summary>
[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<FontAsset>(EditorAssets.PrimaryFont);
private static FontAsset ConsoleFont => FlaxEngine.Content.LoadAsyncInternal<FontAsset>(EditorAssets.InconsolataRegularFont);

View File

@@ -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);