summaryrefslogtreecommitdiffstats
path: root/Scripts/Fold/Editor/FoldGraph.cs
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2026-01-06 16:30:28 -0800
committeryum <yum.food.vr@gmail.com>2026-01-06 16:30:28 -0800
commit1a4daf3fa6e6a7178fe42bcaa247ce434baf6881 (patch)
tree8493a04bee4c53eda492ce0e6cd5c194d7f9e393 /Scripts/Fold/Editor/FoldGraph.cs
parent9b45bce6d4ca528cf5bbc78aeaa0b6b06e0f1a29 (diff)
Fold: drop NodeGraphProcessor
Diffstat (limited to 'Scripts/Fold/Editor/FoldGraph.cs')
-rw-r--r--Scripts/Fold/Editor/FoldGraph.cs152
1 files changed, 149 insertions, 3 deletions
diff --git a/Scripts/Fold/Editor/FoldGraph.cs b/Scripts/Fold/Editor/FoldGraph.cs
index f1fc290..ca985f4 100644
--- a/Scripts/Fold/Editor/FoldGraph.cs
+++ b/Scripts/Fold/Editor/FoldGraph.cs
@@ -1,5 +1,151 @@
+using System;
+using System.Collections.Generic;
using UnityEngine;
-using GraphProcessor;
-[System.Serializable]
-public class FoldGraph : BaseGraph {}
+[Serializable]
+public class FoldEdge
+{
+ public string outputNodeGuid;
+ public string outputPortName;
+ public string inputNodeGuid;
+ public string inputPortName;
+}
+
+[Serializable]
+public abstract class FoldNodeData
+{
+ public string guid = Guid.NewGuid().ToString();
+ public Vector2 position;
+ public virtual string Title => GetType().Name;
+}
+
+[Serializable]
+public abstract class FoldOperationData : FoldNodeData
+{
+ 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 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),
+ };
+ }
+}
+
+[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),
+ };
+ }
+}
+
+[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),
+ };
+ }
+}
+
+[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 class FoldGraph : ScriptableObject
+{
+ [SerializeReference] public List<FoldNodeData> nodes = new();
+ public List<FoldEdge> edges = new();
+}