updateIndex method

  1. @override
void updateIndex(
  1. SpatialIndex<InteractivePolyline<Object>> index,
  2. Op<InteractivePolyline<Object>> op,
  3. InteractivePolyline<Object>? getItem(
    1. Key
    )
)
override

Updates the spatial index based on the operation. getItem allows retrieving the current state of an item by key (useful for Move ops).

Implementation

@override
void updateIndex(
  SpatialIndex<InteractivePolyline> index,
  Op<InteractivePolyline> op,
  InteractivePolyline? Function(Key) getItem,
) {
  switch (op) {
    case AddPolylineOp(:final polyline):
      index.add(polyline.key!, polyline, getBounds(polyline));
    case RemovePolylineOp(:final key):
      index.remove(key);
    case UpdatePolylineOp(:final newPolyline):
      index.add(newPolyline.key!, newPolyline, getBounds(newPolyline));
    case MovePolylineOp(:final key):
      final item = getItem(key);
      if (item != null) {
        index.add(key, item, getBounds(item));
      }
    case MovePointPolylineOp(:final key):
      final item = getItem(key);
      if (item != null) {
        index.add(key, item, getBounds(item));
      }
  }
}