DirtyTrackingExtension<T> extension
Private extension for dirty tracking and spatial index management.
This extension groups all the dirty tracking logic for efficient spatial index updates. The pattern defers spatial index updates during drag operations and batches them when the drag ends.
Key concepts:
- Dirty tracking: Nodes/annotations/connections are marked "dirty" during drag
- Deferred updates: Spatial index updates are deferred to pending sets
- Batch flush: All pending updates are flushed when drag ends
- Connection index: O(1) lookup of connections by node ID
- on
Methods
-
internalMarkAnnotationDirty(
String annotationId) → void -
Available on NodeFlowController<
Marks an annotation as needing spatial index update.T> , provided by the DirtyTrackingExtension extension -
internalMarkNodeDirty(
String nodeId) → void -
Available on NodeFlowController<
Marks a node as needing spatial index update. If no drag is in progress (or debug mode is on), updates immediately. Otherwise, defers until drag ends.T> , provided by the DirtyTrackingExtension extension -
internalMarkNodesDirty(
Iterable< String> nodeIds) → void -
Available on NodeFlowController<
Marks multiple nodes as needing spatial index update.T> , provided by the DirtyTrackingExtension extension