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();
    }
Пример #2
0
    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;
    }
Пример #3
0
    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);
    }
Пример #5
0
    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);
    }
Пример #6
0
    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();
    }
Пример #7
0
    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;
        }
    }
Пример #8
0
    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();
    }
Пример #9
0
    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();
    }
Пример #10
0
    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();
    }
Пример #11
0
    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();
    }
Пример #13
0
    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;
    }