Ejemplo n.º 1
0
 public override void OnGUI(EditorGuiBase gui)
 {
     label      = gui.textField("name", label);
     scale      = gui.silder("scale", scale, 0f, 10f);
     bias       = gui.silder("bias", bias, -5f, 5f);
     normalType = (NormalType)gui.enumPopup("normal type", normalType);
     height     = gui.floatField("height", height);
 }
Ejemplo n.º 2
0
    public void DrawProperty(EditorGuiBase gui)
    {
        NodeBase newNode = null;

        if (node.value.getNodeType() == NodeType.Generator)
        {
            GeneratorType newType = (GeneratorType)gui.enumPopup("Generator Type", generateType);
            if (newType != generateType)
            {
                newNode = NodeBase.createNewGenerate(newType);
            }
            generateType = newType;
        }
        else if (node.value.getNodeType() == NodeType.UnaryOperator)
        {
            UnaryOperatorType newType = (UnaryOperatorType)gui.enumPopup("Operator Type", unaryOperatorType);
            if (newType != unaryOperatorType)
            {
                newNode = NodeBase.createNewUnaryOperator(newType);
            }
            //    string oldGuid = node.value.guid;
            //    string oldName = node.value.label;
            //    node = new NodeWrapper(NodeBase.createNewUnaryOperator(newType));
            //    node.value.label = oldName;
            //    node.value.guid = oldGuid;
            //}
            unaryOperatorType = newType;
        }
        else if (node.value.getNodeType() == NodeType.BinaryOperator)
        {
            BinaryOperatorType newType = (BinaryOperatorType)gui.enumPopup("Operator Type", binaryOperatorType);
            if (newType != binaryOperatorType)
            {
                ((NodeBinaryOperator)node.value).operatorType = newType;
            }
            binaryOperatorType = newType;
        }
        if (newNode != null)
        {
            newNode.copy(node.value);
            node = new NodeWrapper(newNode);
        }
        node.value.OnGUI(gui);

        int newHashCode = node.value.GetHashCode();

        if (newHashCode != oldHash || bNeedUpdate)
        {
            bNeedUpdate  = false;
            float[,] cls = node.value.update(0, 0, 0, 128, 128);
            //node.value.getPreview();
            int w = 128;
            tex = new Texture2D(w, w);
            Color[] colors = new Color[w * w];
            for (int i = 0; i < w; i++)
            {
                for (int j = 0; j < w; j++)
                {
                    colors[j * w + i].a = 1;
                    colors[j * w + i].r = cls[i, j];
                    colors[j * w + i].g = cls[i, j];
                    colors[j * w + i].b = cls[i, j];
                }
            }
            tex.SetPixels(colors);
            tex.Apply();
        }
        oldHash = newHashCode;
    }