using UnityEngine; using UnityEngine.UIElements; namespace UnityEditor.Splines { interface IElementDrawer { void SetTarget(ISplineElement element); void Update(); void OnTargetSet(); } abstract class ElementDrawer : VisualElement, IElementDrawer where T : ISplineElement { const int k_FloatFieldsDigits = 3; public T target { get; private set; } public virtual void Update() {} public void SetTarget(ISplineElement element) { target = (T) element; OnTargetSet(); } public static float Round(float value) { float mult = Mathf.Pow(10.0f, k_FloatFieldsDigits); return Mathf.Round(value * mult) / mult; } public virtual void OnTargetSet() { } protected void IgnoreKnotCallbacks(bool ignore) { if (parent is ElementInspector inspector) inspector.ignoreKnotCallbacks = ignore; } } }