use geo_types::{Point, Polygon, line_string};
use rstared::RTreed;
use rstared::rstar::AABB;
use thunderdome::Arena;
fn main() {
let polygon_arena: Arena<Polygon<f64>> = Arena::new();
let mut rtreed = RTreed::new(polygon_arena);
let first = rtreed.push(Polygon::new(
line_string![
(x: 0.0, y: 0.0),
(x: 2.0, y: 0.5),
(x: 2.5, y: 2.0),
(x: 1.0, y: 2.5),
(x: 0.0, y: 1.0),
(x: 0.0, y: 0.0),
],
vec![],
));
rtreed.push(Polygon::new(
line_string![
(x: 2.0, y: 2.0),
(x: 5.0, y: 2.5),
(x: 4.5, y: 4.0),
(x: 3.0, y: 5.0),
(x: 2.0, y: 2.0),
],
vec![],
));
assert_eq!(
rtreed
.rtree()
.locate_in_envelope(AABB::from_corners(
Point::new(0.0, 0.0),
Point::new(5.0, 5.0),
))
.count(),
2
);
rtreed.remove(&first);
assert_eq!(
rtreed
.rtree()
.locate_in_envelope(AABB::from_corners(
Point::new(0.0, 0.0),
Point::new(5.0, 5.0),
))
.count(),
1
);
}
#[test]
fn test() {
main();
}