예제 #1
0
 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;
             }
         }
     }
 }
예제 #2
0
 public void AddPotentialFunction(object key, PotentialFunction potentialFunction)
 {
     _valueProviders[key] = potentialFunction;
 }