add method

void add(
  1. ColliderNode collider
)

Implementation

void add(ColliderNode collider) {
  assert(
    !_mapping.containsKey(collider),
    'Collider is already registered.',
  );

  final int slot;

  if (_freeSlots.isNotEmpty) {
    // Reuse a free slot.
    slot = _freeSlots.removeLast();
    _colliderIndex[slot] = collider;
    _orderIndex[slot] = -1;
  } else {
    // Create a new slot.
    slot = _colliderIndex.length;
    _colliderIndex.add(collider);
    _boundsIndex.add(null);
    _transformIndex.add(null);
    _narrowphaseIndex.add(null);
    _orderIndex.add(-1);
  }

  _colliders.add(collider);
  _mapping[collider] = slot;
  _sorted = false;
}