using System; using System.Reflection; using UnityEngine.UIElements; namespace UnityEditor.ShaderGraph.Drawing { interface IInspectable { // Implementors can override this in order to display their desired string when selected and viewed through the inspector string inspectorTitle { get; } // This function should return the underlying data object that user wishes to expose to the Inspector // For simple data properties like Integers/Floats this is the object that contains the properties // For complex types like GraphData this is the GraphData itself, its up to the PropertyDrawer to define what it needs object GetObjectToInspect(); // Used to provide any data needed by the property drawer from the inspectable // The inspectorUpdateDelegate is used to trigger an inspector update void SupplyDataToPropertyDrawer(IPropertyDrawer propertyDrawer, Action inspectorUpdateDelegate); } }