getNearObject method

T? getNearObject(
  1. Point<num> point
)

Implementation

T? getNearObject(Point point) {
  var x = _getCoord(point.x),
      y = _getCoord(point.y),
      closestDistSq = _sqCellSize;
  T? closest;

  for (var i = y - 1; i <= y + 1; i++) {
    var row = _grid[i];
    if (row != null) {
      for (var j = x - 1; j <= x + 1; j++) {
        var cell = row[j];
        if (cell != null) {
          for (var k = 0, len = cell.length; k < len; k++) {
            var obj = cell[k];
            var dist = _sqDist(_objectPoint[obj]!, point);

            if (dist < closestDistSq ||
                dist <= closestDistSq && closest == null) {
              closestDistSq = dist;
              closest = obj;
            }
          }
        }
      }
    }
  }
  return closest;
}