solveCollision method
Implementation
void solveCollision(TimeStep step) {
final aabb = _temp;
final lowerBound = aabb.lowerBound;
final upperBound = aabb.upperBound;
lowerBound.x = double.maxFinite;
lowerBound.y = double.maxFinite;
upperBound.x = -double.maxFinite;
upperBound.y = -double.maxFinite;
for (final particle in _particles) {
final v = particle.velocity;
final p1 = particle.position;
final p2x = p1.x + step.dt * v.x;
final p2y = p1.y + step.dt * v.y;
final bx = p1.x < p2x ? p1.x : p2x;
final by = p1.y < p2y ? p1.y : p2y;
lowerBound.x = lowerBound.x < bx ? lowerBound.x : bx;
lowerBound.y = lowerBound.y < by ? lowerBound.y : by;
final b1x = p1.x > p2x ? p1.x : p2x;
final b1y = p1.y > p2y ? p1.y : p2y;
upperBound.x = upperBound.x > b1x ? upperBound.x : b1x;
upperBound.y = upperBound.y > b1y ? upperBound.y : b1y;
}
_solveCollisionCallback.step = step;
_solveCollisionCallback.system = this;
world.queryAABB(_solveCollisionCallback, aabb);
}