DiagramSpatialIndex constructor

DiagramSpatialIndex(
  1. Iterable<ResolvedElement> elements
)

Implementation

DiagramSpatialIndex(Iterable<ResolvedElement> elements)
  : _elements = DiagramPersistentList<ResolvedElement>.snapshot(
      elements.toList(),
    ),
    _cells = _SpatialBuckets(),
    _global = [] {
  _positions = {
    for (var i = 0; i < _elements.length; i++) _elements[i].id: i,
  };
  for (var index = 0; index < _elements.length; index += 1) {
    final cells = _cellsFor(_elements[index].bounds);
    if (cells == null) {
      _global.add(_elements[index].id);
      continue;
    }
    for (final cell in cells) {
      (_cells[cell] ??= <String>[]).add(_elements[index].id);
    }
  }
}