summaryrefslogtreecommitdiff
path: root/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes
diff options
context:
space:
mode:
Diffstat (limited to 'Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes')
-rw-r--r--Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs73
-rw-r--r--Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs.meta12
-rw-r--r--Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs35
-rw-r--r--Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs.meta12
4 files changed, 132 insertions, 0 deletions
diff --git a/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs
new file mode 100644
index 00000000..1ffac177
--- /dev/null
+++ b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs
@@ -0,0 +1,73 @@
+
+using System.Collections.Generic;
+
+using UnityEngine;
+using UnityEditor;
+
+using UNEB;
+using LibNoise.Generator;
+
+public class PerlinNode : Node
+{
+ private Perlin _noise = new Perlin();
+
+ public override void Init() {
+ var noiseIn = AddInput();
+ noiseIn.name = "Input";
+
+ var mask = AddInput();
+ mask.name = "Mask";
+
+ var noiseOut = AddOutput();
+ noiseOut.name = "Output";
+ noiseOut.getValue = () => { return _noise; };
+
+ FitKnobs();
+
+ bodyRect.height += 95f;
+ bodyRect.width = 150f;
+ }
+
+ public override void OnBodyGUI()
+ {
+ EditorGUI.BeginChangeCheck();
+
+ _noise.Seed = EditorGUILayout.IntField("Seed", _noise.Seed);
+ _noise.OctaveCount = EditorGUILayout.IntField("Octaves", _noise.OctaveCount);
+ _noise.Persistence = EditorGUILayout.DoubleField("Persistence", _noise.Persistence);
+ _noise.Frequency = EditorGUILayout.DoubleField("Frequency", _noise.Frequency);
+ _noise.Lacunarity = EditorGUILayout.DoubleField("Lacunarity", _noise.Lacunarity);
+
+ if (EditorGUI.EndChangeCheck()) {
+ updateOutputNodes();
+ }
+ }
+
+ // Uses a simple DFS traversal to find the connected outputs.
+ // Assumes a tree-like structure following output to input.
+ // Does not handle cycles.
+ private void updateOutputNodes()
+ {
+ // Temp solution.
+ var dfs = new Stack<Node>();
+
+ dfs.Push(this);
+
+ while (dfs.Count != 0) {
+
+ var node = dfs.Pop();
+
+ // Search neighbors
+ foreach (var output in node.Outputs) {
+ foreach (var input in output.Inputs) {
+ dfs.Push(input.ParentNode);
+ }
+ }
+
+ var outputNode = node as OutputTexture2D;
+ if (outputNode != null) {
+ outputNode.UpdateTexture();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs.meta b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs.meta
new file mode 100644
index 00000000..ae4ff21c
--- /dev/null
+++ b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/PerlinNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1f2d0ea566c0d2e4799418dc4757938e
+timeCreated: 1502695509
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs
new file mode 100644
index 00000000..b5a82013
--- /dev/null
+++ b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs
@@ -0,0 +1,35 @@
+
+using UnityEditor;
+using LibNoise.Generator;
+using UNEB;
+
+public class VoronoiNode : Node
+{
+ private Voronoi _noise = new Voronoi();
+
+ public override void Init()
+ {
+ var noiseIn = AddInput();
+ noiseIn.name = "Input";
+
+ var mask = AddInput();
+ mask.name = "Mask";
+
+ var noiseOut = AddOutput();
+ noiseOut.name = "Output";
+ noiseOut.getValue = () => { return _noise; };
+
+ FitKnobs();
+
+ bodyRect.height += 80f;
+ bodyRect.width = 150f;
+ }
+
+ public override void OnBodyGUI()
+ {
+ _noise.Seed = EditorGUILayout.IntField("Seed", _noise.Seed);
+ _noise.Frequency = EditorGUILayout.DoubleField("Frequency", _noise.Frequency);
+ _noise.Displacement = EditorGUILayout.DoubleField("Displacement", _noise.Displacement);
+ _noise.UseDistance = EditorGUILayout.Toggle("Use Distance", _noise.UseDistance);
+ }
+} \ No newline at end of file
diff --git a/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs.meta b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs.meta
new file mode 100644
index 00000000..02e63cde
--- /dev/null
+++ b/Other/NodeEditorExamples/Assets/Examples/LibNoiseEditor/Nodes/GeneratorNodes/VoronoiNode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a0eb0464f69bb1140b0cf06461db0501
+timeCreated: 1502696495
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: