Added
- Core: Added methods for querying R-tree nodes and entries by location (`query`
and `query_nodes`), as well as by an arbitrary condition (`search` and
`search_nodes`).
- Core: Added `traverse_node` to allow traversing a subtree beginning at a given
node.
- Core: Added `Rect.intersects` (returns a `bool` if a given rectangle intersects
another) and `Rect.intersection` (returns a `Rect` representing the intersection
region of two rectangles, or `None` if the rectangles do not intersect).
Changed
- Core: `RTreeBase.traverse` and `RTreeBase.traverse_level_order` now accept an
optional `condition` function that gets evaluated at each node. This can be used
to eliminate entire subtrees from being traversed.
- Core: `RTreeBase.traverse` and `RTreeBase.traverse_level_order` now `yield` the
result of the passed function, and `traverse` and `traverse_level_order` now return
an iterable instead of `None`. This allows one to start consuming the results while
still traversing the tree.