Example #1
0
    private MLNumericParam debugFilter(DebugableFloat param_)
    {
        DebugableFloat param = param_;

        param = param * scale + add;
        param.debug();
        switch (type)
        {
//DEBUG
        case FilterType.PASS_AS_IS:
        default:
            return((float)param_);

        case FilterType.FLOAT_TO_BOOL:
            param = Mathf.Abs((float)param) > 0.001f ? 1f : 0f;
            break;

        case FilterType.SCALE_ADD:
            break;

        case FilterType.SCALE_ADD_MOD:
            param = MLMath.fmod(param, mod);
            break;

        case FilterType.SCALE_ADD_CLAMP:
            param = Mathf.Clamp(param, clampRange.min, clampRange.max);
            break;

        case FilterType.SCALE_ADD_MOD_ROUND:
            param = Mathf.Round(MLMath.fmod(param, mod));
            break;

        case FilterType.SCALE_ADD_MOD_FLOOR:
            param = Mathf.Floor(MLMath.fmod(param, mod));
            break;

        case FilterType.SCALE_ADD_MOD_CEIL:
            param = Mathf.Ceil(MLMath.fmod(param, mod));
            break;

        case FilterType.SCALE_ADD_MOD_OFFSET:
            param = MLMath.fmod(param, mod) + offset;
            break;
//DEBUG
        }
        return((float)param);
    }
Example #2
0
    public MLNumericParam filter(MLNumericParam param)
    {
        if (debug)
        {
            return(debugFilter((float)param));
        }
        switch (type)
        {
        case FilterType.PASS_AS_IS:
        default:
            return(param);

        case FilterType.FLOAT_TO_BOOL:
            return(param.Bool ? 1f : 0f);

        case FilterType.SCALE_ADD:
            return(param * scale + add);

        case FilterType.SCALE_ADD_MOD:
            return(MLMath.fmod(param * scale + add, mod));

        case FilterType.SCALE_ADD_CLAMP:
            return(Mathf.Clamp(param * scale + add, clampRange.min, clampRange.max));

        case FilterType.SCALE_ADD_MOD_ROUND:
            return(Mathf.Round(MLMath.fmod(param * scale + add, mod)));

        case FilterType.SCALE_ADD_MOD_FLOOR:
            return(Mathf.Floor(MLMath.fmod(param * scale + add, mod)));

        case FilterType.SCALE_ADD_MOD_CEIL:
            return(Mathf.Ceil(MLMath.fmod(param * scale + add, mod)));

        case FilterType.SCALE_ADD_MOD_OFFSET:
            return(MLMath.fmod(param * scale + add, mod) + offset);

        case FilterType.FLOAT_TO_BOOL_INVERT:
            return(param.Bool ? 0f : 1f);

        case FilterType.TRUE_IF_EQUALS_AS_INT:
            return((int)param.value_ == intCompare ? 1f : 0f);
        }
    }