private void AddPotential(PotentialFunction potentialFunction) { potentialFunction.UpdateGridPosition(GridTransformer); for (var valueY = -potentialFunction.MaxGridDistance; valueY <= potentialFunction.MaxGridDistance; valueY++) { for (var valueX = -potentialFunction.MaxGridDistance; valueX <= potentialFunction.MaxGridDistance; valueX++) { var coords = new Point2(valueX + potentialFunction.GridPosition.X, valueY + potentialFunction.GridPosition.Y); if (coords.X >= 0 && coords.Y >= 0 && coords.X < PotentialArray.Width && coords.Y < PotentialArray.Height) { var value = potentialFunction.GetValue(coords.X, coords.Y); PotentialArray[coords.X, coords.Y] += value; } } } }
public void AddPotentialFunction(object key, PotentialFunction potentialFunction) { _valueProviders[key] = potentialFunction; }