getQuadrants method Null safety
- Rect object
Determines which quadrants the object belongs to.
Takes the bounds of the area to be checked. Returns the intersecting subnodes (ne, nw, sw, se)
Implementation
List<Quadrant> getQuadrants(Rect object) {
final List<Quadrant> quadrants = [];
final xMidpoint = bounds.x + bounds.width / 2;
final yMidpoint = bounds.y + bounds.height / 2;
final startIsNorth = object.y < yMidpoint;
final startIsWest = object.x < xMidpoint;
final endIsEast = object.x + object.width > xMidpoint;
final endIsSouth = object.y + object.height > yMidpoint;
if (startIsNorth && endIsEast) quadrants.add(Quadrant.ne);
if (startIsWest && startIsNorth) quadrants.add(Quadrant.nw);
if (startIsWest && endIsSouth) quadrants.add(Quadrant.sw);
if (endIsEast && endIsSouth) quadrants.add(Quadrant.se);
return quadrants;
}