diff options
| author | yum <yum.food.vr@gmail.com> | 2026-01-06 18:18:05 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2026-01-06 18:18:05 -0800 |
| commit | 317f8527bc1c0aedb234ecae331aeec18aeaf9bd (patch) | |
| tree | bc44dc70287d856b7f4c5a732db3e8ebcb123f8e /Scripts/Fold/Editor/FoldGraph.cs | |
| parent | b1bfb0400c65b2602670bb22eea50a8b9db285a8 (diff) | |
Fold: big rewrite
Diffstat (limited to 'Scripts/Fold/Editor/FoldGraph.cs')
| -rw-r--r-- | Scripts/Fold/Editor/FoldGraph.cs | 112 |
1 files changed, 14 insertions, 98 deletions
diff --git a/Scripts/Fold/Editor/FoldGraph.cs b/Scripts/Fold/Editor/FoldGraph.cs index ca985f4..5782dc7 100644 --- a/Scripts/Fold/Editor/FoldGraph.cs +++ b/Scripts/Fold/Editor/FoldGraph.cs @@ -5,10 +5,7 @@ using UnityEngine; [Serializable] public class FoldEdge { - public string outputNodeGuid; - public string outputPortName; - public string inputNodeGuid; - public string inputPortName; + public string outputNodeGuid, outputPortName, inputNodeGuid, inputPortName; } [Serializable] @@ -22,126 +19,45 @@ public abstract class FoldNodeData [Serializable] public abstract class FoldOperationData : FoldNodeData { + public abstract IEnumerable<(string name, Type type)> GetInputPorts(); public abstract FoldNodeSerialized Serialize(FoldGraphView graphView); } -[Serializable] -public class FloatValueNodeData : FoldNodeData -{ - public float value; - public override string Title => "Float"; -} - -[Serializable] -public class VectorValueNodeData : FoldNodeData -{ - public Vector4 value; - public override string Title => "Vector"; -} - -[Serializable] -public class GameObjectNodeData : FoldNodeData -{ - public GameObject output; - public override string Title => "GameObject"; -} +[Serializable] public class FloatValueNodeData : FoldNodeData { public float value; public override string Title => "Float"; } +[Serializable] public class VectorValueNodeData : FoldNodeData { public Vector4 value; public override string Title => "Vector"; } +[Serializable] public class GameObjectNodeData : FoldNodeData { public GameObject output; public override string Title => "GameObject"; } +[Serializable] public class KeyframeNodeData : FoldNodeData { public override string Title => "Keyframe"; } [Serializable] public class AxisAlignNodeData : FoldOperationData { - public Vector4 po; - public Vector4 pp; - public Vector4 r; - public float t; - public override string Title => "Axis Align"; - - public override FoldNodeSerialized Serialize(FoldGraphView graphView) - { - return new FoldNodeSerialized - { - opcode = 4, - float0 = graphView.GetInputValue(guid, "t", t), - vec0 = graphView.GetInputValue(guid, "po", po), - vec1 = graphView.GetInputValue(guid, "pp", pp), - vec2 = graphView.GetInputValue(guid, "r", r), - }; - } + public override IEnumerable<(string, Type)> GetInputPorts() { yield return ("po", typeof(Vector4)); yield return ("pp", typeof(Vector4)); yield return ("r", typeof(Vector4)); yield return ("t", typeof(float)); } + public override FoldNodeSerialized Serialize(FoldGraphView gv) => new() { opcode = 4, float0 = gv.GetInputValue(guid, "t", 0f), vec0 = gv.GetInputValue(guid, "po", Vector4.zero), vec1 = gv.GetInputValue(guid, "pp", Vector4.zero), vec2 = gv.GetInputValue(guid, "r", Vector4.zero) }; } [Serializable] public class PlaneToTubeNodeData : FoldOperationData { - public Vector4 p; - public Vector4 r; - public Vector4 s; - public float t; - public override string Title => "Plane to Tube"; - - public override FoldNodeSerialized Serialize(FoldGraphView graphView) - { - return new FoldNodeSerialized - { - opcode = 2, - float0 = graphView.GetInputValue(guid, "t", t), - vec0 = graphView.GetInputValue(guid, "p", p), - vec1 = graphView.GetInputValue(guid, "r", r), - vec2 = graphView.GetInputValue(guid, "s", s), - }; - } + public override IEnumerable<(string, Type)> GetInputPorts() { yield return ("p", typeof(Vector4)); yield return ("r", typeof(Vector4)); yield return ("s", typeof(Vector4)); yield return ("t", typeof(float)); } + public override FoldNodeSerialized Serialize(FoldGraphView gv) => new() { opcode = 2, float0 = gv.GetInputValue(guid, "t", 0f), vec0 = gv.GetInputValue(guid, "p", Vector4.zero), vec1 = gv.GetInputValue(guid, "r", Vector4.zero), vec2 = gv.GetInputValue(guid, "s", Vector4.zero) }; } [Serializable] public class PointAlignNodeData : FoldOperationData { - public Vector4 po; - public Vector4 pp; - public Vector4 r; - public float t; - public override string Title => "Point Align"; - - public override FoldNodeSerialized Serialize(FoldGraphView graphView) - { - return new FoldNodeSerialized - { - opcode = 3, - float0 = graphView.GetInputValue(guid, "t", t), - vec0 = graphView.GetInputValue(guid, "po", po), - vec1 = graphView.GetInputValue(guid, "pp", pp), - vec2 = graphView.GetInputValue(guid, "r", r), - }; - } + public override IEnumerable<(string, Type)> GetInputPorts() { yield return ("po", typeof(Vector4)); yield return ("pp", typeof(Vector4)); yield return ("r", typeof(Vector4)); yield return ("t", typeof(float)); } + public override FoldNodeSerialized Serialize(FoldGraphView gv) => new() { opcode = 3, float0 = gv.GetInputValue(guid, "t", 0f), vec0 = gv.GetInputValue(guid, "po", Vector4.zero), vec1 = gv.GetInputValue(guid, "pp", Vector4.zero), vec2 = gv.GetInputValue(guid, "r", Vector4.zero) }; } [Serializable] public class TubeToPlaneNodeData : FoldOperationData { - public Vector4 p; - public Vector4 r; - public Vector4 s; - public float t; - public override string Title => "Tube to Plane"; - - public override FoldNodeSerialized Serialize(FoldGraphView graphView) - { - return new FoldNodeSerialized - { - opcode = 1, - float0 = graphView.GetInputValue(guid, "t", t), - vec0 = graphView.GetInputValue(guid, "p", p), - vec1 = graphView.GetInputValue(guid, "r", r), - vec2 = graphView.GetInputValue(guid, "s", s), - }; - } -} - -[Serializable] -public class KeyframeNodeData : FoldNodeData -{ - public override string Title => "Keyframe"; + public override IEnumerable<(string, Type)> GetInputPorts() { yield return ("p", typeof(Vector4)); yield return ("r", typeof(Vector4)); yield return ("s", typeof(Vector4)); yield return ("t", typeof(float)); } + public override FoldNodeSerialized Serialize(FoldGraphView gv) => new() { opcode = 1, float0 = gv.GetInputValue(guid, "t", 0f), vec0 = gv.GetInputValue(guid, "p", Vector4.zero), vec1 = gv.GetInputValue(guid, "r", Vector4.zero), vec2 = gv.GetInputValue(guid, "s", Vector4.zero) }; } public class FoldGraph : ScriptableObject |
