collisionPairs method

  1. @override
void collisionPairs(
  1. World world,
  2. List<Body> p1,
  3. List<Body> p2
)
override

Collect all collision pairs

Implementation

@override
void collisionPairs(World world, List<Body> p1, List<Body> p2) {
  final bodies = axisList;
  final N = bodies.length;
  final axisIndex = this.axisIndex;

  if (dirty) {
    sortList();
    dirty = false;
  }

  // Look through the list
  for (int i = 0; i != N; i++) {
    final bi = bodies[i];

    for (int j = i + 1; j < N; j++) {
      final bj = bodies[j];

      if (!needBroadphaseCollision(bi, bj)) {
        continue;
      }

      if (!SAPBroadphase.checkBounds(bi, bj, axisIndex)) {
        break;
      }

      intersectionTest(bi, bj, p1, p2);
    }
  }
}