findIntersectingGroup method
Check if a node intersects with any group annotation Returns the first intersecting group, or null if none found
Implementation
GroupAnnotation? findIntersectingGroup(String nodeId) {
final node = _parentController.nodes[nodeId];
if (node == null) return null;
final nodeRect = Rect.fromLTWH(
node.visualPosition.value.dx,
node.visualPosition.value.dy,
node.size.value.width,
node.size.value.height,
);
for (final annotation in _annotations.values) {
if (annotation is GroupAnnotation &&
annotation.currentIsVisible &&
!annotation.dependencies.contains(nodeId)) {
final groupRect = Rect.fromLTWH(
annotation.visualPosition.value.dx,
annotation.visualPosition.value.dy,
annotation.size.width,
annotation.size.height,
);
if (nodeRect.overlaps(groupRect)) {
return annotation;
}
}
}
return null;
}