pub struct Neighbourhood {
pub id: NeighbourhoodID,
pub borders: BTreeSet<IntersectionID>,
pub interior_intersections: BTreeSet<IntersectionID>,
pub boundary_polygon: Polygon,
pub interior_roads: BTreeSet<RoadID>,
pub perimeter_roads: BTreeSet<RoadID>,
pub suspicious_perimeter_roads: BTreeSet<RoadID>,
pub connected_exterior_roads: BTreeSet<RoadID>,
pub cells: Vec<Cell>,
pub shortcuts: Shortcuts,
}
Fields§
§id: NeighbourhoodID
§borders: BTreeSet<IntersectionID>
Intersections which form the boundary of the neighbourhood. This set includes any intersection which is
connected to a road which is part of the neighbourhood’s perimeter.
The roads which form the perimeter of the neighbourhood are the union of perimeter_roads
and suspicious_perimeter_roads
.
interior_intersections: BTreeSet<IntersectionID>
Intersections which are entirely inside the neighbourhood, and only connect interior roads to other interior roads.
boundary_polygon: Polygon
§interior_roads: BTreeSet<RoadID>
Roads which are either (a) entirely inside the neighbourhood and (b) roads which are part of suspicious_perimeter_roads
.
perimeter_roads: BTreeSet<RoadID>
Roads which form part of the neighbourhood’s perimeter, and are classified as arterial roads based on their OSM tags.
suspicious_perimeter_roads
are NOT included in perimeter_roads
.
suspicious_perimeter_roads: BTreeSet<RoadID>
Roads which form part of the neighbourhood’s perimeter, but are classified as local roads based on their OSM tags.
suspicious_perimeter_roads
are always a subset of interior_roads
.
connected_exterior_roads: BTreeSet<RoadID>
Roads which are lie outside the boundary_polygon
but could potentially be connected to an interior_road
or
perimeter_road
by either a road.turn_restrictions
, or road.complicated_turn_restrictions
. finish_init()
populates
this field.
cells: Vec<Cell>
§shortcuts: Shortcuts
Implementations§
Source§impl Neighbourhood
impl Neighbourhood
pub fn new(app: &App, id: NeighbourhoodID) -> Neighbourhood
pub fn new_without_app( map: &Map, partitioning: &Partitioning, id: NeighbourhoodID, ) -> Neighbourhood
fn new_custom( map: &Map, id: NeighbourhoodID, custom: CustomBoundary, ) -> Neighbourhood
fn finish_init(&mut self, map: &Map)
Sourcepub fn edits_changed(&mut self, map: &Map)
pub fn edits_changed(&mut self, map: &Map)
Recalculates cells and shortcuts after a relevant edit
pub fn fade_irrelevant(&self, ctx: &EventCtx<'_>, app: &App) -> Drawable
Auto Trait Implementations§
impl Freeze for Neighbourhood
impl RefUnwindSafe for Neighbourhood
impl Send for Neighbourhood
impl Sync for Neighbourhood
impl Unpin for Neighbourhood
impl UnwindSafe for Neighbourhood
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.