getAllCollisions function
Gets all items in the layout that collide with the given item.
Implementation
List<LayoutItem> getAllCollisions(Layout layout, LayoutItem layoutItem) {
final collisions = <LayoutItem>[];
final targetLeft = layoutItem.x;
final targetRight = layoutItem.x + layoutItem.w;
final targetTop = layoutItem.y;
final targetBottom = layoutItem.y + layoutItem.h;
final targetId = layoutItem.id;
for (final item in layout) {
if (item.id == targetId) continue;
if (targetRight <= item.x) continue;
if (targetLeft >= item.x + item.w) continue;
if (targetBottom <= item.y) continue;
if (targetTop >= item.y + item.h) continue;
collisions.add(item);
}
return collisions;
}