Code/UI/Spatial/Extensions.cs
namespace Nodebox.UI.Spatial;

public static class Extensions {
    public const string MetaKey = $"{nameof(Nodebox)}.{nameof(UI)}.{nameof(Spatial)}";

    extension(Nodebox.Graph graph) {
        public Graph Spatial {
            get => (Graph)graph.Meta.GetValueOrDefault(MetaKey);
            set => graph.Meta.Add(MetaKey, value);
        }
    }

    extension(Nodebox.Node node) {
        public Node Spatial {
            get => (Node)node.Meta.GetValueOrDefault(MetaKey);
            set => node.Meta.Add(MetaKey, value);
        }
    }

    extension(Nodebox.Wire node) {
        public Wire Spatial {
            get => (Wire)node.Meta.GetValueOrDefault(MetaKey);
            set => node.Meta.Add(MetaKey, value);
        }
    }
}