apply method

  1. @override
void apply(
  1. ForceSimulation simulation
)
override

Applies the force to the simulation.

Implementation

@override
void apply(ForceSimulation simulation) {
  for (final node in simulation.nodes) {
    if (node.fixed) continue;

    if (node.x - node.radius < minX) {
      node.x = minX + node.radius;
      node.vx *= -bounce;
    } else if (node.x + node.radius > maxX) {
      node.x = maxX - node.radius;
      node.vx *= -bounce;
    }

    if (node.y - node.radius < minY) {
      node.y = minY + node.radius;
      node.vy *= -bounce;
    } else if (node.y + node.radius > maxY) {
      node.y = maxY - node.radius;
      node.vy *= -bounce;
    }
  }
}