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); }
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); } }