protected float ComputeOperationTypeToken(SimulationModifierDescriptor.ModifierOperation operationType, ref string operation, ref string valueFormat, ref bool round) { float result = 0f; round = false; valueFormat = "#####0.#"; switch (operationType) { case SimulationModifierDescriptor.ModifierOperation.Addition: operation = "+"; break; case SimulationModifierDescriptor.ModifierOperation.Subtraction: operation = "-"; break; case SimulationModifierDescriptor.ModifierOperation.Multiplication: operation = "×"; result = 1f; break; case SimulationModifierDescriptor.ModifierOperation.Division: operation = "/"; result = 1f; break; case SimulationModifierDescriptor.ModifierOperation.Power: operation = "^"; result = 1f; break; case SimulationModifierDescriptor.ModifierOperation.Percent: operation = "+"; valueFormat = "#####0%"; break; case SimulationModifierDescriptor.ModifierOperation.Maximum: operation = "max. "; result = float.NegativeInfinity; break; case SimulationModifierDescriptor.ModifierOperation.Minimum: operation = "min. "; result = float.PositiveInfinity; break; default: operation = string.Empty; break; } return(result); }
protected float ExecuteOperation(SimulationModifierDescriptor.ModifierOperation operationType, float left, float right) { float num = 0f; switch (operationType) { case SimulationModifierDescriptor.ModifierOperation.Addition: num = left + right; break; case SimulationModifierDescriptor.ModifierOperation.Subtraction: num = left - right; break; case SimulationModifierDescriptor.ModifierOperation.Multiplication: num = left * right; break; case SimulationModifierDescriptor.ModifierOperation.Division: if (right != 0f) { num = left / right; } break; case SimulationModifierDescriptor.ModifierOperation.Power: num = Mathf.Pow(left, right); break; case SimulationModifierDescriptor.ModifierOperation.Percent: num = left + right; num *= 100f; break; case SimulationModifierDescriptor.ModifierOperation.Maximum: num = ((left >= right) ? left : right); break; case SimulationModifierDescriptor.ModifierOperation.Minimum: num = ((left <= right) ? left : right); break; } return(num); }
public void Add(string targetName, float value, SimulationModifierDescriptor.ModifierOperation operation = SimulationModifierDescriptor.ModifierOperation.Addition) { Modifiers.Add(new SingleSimulationModifierDescriptor(targetName, operation, value)); }