Struct map_gui::tools::InputWaypoints
source · pub struct InputWaypoints {
waypoints: Vec<Waypoint>,
snap_to_main_endpts: FindClosest<TripEndpoint>,
snap_to_road_endpts: FindClosest<LaneID>,
max_waypts: Option<usize>,
}
Expand description
Click to add waypoints, drag them, see the list on a panel and delete them. The caller owns the Panel and the World, since there’s probably more stuff there too.
Fields§
§waypoints: Vec<Waypoint>
§snap_to_main_endpts: FindClosest<TripEndpoint>
§snap_to_road_endpts: FindClosest<LaneID>
§max_waypts: Option<usize>
Implementations§
source§impl InputWaypoints
impl InputWaypoints
sourcepub fn new(
app: &dyn AppLike,
snap_to_lanes_for: Vec<PathConstraints>
) -> InputWaypoints
pub fn new( app: &dyn AppLike, snap_to_lanes_for: Vec<PathConstraints> ) -> InputWaypoints
Allows any number of waypoints
sourcepub fn new_max_2(
app: &dyn AppLike,
snap_to_lanes_for: Vec<PathConstraints>
) -> Self
pub fn new_max_2( app: &dyn AppLike, snap_to_lanes_for: Vec<PathConstraints> ) -> Self
Only allow drawing routes with 2 waypoints. If a route is loaded with more than that, it can be modified.
sourcepub fn overwrite(&mut self, app: &dyn AppLike, waypoints: Vec<TripEndpoint>)
pub fn overwrite(&mut self, app: &dyn AppLike, waypoints: Vec<TripEndpoint>)
The caller should call rebuild_world
after this
pub fn get_panel_widget(&self, ctx: &mut EventCtx<'_>) -> Widget
pub fn get_waypoints(&self) -> Vec<TripEndpoint>
pub fn len(&self) -> usize
sourcepub fn event(
&mut self,
app: &dyn AppLike,
panel_outcome: Outcome,
world_outcome: WorldOutcome<WaypointID>
) -> bool
pub fn event( &mut self, app: &dyn AppLike, panel_outcome: Outcome, world_outcome: WorldOutcome<WaypointID> ) -> bool
If the outcome from the panel or world isn’t used by the caller, pass it along here. When this
returns true, something has changed, so the caller may want to update their view of the
route and call get_panel_widget
and rebuild_world
again.
fn snap(&self, app: &dyn AppLike, cursor: Pt2D) -> Option<TripEndpoint>
pub fn get_waypoint_color(&self, idx: usize) -> Color
sourcepub fn rebuild_world<T: ObjectID, F: Fn(WaypointID) -> T>(
&self,
ctx: &mut EventCtx<'_>,
world: &mut World<T>,
wrap_id: F,
zorder: usize
)
pub fn rebuild_world<T: ObjectID, F: Fn(WaypointID) -> T>( &self, ctx: &mut EventCtx<'_>, world: &mut World<T>, wrap_id: F, zorder: usize )
The caller is responsible for calling initialize_hover
and rebuilt_during_drag
.
Auto Trait Implementations§
impl Freeze for InputWaypoints
impl RefUnwindSafe for InputWaypoints
impl Send for InputWaypoints
impl Sync for InputWaypoints
impl Unpin for InputWaypoints
impl UnwindSafe for InputWaypoints
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
Mutably borrows from an owned value. Read more
§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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.