add method

ItemIdx add({
  1. required CoordinateNumberType minX,
  2. required CoordinateNumberType minY,
  3. required CoordinateNumberType maxX,
  4. required CoordinateNumberType maxY,
})

Adds a given rectangle to the index, specified by minX, minY, maxX, and maxY, and returns the corresponding ItemIdx for the added item.

Implementation

ItemIdx add({
  required CoordinateNumberType minX,
  required CoordinateNumberType minY,
  required CoordinateNumberType maxX,
  required CoordinateNumberType maxY,
}) {
  final index = _pos >> 2;
  _indices[index] = index;
  _boxes[_pos++] = minX;
  _boxes[_pos++] = minY;
  _boxes[_pos++] = maxX;
  _boxes[_pos++] = maxY;

  if (minX < _indexMinX) _indexMinX = minX;
  if (minY < _indexMinY) _indexMinY = minY;
  if (maxX > _indexMaxX) _indexMaxX = maxX;
  if (maxY > _indexMaxY) _indexMaxY = maxY;

  return index;
}