Represents a collection of GraphNodes.
It allows for fast lookups of the closest node to a point.
Add the node to the tree.
Add all nodes within a squared distance of the point to the buffer.
Closest node to the point which satisfies the constraint and is at most at the given distance.
Closest node to the point which satisfies the constraint.
Rebuild the tree starting with all nodes in the array between index start (inclusive) and end (exclusive)