pub struct TerrainRoadTool {Show 15 fields
pub state: TerrainRoadToolState,
pub terrain: TerrainHeightMap,
pub segments: HashMap<u32, RoadSegment>,
pub intersections: HashMap<u32, Intersection>,
pub network: RoadNetwork,
pub erosion: RoadErosionState,
pub undo_stack: UndoStack,
pub city_nodes: Vec<CityNode>,
pub rng: SimpleRng,
pub next_segment_id: u32,
pub next_intersection_id: u32,
pub profiles: HashMap<RoadType, RoadProfile>,
pub elevation_profile_cache: Option<ElevationProfile>,
pub traffic_sims: HashMap<u32, TrafficFlowSim>,
pub build_pending_actions: Vec<RoadEditAction>,
}Fields§
§state: TerrainRoadToolState§terrain: TerrainHeightMap§segments: HashMap<u32, RoadSegment>§intersections: HashMap<u32, Intersection>§network: RoadNetwork§erosion: RoadErosionState§undo_stack: UndoStack§city_nodes: Vec<CityNode>§rng: SimpleRng§next_segment_id: u32§next_intersection_id: u32§profiles: HashMap<RoadType, RoadProfile>§elevation_profile_cache: Option<ElevationProfile>§traffic_sims: HashMap<u32, TrafficFlowSim>§build_pending_actions: Vec<RoadEditAction>Implementations§
Source§impl TerrainRoadTool
impl TerrainRoadTool
pub fn new(terrain_width: usize, terrain_height: usize, cell_size: f32) -> Self
pub fn with_sample_terrain(seed: u64) -> Self
pub fn add_road_segment( &mut self, from: Vec3, to: Vec3, road_type: RoadType, ) -> u32
pub fn remove_road_segment(&mut self, id: u32) -> bool
pub fn segment_count(&self) -> usize
pub fn step_traffic_sims(&mut self, dt: f32)
pub fn add_road_point(&mut self, _pt: Vec3)
pub fn add_city_node( &mut self, _pos: Vec3, _node_type: RoadNodeType, _population: u32, )
pub fn begin_road_placement(&mut self, _road_type: RoadType)
pub fn finish_road_placement(&mut self)
pub fn generate_procedural_roads(&mut self)
pub fn place_roundabout(&mut self, _center: Vec3, _arms: Vec<Vec3>)
pub fn run_erosion_simulation(&mut self, _steps: usize)
pub fn step_traffic_simulation(&mut self, _dt: f32)
pub fn statistics(&self) -> RoadNetworkStats
pub fn serialize(&self) -> Vec<u8> ⓘ
pub fn deserialize(&mut self, _data: &[u8])
Auto Trait Implementations§
impl Freeze for TerrainRoadTool
impl RefUnwindSafe for TerrainRoadTool
impl Send for TerrainRoadTool
impl Sync for TerrainRoadTool
impl Unpin for TerrainRoadTool
impl UnsafeUnpin for TerrainRoadTool
impl UnwindSafe for TerrainRoadTool
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.