protected rangeValueBase(T min, T max, T start, numberRangeModifyRule __rule) { rule = __rule; setCriteria(min, max, false); //range = getRange(min, max); val = start; }
public rangeValueEnum(numberRangeModifyRule __rule, T start) : base() { Type t = typeof(T); if (!t.isEnum()) { throw new ArgumentException("start", "Type must be an Enum"); } var vls = Enum.GetValues(t); foreach (Object v in vls) { values.Add(v); } var ens = t.GetEnumNames().ToList(); min = 0; max = Enumerable.Count <string>(ens); range = Enumerable.Count <string>(ens); rule = __rule; val = Convert.ToInt32(start); }
/// <summary> /// Održava vrednost u zadatom rasponu /// </summary> /// <param name="old">Postojeća vrednost</param> /// <param name="delta">Razlika kojom pravimo korekciju</param> /// <param name="max">Maksimalna vrednost</param> /// <param name="rule">Pravilo kojim menjamo vrednost</param> /// <param name="op">Operator koji se primenjuje</param> /// <returns> /// Broj koji je sigurno u rasponu /// </returns> /// <seealso cref="aceCommonTypes.extensions.imbValueChangers.checkRange(int,int,int,bool)"/> public static float rangeChange(this float old, float delta, float max, numberRangeModifyRule rule, String op = "+") { Double tmpOut = Convert.ToDouble(old); Double tmpMax = Convert.ToDouble(max); Double tmpDelta = Convert.ToDouble(delta); return((float)rangeChange(tmpOut, tmpDelta, tmpMax, rule, op)); }
/// <summary> /// Defines range /// </summary> /// <param name="_min">The minimum.</param> /// <param name="_max">The maximum.</param> /// <param name="_rule">The rule.</param> public aceRangeConfig(IComparable _min, IComparable _max, numberRangeModifyRule _rule) { min = _min; max = _max; rule = _rule; }
public static Int32 rangeChange(this Int32 old, Int32 delta, Int32 max, numberRangeModifyRule rule, String op = "+") { return((Int32)rangeChange((float)old, (float)delta, (float)max, rule, op)); }
public static Double rangeChange(this Double old, Double delta, Double max, numberRangeModifyRule rule, String op = "+", Double min = 0) { Double tmpOut = old; Double tmpMax = max; Double tmpDelta = delta; Boolean doCalc = false; switch (rule) { case numberRangeModifyRule.clipToMax: case numberRangeModifyRule.loop: case numberRangeModifyRule.bounce: doCalc = true; break; default: break; } if (doCalc) { switch (op) { case "+": tmpOut = old + delta; break; case "-": tmpOut = old - delta; break; case "/": tmpOut = old / delta; break; case "*": tmpOut = old * delta; break; case "%": tmpOut = old % delta; break; default: throw new NotImplementedException(); //Expression exp = new Expression(old.ToString() + op + delta.ToString()); //tmpOut = Double.Parse(exp.Evaluate().ToString()); break; } } switch (rule) { case numberRangeModifyRule.clipToMax: if (tmpOut > tmpMax) { tmpOut = tmpMax; } break; case numberRangeModifyRule.loop: // tmpOut = Double.Parse(exp.Evaluate().ToString()); if (tmpOut > tmpMax) { tmpOut = tmpOut % tmpMax; } break; case numberRangeModifyRule.set: tmpOut = tmpDelta; break; case numberRangeModifyRule.bounce: if (tmpOut > tmpMax) { Double t = tmpMax - tmpOut; tmpOut = tmpMax + t; if (tmpOut < min) { tmpOut = min; } // tmpOut = tmpOut tmpMax; } break; case numberRangeModifyRule.bypass: default: tmpOut = old; break; } //if (tmpOut < min) tmpOut = min; return(tmpOut); }
public static Decimal rangeChange(this Decimal old, Decimal delta, Decimal max, numberRangeModifyRule rule, String op = "+") { Double tmpOut = Convert.ToDouble(old); Double tmpMax = Convert.ToDouble(max); Double tmpDelta = Convert.ToDouble(delta); return((Decimal)rangeChange(tmpOut, tmpDelta, tmpMax, rule, op)); }
public imbAttribute(imbAttributeName _name, Double _min, Double _max, numberRangeModifyRule _mode) { name = _name.ToString(); nameEnum = _name; objMsg = new aceRangeConfig(_min, _max, _mode); }
public rangeValueDecimal(decimal min, decimal max, decimal start, numberRangeModifyRule __rule) : base(min, max, start, __rule) { range = max - min; }
public rangeValueDouble(double min, double max, double start, numberRangeModifyRule __rule) : base(min, max, start, __rule) { range = max - min; }
public rangeValueInt32(int min, int max, int start, numberRangeModifyRule __rule) : base(min, max, start, __rule) { range = max - min; }