示例#1
0
        override public ModuleBase GetModule()
        {
            // check that has inputs
            for (int i = 0; i < inputs.Length; i++)
            {
                if (inputs[i] == null)
                {
                    return(null);
                }
            }

            // get module
            switch (type)
            {
            case OPERATORTYPE.ABS:
                module = new Abs(inputs[0].GetModule());
                break;

            case OPERATORTYPE.ADD:
                module = new Add(inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.BLEND:
                module = new Blend(inputs[0].GetModule(), inputs[1].GetModule(), inputs[2].GetModule());
                break;

            case OPERATORTYPE.CLAMP:
                module = new Clamp(min, max, inputs[0].GetModule());
                break;

            case OPERATORTYPE.EXPONENT:
                module = new Exponent(exponent, inputs[0].GetModule());
                break;

            case OPERATORTYPE.INVERT:
                module = new Invert(inputs[0].GetModule());
                break;

            case OPERATORTYPE.MAX:
                module = new Max(inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.MIN:
                module = new Min(inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.MULTIPLY:
                module = new Multiply(inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.POWER:
                module = new Power(inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.SUBTRACT:
                module = new Subtract(inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.TERRACE:
                module = new Terrace(min, max, power, inputs[0].GetModule());
                break;

            case OPERATORTYPE.TRANSLATE:
                module = new Translate(x, y, z, inputs[0].GetModule());
                break;

            case OPERATORTYPE.DIVIDE:
                module = new Divide(inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.CURVE:
                if (curve == null)
                {
                    curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
                    if (keyframes != null)
                    {
                        curve.keys = SerializableKeyframe.ToKeyframeArray(keyframes);
                    }
                }
                if (keyframes == null)
                {
                    keyframes = SerializableKeyframe.FromKeyframeArray(curve.keys);
                }
                module = new Curve(keyframes, inputs[0].GetModule());
                break;

            case OPERATORTYPE.WEIGHT:
                module = new Weight(inputs[0].GetModule(), min, max);
                break;

            case OPERATORTYPE.WARP:
                module = new Warp(power, inputs[0].GetModule(), inputs[1].GetModule());
                break;

            case OPERATORTYPE.SELECT:
                module = new Select(inputs[0].GetModule(), min, max);
                break;
            }

            SetOutputOptions();
            return(this.module);
        }
示例#2
0
        public override ModuleBase GetModule()
        {
            // check that has inputs
            for(int i = 0; i < inputs.Length; i++) {
            if(inputs[i] == null) {
                return null;
            }
            }

            // get module
            switch(type) {
            case OPERATORTYPE.ABS:
                module = new Abs(inputs[0].GetModule());
                break;
            case OPERATORTYPE.ADD:
                module = new Add(inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.BLEND:
                module = new Blend(inputs[0].GetModule(), inputs[1].GetModule(), inputs[2].GetModule());
                break;
            case OPERATORTYPE.CLAMP:
                module = new Clamp(min, max, inputs[0].GetModule());
                break;
            case OPERATORTYPE.EXPONENT:
                module = new Exponent(exponent, inputs[0].GetModule());
                break;
            case OPERATORTYPE.INVERT:
                module = new Invert(inputs[0].GetModule());
                break;
            case OPERATORTYPE.MAX:
                module = new Max(inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.MIN:
                module = new Min(inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.MULTIPLY:
                module = new Multiply(inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.POWER:
                module = new Power(inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.SUBTRACT:
                module = new Subtract(inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.TERRACE:
                module = new Terrace(min, max, power, inputs[0].GetModule());
                break;
            case OPERATORTYPE.TRANSLATE:
                module = new Translate(x, y, z, inputs[0].GetModule());
                break;
            case OPERATORTYPE.DIVIDE:
                module = new Divide(inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.CURVE:
                if(curve == null) {
                    curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
                    if(keyframes != null)
                        curve.keys = SerializableKeyframe.ToKeyframeArray(keyframes);
                }
                if(keyframes == null)
                    keyframes = SerializableKeyframe.FromKeyframeArray(curve.keys);
                module = new Curve(keyframes, inputs[0].GetModule());
                break;
            case OPERATORTYPE.WEIGHT:
                module = new Weight(inputs[0].GetModule(), min, max);
                break;
            case OPERATORTYPE.WARP:
                module = new Warp(power, inputs[0].GetModule(), inputs[1].GetModule());
                break;
            case OPERATORTYPE.SELECT:
                module = new Select(inputs[0].GetModule(), min, max);
                break;
            }

            SetOutputOptions();
            return this.module;
        }