public List <Node> FindNodesIntersectingRectangle(UVRect rectangle) { var nodes = new List <Node>(); if (!Intersects(rectangle)) { return(nodes); } if (IsLeafNode) { nodes.Add(this); return(nodes); } nodes.AddRange(NW.FindNodesIntersectingRectangle(rectangle)); nodes.AddRange(NE.FindNodesIntersectingRectangle(rectangle)); nodes.AddRange(SW.FindNodesIntersectingRectangle(rectangle)); nodes.AddRange(SE.FindNodesIntersectingRectangle(rectangle)); return(nodes); }