mirror of https://codeberg.org/topola/topola.git
geometry: make the R-tree private with read-only ref getter
This commit is contained in:
parent
4be2a0ca73
commit
847309adae
|
|
@ -29,7 +29,7 @@ pub struct GeometryWithRtree<
|
|||
BI: GetNodeIndex + Into<GI> + Copy,
|
||||
> {
|
||||
geometry: Geometry<GW, DW, SW, BW, GI, DI, SI, BI>,
|
||||
pub rtree: RTree<BboxedShapeAndIndex<GI>>,
|
||||
rtree: RTree<BboxedShapeAndIndex<GI>>,
|
||||
weight_marker: PhantomData<GW>,
|
||||
dot_weight_marker: PhantomData<DW>,
|
||||
seg_weight_marker: PhantomData<SW>,
|
||||
|
|
@ -210,6 +210,10 @@ impl<
|
|||
&self.geometry
|
||||
}
|
||||
|
||||
pub fn rtree(&self) -> &RTree<BboxedShapeAndIndex<GI>> {
|
||||
&self.rtree
|
||||
}
|
||||
|
||||
pub fn graph(&self) -> &StableDiGraph<GW, GeometryLabel, usize> {
|
||||
self.geometry.graph()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -748,7 +748,7 @@ impl Layout {
|
|||
|
||||
pub fn nodes(&self) -> impl Iterator<Item = GeometryIndex> + '_ {
|
||||
self.geometry_with_rtree
|
||||
.rtree
|
||||
.rtree()
|
||||
.iter()
|
||||
.map(|wrapper| wrapper.data)
|
||||
}
|
||||
|
|
@ -763,7 +763,7 @@ impl Layout {
|
|||
|
||||
fn node_indices(&self) -> impl Iterator<Item = GeometryIndex> + '_ {
|
||||
self.geometry_with_rtree
|
||||
.rtree
|
||||
.rtree()
|
||||
.iter()
|
||||
.map(|wrapper| wrapper.data)
|
||||
}
|
||||
|
|
@ -813,7 +813,7 @@ impl Layout {
|
|||
let shape = node.primitive(self).shape();
|
||||
|
||||
self.geometry_with_rtree
|
||||
.rtree
|
||||
.rtree()
|
||||
.locate_in_envelope_intersecting(&RTreeObject::envelope(&shape))
|
||||
.filter(|wrapper| {
|
||||
let other_index = wrapper.data;
|
||||
|
|
@ -833,7 +833,7 @@ impl Layout {
|
|||
let shape = node.primitive(self).shape();
|
||||
|
||||
self.geometry_with_rtree
|
||||
.rtree
|
||||
.rtree()
|
||||
.locate_in_envelope_intersecting(&RTreeObject::envelope(&shape))
|
||||
.filter(|wrapper| {
|
||||
let other_index = wrapper.data;
|
||||
|
|
|
|||
Loading…
Reference in New Issue