[−][src]Trait sim::mechanics::parking::ParkingSim
Manages the state of parked cars. There are two implementations:
- NormalParkingSimState allows only one vehicle per ParkingSpot defined in the map
- InfiniteParkingSimState pretends every building has infinite capacity, and onstreet parking is ignored
Required methods
fn handle_live_edits(
&mut self,
map: &Map,
timer: &mut Timer<'_>
) -> Vec<ParkedCar>
&mut self,
map: &Map,
timer: &mut Timer<'_>
) -> Vec<ParkedCar>
fn get_free_onstreet_spots(&self, l: LaneID) -> Vec<ParkingSpot>
fn get_free_offstreet_spots(&self, b: BuildingID) -> Vec<ParkingSpot>
fn get_free_lot_spots(&self, pl: ParkingLotID) -> Vec<ParkingSpot>
fn reserve_spot(&mut self, spot: ParkingSpot)
fn remove_parked_car(&mut self, p: ParkedCar)
fn add_parked_car(&mut self, p: ParkedCar)
fn get_draw_cars(&self, id: LaneID, map: &Map) -> Vec<DrawCarInput>
fn get_draw_cars_in_lots(&self, id: LaneID, map: &Map) -> Vec<DrawCarInput>
fn get_draw_car(&self, id: CarID, map: &Map) -> Option<DrawCarInput>
fn canonical_pt(&self, id: CarID, map: &Map) -> Option<Pt2D>
fn get_all_draw_cars(&self, map: &Map) -> Vec<DrawCarInput>
fn is_free(&self, spot: ParkingSpot) -> bool
fn get_car_at_spot(&self, spot: ParkingSpot) -> Option<&ParkedCar>
fn get_all_free_spots(
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
fn spot_to_driving_pos(
&self,
spot: ParkingSpot,
vehicle: &Vehicle,
map: &Map
) -> Position
&self,
spot: ParkingSpot,
vehicle: &Vehicle,
map: &Map
) -> Position
fn spot_to_sidewalk_pos(&self, spot: ParkingSpot, map: &Map) -> Position
fn get_owner_of_car(&self, id: CarID) -> Option<PersonID>
fn lookup_parked_car(&self, id: CarID) -> Option<&ParkedCar>
fn get_all_parking_spots(&self) -> (Vec<ParkingSpot>, Vec<ParkingSpot>)
fn path_to_free_parking_spot(
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
fn collect_events(&mut self) -> Vec<Event>
fn all_parked_car_positions(&self, map: &Map) -> Vec<(Position, PersonID)>
fn bldg_to_parked_cars(&self, b: BuildingID) -> Vec<CarID>
Implementors
impl ParkingSim for ParkingSimState
[src]
fn handle_live_edits(
&mut self,
map: &Map,
timer: &mut Timer<'_>
) -> Vec<ParkedCar>
[src]
&mut self,
map: &Map,
timer: &mut Timer<'_>
) -> Vec<ParkedCar>
fn get_free_onstreet_spots(&self, l: LaneID) -> Vec<ParkingSpot>
[src]
fn get_free_offstreet_spots(&self, b: BuildingID) -> Vec<ParkingSpot>
[src]
fn get_free_lot_spots(&self, pl: ParkingLotID) -> Vec<ParkingSpot>
[src]
fn reserve_spot(&mut self, spot: ParkingSpot)
[src]
fn remove_parked_car(&mut self, p: ParkedCar)
[src]
fn add_parked_car(&mut self, p: ParkedCar)
[src]
fn get_draw_cars(&self, id: LaneID, map: &Map) -> Vec<DrawCarInput>
[src]
fn get_draw_cars_in_lots(&self, id: LaneID, map: &Map) -> Vec<DrawCarInput>
[src]
fn get_draw_car(&self, id: CarID, map: &Map) -> Option<DrawCarInput>
[src]
fn canonical_pt(&self, id: CarID, map: &Map) -> Option<Pt2D>
[src]
fn get_all_draw_cars(&self, map: &Map) -> Vec<DrawCarInput>
[src]
fn is_free(&self, spot: ParkingSpot) -> bool
[src]
fn get_car_at_spot(&self, spot: ParkingSpot) -> Option<&ParkedCar>
[src]
fn get_all_free_spots(
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
[src]
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
fn spot_to_driving_pos(
&self,
spot: ParkingSpot,
vehicle: &Vehicle,
map: &Map
) -> Position
[src]
&self,
spot: ParkingSpot,
vehicle: &Vehicle,
map: &Map
) -> Position
fn spot_to_sidewalk_pos(&self, spot: ParkingSpot, map: &Map) -> Position
[src]
fn get_owner_of_car(&self, id: CarID) -> Option<PersonID>
[src]
fn lookup_parked_car(&self, id: CarID) -> Option<&ParkedCar>
[src]
fn get_all_parking_spots(&self) -> (Vec<ParkingSpot>, Vec<ParkingSpot>)
[src]
fn path_to_free_parking_spot(
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
[src]
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
fn collect_events(&mut self) -> Vec<Event>
[src]
fn all_parked_car_positions(&self, map: &Map) -> Vec<(Position, PersonID)>
[src]
fn bldg_to_parked_cars(&self, b: BuildingID) -> Vec<CarID>
[src]
impl ParkingSim for InfiniteParkingSimState
[src]
fn handle_live_edits(&mut self, map: &Map, _: &mut Timer<'_>) -> Vec<ParkedCar>
[src]
fn get_free_onstreet_spots(&self, _: LaneID) -> Vec<ParkingSpot>
[src]
fn get_free_offstreet_spots(&self, b: BuildingID) -> Vec<ParkingSpot>
[src]
fn get_free_lot_spots(&self, _: ParkingLotID) -> Vec<ParkingSpot>
[src]
fn reserve_spot(&mut self, spot: ParkingSpot)
[src]
fn remove_parked_car(&mut self, p: ParkedCar)
[src]
fn add_parked_car(&mut self, p: ParkedCar)
[src]
fn get_draw_cars(&self, _: LaneID, _: &Map) -> Vec<DrawCarInput>
[src]
fn get_draw_cars_in_lots(&self, _: LaneID, _: &Map) -> Vec<DrawCarInput>
[src]
fn get_draw_car(&self, _: CarID, _: &Map) -> Option<DrawCarInput>
[src]
fn canonical_pt(&self, id: CarID, map: &Map) -> Option<Pt2D>
[src]
fn get_all_draw_cars(&self, _: &Map) -> Vec<DrawCarInput>
[src]
fn is_free(&self, spot: ParkingSpot) -> bool
[src]
fn get_car_at_spot(&self, spot: ParkingSpot) -> Option<&ParkedCar>
[src]
fn get_all_free_spots(
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
[src]
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
fn spot_to_driving_pos(
&self,
spot: ParkingSpot,
_: &Vehicle,
map: &Map
) -> Position
[src]
&self,
spot: ParkingSpot,
_: &Vehicle,
map: &Map
) -> Position
fn spot_to_sidewalk_pos(&self, spot: ParkingSpot, map: &Map) -> Position
[src]
fn get_owner_of_car(&self, id: CarID) -> Option<PersonID>
[src]
fn lookup_parked_car(&self, id: CarID) -> Option<&ParkedCar>
[src]
fn get_all_parking_spots(&self) -> (Vec<ParkingSpot>, Vec<ParkingSpot>)
[src]
fn path_to_free_parking_spot(
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
[src]
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
fn collect_events(&mut self) -> Vec<Event>
[src]
fn all_parked_car_positions(&self, map: &Map) -> Vec<(Position, PersonID)>
[src]
fn bldg_to_parked_cars(&self, b: BuildingID) -> Vec<CarID>
[src]
impl ParkingSim for NormalParkingSimState
[src]
fn handle_live_edits(
&mut self,
map: &Map,
timer: &mut Timer<'_>
) -> Vec<ParkedCar>
[src]
&mut self,
map: &Map,
timer: &mut Timer<'_>
) -> Vec<ParkedCar>
fn get_free_onstreet_spots(&self, l: LaneID) -> Vec<ParkingSpot>
[src]
fn get_free_offstreet_spots(&self, b: BuildingID) -> Vec<ParkingSpot>
[src]
fn get_free_lot_spots(&self, pl: ParkingLotID) -> Vec<ParkingSpot>
[src]
fn reserve_spot(&mut self, spot: ParkingSpot)
[src]
fn remove_parked_car(&mut self, p: ParkedCar)
[src]
fn add_parked_car(&mut self, p: ParkedCar)
[src]
fn get_draw_cars(&self, id: LaneID, map: &Map) -> Vec<DrawCarInput>
[src]
fn get_draw_cars_in_lots(&self, id: LaneID, map: &Map) -> Vec<DrawCarInput>
[src]
fn get_draw_car(&self, id: CarID, map: &Map) -> Option<DrawCarInput>
[src]
fn canonical_pt(&self, id: CarID, map: &Map) -> Option<Pt2D>
[src]
fn get_all_draw_cars(&self, map: &Map) -> Vec<DrawCarInput>
[src]
fn is_free(&self, spot: ParkingSpot) -> bool
[src]
fn get_car_at_spot(&self, spot: ParkingSpot) -> Option<&ParkedCar>
[src]
fn get_all_free_spots(
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
[src]
&self,
driving_pos: Position,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Vec<(ParkingSpot, Position)>
fn spot_to_driving_pos(
&self,
spot: ParkingSpot,
vehicle: &Vehicle,
map: &Map
) -> Position
[src]
&self,
spot: ParkingSpot,
vehicle: &Vehicle,
map: &Map
) -> Position
fn spot_to_sidewalk_pos(&self, spot: ParkingSpot, map: &Map) -> Position
[src]
fn get_owner_of_car(&self, id: CarID) -> Option<PersonID>
[src]
fn lookup_parked_car(&self, id: CarID) -> Option<&ParkedCar>
[src]
fn get_all_parking_spots(&self) -> (Vec<ParkingSpot>, Vec<ParkingSpot>)
[src]
fn path_to_free_parking_spot(
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>
[src]
&self,
start: LaneID,
vehicle: &Vehicle,
target: BuildingID,
map: &Map
) -> Option<(Vec<PathStep>, ParkingSpot, Position)>