From 1dc1f39aefcc1efa7ac9e13b67a3aec9cf2fda54 Mon Sep 17 00:00:00 2001 From: Alex Spencer Date: Sat, 31 May 2025 22:37:15 +0100 Subject: [PATCH 1/2] For visualisation, return regions in quadtree --- quadtree/src/quadtree.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/quadtree/src/quadtree.rs b/quadtree/src/quadtree.rs index 69c9257..d4f3a2b 100644 --- a/quadtree/src/quadtree.rs +++ b/quadtree/src/quadtree.rs @@ -129,6 +129,20 @@ impl> QuadTree { Box::new(my_iter.chain(subtree_iter)) } + + /// Returns all regions + pub fn regions(&self) -> Vec> { + let mut regions = vec![self.region.clone()]; + + regions.extend( + self.subtrees + .iter() + .flat_map(|subtrees| subtrees.iter().flat_map(|subtree| subtree.regions())) + .collect::>(), + ); + + regions + } } #[cfg(test)] @@ -228,6 +242,8 @@ mod tests { .flat_map(|subtree| subtree.points.iter()) .all(|p| p.item().1 == "data_subdivided") ); + + assert!(quadtree.regions().len() > 1); } #[test] From 8123649a4fb33068cf73ece9f2ed6642968e6eb6 Mon Sep 17 00:00:00 2001 From: Alex Spencer Date: Sat, 31 May 2025 22:40:52 +0100 Subject: [PATCH 2/2] Remove collect --- quadtree/src/quadtree.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/quadtree/src/quadtree.rs b/quadtree/src/quadtree.rs index d4f3a2b..cc6f7c5 100644 --- a/quadtree/src/quadtree.rs +++ b/quadtree/src/quadtree.rs @@ -137,8 +137,7 @@ impl> QuadTree { regions.extend( self.subtrees .iter() - .flat_map(|subtrees| subtrees.iter().flat_map(|subtree| subtree.regions())) - .collect::>(), + .flat_map(|subtrees| subtrees.iter().flat_map(|subtree| subtree.regions())), ); regions