public override void OnGUI() { Node_Color n = (Node_Color)node; DockOutput result = n.GetDockOutputByName("result"); Color resultColor = (Color)result.value; backgroundColor = SetOpacity(resultColor, Mathf.Clamp(resultColor.a, 0.25f, 1f)); for (int i = 0; i < n.inputs.Count; ++i) { GUILayout.BeginHorizontal(); DockInput dockInput = n.inputs [i]; DrawDock(dockInput); GUILayout.Label(dockInput.name, GUILayout.Width(10)); dockInput.value = numberFields[i].Float((float)dockInput.value); dockInput.value = GUILayout.HorizontalSlider((float)dockInput.value, 0, 255); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); GUILayout.Label(""); Rect textureRect = GUILayoutUtility.GetLastRect(); Color origColor = GUI.color; GUI.color = SetOpacity(resultColor, 1); GUI.DrawTexture(textureRect, Texture2D.whiteTexture); GUI.color = origColor; DrawDock(result); GUILayout.EndHorizontal(); }
public override void OnGUI() { Node_ColorBlend n = (Node_ColorBlend)node; DockInput amount = n.GetDockInputByName("amount"); DockInput first = n.GetDockInputByName("first"); DockInput second = n.GetDockInputByName("second"); DockOutput result = n.GetDockOutputByName("result"); Color origColor = GUI.color; Color resultColor = (Color)result.value; Color firstColor = n.GetFirstTargetValue <Color> (first, Color.white); Color secondColor = n.GetFirstTargetValue <Color> (second, Color.white); // amount GUILayout.BeginHorizontal(); DrawDock(amount); amount.value = GUILayout.HorizontalSlider(n.GetFirstTargetValue <float> (amount, amount.value), 0f, 1f); GUILayout.EndHorizontal(); // first GUILayout.BeginHorizontal(); { DrawDock(first); GUILayout.Label(""); Rect texRect = GUILayoutUtility.GetLastRect(); GUI.color = SetOpacity(firstColor, 1); GUI.DrawTexture(texRect, Texture2D.whiteTexture); GUILayout.Label("", GUILayout.Width(0)); } GUILayout.EndHorizontal(); // second GUILayout.BeginHorizontal(); { DrawDock(second); GUILayout.Label(""); Rect texRect = GUILayoutUtility.GetLastRect(); GUI.color = SetOpacity(secondColor, 1); GUI.DrawTexture(texRect, Texture2D.whiteTexture); GUILayout.Label("", GUILayout.Width(0)); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { GUILayout.Label("", GUILayout.Width(0)); GUILayout.Label(""); Rect textureRect = GUILayoutUtility.GetLastRect(); GUI.color = SetOpacity(resultColor, 1); GUI.DrawTexture(textureRect, Texture2D.whiteTexture); GUI.color = origColor; DrawDock(result); } GUILayout.EndHorizontal(); backgroundColor = SetOpacity(resultColor, Mathf.Clamp(resultColor.a, 0.25f, 1f)); GUI.color = origColor; }
public override void Update() { DockInput input = GetDockInputByName("input"); DockOutput result = GetDockOutputByName("result"); float inputValue = GetFirstTargetValue <float> (input, 0f); result.value = Mathf.Abs(inputValue); }
public override void Update() { DockOutput dockOutput = outputs [0]; int i = 0; inputs[i].value = GetFirstTargetValue <float> (inputs[i], inputs[i++].value); inputs[i].value = GetFirstTargetValue <float> (inputs[i], inputs[i++].value); inputs[i].value = GetFirstTargetValue <float> (inputs[i], inputs[i++].value); dockOutput.value = new Vector3( (float)inputs[0].value, (float)inputs[1].value, (float)inputs[2].value); }
public override void Update() { DockInput amount = GetDockInputByName("amount"); DockInput first = GetDockInputByName("first"); DockInput second = GetDockInputByName("second"); DockOutput result = GetDockOutputByName("result"); float amountValue = GetFirstTargetValue <float> (amount, amount.value); Color firstColor = GetFirstTargetValue <Color> (first, Color.white); Color secondColor = GetFirstTargetValue <Color> (second, Color.white); result.value = Blend(firstColor, secondColor, amountValue); }
public override void OnGUI() { Node_Op_Abs n = (Node_Op_Abs)node; backgroundColor = Color.cyan; DockInput input = n.GetDockInputByName("input"); DockOutput result = n.GetDockOutputByName("result"); GUILayout.BeginHorizontal(); DrawDock(input); GUILayout.FlexibleSpace(); GUILayout.Label("= "); GUILayout.Box(((float)result.value).ToString("0.00")); DrawDock(result); GUILayout.EndHorizontal(); }
public override void Update() { DockInput input = GetDockInputByName("input"); DockOutput result = GetDockOutputByName("result"); float inputValue = GetFirstTargetValue <float> (input, 0f); switch (opTrigonometry) { case Op_Trigonometry.Sin: result.value = Mathf.Sin(inputValue); break; case Op_Trigonometry.Cos: result.value = Mathf.Cos(inputValue); break; case Op_Trigonometry.Tg: result.value = Mathf.Tan(inputValue); break; case Op_Trigonometry.Ctg: result.value = 1f / Mathf.Tan(inputValue); break; } }
public override void OnGUI() { Node_BasicOperators n = (Node_BasicOperators)node; backgroundColor = Color.cyan; n.basicOperator = (Node_BasicOperators.BasicOperators)popup.EnumPopup((Enum)n.basicOperator); title = "Operator " + n.GetOperatorSymbol(); DockInput detector = n.GetDockInputByName("detector"); DockOutput result = n.GetDockOutputByName("result"); foreach (DockInput dockInput in n.inputs) { // skip detector, draw it last in same row with result if (dockInput == detector) { continue; } GUILayout.BeginHorizontal(); DrawDock(dockInput); string operatorSymbol = ""; // avoid head (first) if (dockInput != n.inputs[0]) { operatorSymbol = n.GetOperatorSymbol(); } string targetString = n.GetFirstTargetValue <float> (dockInput, 0f).ToString(); GUILayout.Label(operatorSymbol + " " + targetString); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); DrawDock(detector); GUILayout.FlexibleSpace(); GUILayout.Label("= "); GUILayout.Box(((float)result.value).ToString("0.00")); DrawDock(result); GUILayout.EndHorizontal(); }
public override void OnGUI() { Node_Movement n = (Node_Movement)node; backgroundColor = Color.blue; foreach (DockInput dockInput in n.inputs) { GUILayout.BeginHorizontal(); DrawDock(dockInput); GUILayout.Label(dockInput.name); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); DockOutput dockOutput = n.GetDockOutputByName("result"); GUILayout.Box(dockOutput.value.ToString()); DrawDock(dockOutput); GUILayout.EndHorizontal(); }
public override void OnGUI() { Node_Op_Trigonometry n = (Node_Op_Trigonometry)node; backgroundColor = Color.cyan; n.opTrigonometry = (Node_Op_Trigonometry.Op_Trigonometry)popup.EnumPopup((Enum)n.opTrigonometry); title = "Operator " + n.GetOperatorSymbol(); DockInput input = n.GetDockInputByName("input"); DockOutput result = n.GetDockOutputByName("result"); GUILayout.BeginHorizontal(); DrawDock(input); GUILayout.FlexibleSpace(); GUILayout.Label("= "); GUILayout.Box(((float)result.value).ToString("0.00")); DrawDock(result); GUILayout.EndHorizontal(); }
public override void OnGUI() { // cast node to the right type Node_Example n = (Node_Example)node; // change background color backgroundColor = Color.blue; // get dock references DockInput dockInput = n.GetDockInputByName("input_name"); DockOutput dockOutput = n.GetDockOutputByName("output_name"); // draw first row with dock input and its targets value GUILayout.BeginHorizontal(); DrawDock(dockInput); GUILayout.Label(n.GetFirstTargetValue <string> (dockInput)); GUILayout.EndHorizontal(); // draw a second row with the output dock and text field that modify the output value GUILayout.BeginHorizontal(); dockOutput.value = GUILayout.TextField((string)dockOutput.value); DrawDock(dockOutput); GUILayout.EndHorizontal(); }
public override void OnGUI() { Node_Vector n = (Node_Vector)node; backgroundColor = Color.green; for (int i = 0; i < n.inputs.Count; ++i) { GUILayout.BeginHorizontal(); DockInput dockInput = n.inputs [i]; DrawDock(dockInput); GUILayout.Label(dockInput.name); dockInput.value = numberFields[i].Float((float)dockInput.value); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); DockOutput dockOutput = n.outputs [0]; GUILayout.Label(dockOutput.value.ToString()); DrawDock(dockOutput); GUILayout.EndHorizontal(); }
public override void Update() { DockInput detectorInput = GetDockInputByName("detector"); DockOutput resultOutput = GetDockOutputByName("result"); // remove docks without targets foreach (DockInput dockInput in inputs.AsEnumerable().Reverse()) { if (dockInput.targets.Count == 0 && dockInput != detectorInput) { inputs.Remove(dockInput); } } for (int i = 0; i < inputs.Count; ++i) { DockInput dockInput = inputs [i]; // move connection from detector to new input if (dockInput == detectorInput) { if (dockInput.targets.Count > 0) { DockOutput moveTargetDock = (DockOutput)dockInput.targets [0]; nodeWindow.nodeEditor.MoveConnection( moveTargetDock, dockInput, AddInput(typeof(float), insertAtIndex: i)); } } else if (dockInput.targets.Count > 1) { DockOutput moveTargetDock = (DockOutput)dockInput.targets [1]; nodeWindow.nodeEditor.MoveConnection( moveTargetDock, dockInput, AddInput(typeof(float), insertAtIndex: i)); } } // only detector if (inputs.Count == 1) { resultOutput.value = 0f; return; } // head float result = (float)inputs[0].targets[0].value; // skip detector and head if (inputs.Count > 2) { foreach (DockInput dockInput in inputs.GetRange(1, inputs.Count - 1)) { if (dockInput == detectorInput) { continue; } float f = (float)dockInput.targets[0].value; if (basicOperator == BasicOperators.Add) { result += f; continue; } if (basicOperator == BasicOperators.Subtract) { result -= f; continue; } if (basicOperator == BasicOperators.Multiply) { result *= f; continue; } if (basicOperator == BasicOperators.Divide) { result /= f; continue; } } } resultOutput.value = result; }