mirror of
https://github.com/a-b-street/abstreet.git
synced 2024-12-25 07:25:47 +03:00
deploy: fb9635e8c8
This commit is contained in:
parent
5985048e39
commit
8a919e44f0
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `draw_isochrone` fn in crate `fifteen_min`."><meta name="keywords" content="rust, rustlang, rust-lang, draw_isochrone"><title>fifteen_min::isochrone::draw_isochrone - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../fifteen_min/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>isochrone</a></p><script>window.sidebarCurrent = {name: 'draw_isochrone', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/fifteen_min/isochrone.rs.html#61-126' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>isochrone</a>::<wbr><a class="fn" href=''>draw_isochrone</a></span></h1><pre class='rust fn'>fn draw_isochrone(<br> app: &<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>, <br> time_to_reach_building: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a><<a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <a class="struct" href="../../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a>><br>) -> GeomBatch</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "fifteen_min";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/fifteen_min/isochrone.rs.html#61-126' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>isochrone</a>::<wbr><a class="fn" href=''>draw_isochrone</a></span></h1><pre class='rust fn'>fn draw_isochrone(<br> app: &SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>, <br> time_to_reach_building: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a><<a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <a class="struct" href="../../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a>><br>) -> GeomBatch</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "fifteen_min";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `App` type in crate `fifteen_min`."><meta name="keywords" content="rust, rustlang, rust-lang, App"><title>fifteen_min::App - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc type"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../fifteen_min/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Type Definition App</p><div class="sidebar-elems"><p class='location'><a href='index.html'>fifteen_min</a></p><script>window.sidebarCurrent = {name: 'App', ty: 'type', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/fifteen_min/main.rs.html#7' title='goto source code'>[src]</a></span><span class='in-band'>Type Definition <a href='index.html'>fifteen_min</a>::<wbr><a class="type" href=''>App</a></span></h1><pre class='rust typedef'>type App = <a class="struct" href="../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>;</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "fifteen_min";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/fifteen_min/main.rs.html#7' title='goto source code'>[src]</a></span><span class='in-band'>Type Definition <a href='index.html'>fifteen_min</a>::<wbr><a class="type" href=''>App</a></span></h1><pre class='rust typedef'>type App = SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>;</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "fifteen_min";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `build_panel` fn in crate `fifteen_min`."><meta name="keywords" content="rust, rustlang, rust-lang, build_panel"><title>fifteen_min::viewer::build_panel - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../fifteen_min/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>viewer</a></p><script>window.sidebarCurrent = {name: 'build_panel', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#175-221' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>viewer</a>::<wbr><a class="fn" href=''>build_panel</a></span></h1><pre class='rust fn'>fn build_panel(<br> ctx: &mut EventCtx<'_>, <br> app: &<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>, <br> start: &<a class="struct" href="../../map_model/objects/building/struct.Building.html" title="struct map_model::objects::building::Building">Building</a>, <br> isochrone: &<a class="struct" href="../../fifteen_min/isochrone/struct.Isochrone.html" title="struct fifteen_min::isochrone::Isochrone">Isochrone</a><br>) -> Panel</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "fifteen_min";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#175-221' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>viewer</a>::<wbr><a class="fn" href=''>build_panel</a></span></h1><pre class='rust fn'>fn build_panel(<br> ctx: &mut EventCtx<'_>, <br> app: &SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>, <br> start: &<a class="struct" href="../../map_model/objects/building/struct.Building.html" title="struct map_model::objects::building::Building">Building</a>, <br> isochrone: &<a class="struct" href="../../fifteen_min/isochrone/struct.Isochrone.html" title="struct fifteen_min::isochrone::Isochrone">Isochrone</a><br>) -> Panel</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "fifteen_min";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
File diff suppressed because one or more lines are too long
@ -5,12 +5,12 @@
|
||||
panel: Panel,
|
||||
highlight_start: Drawable,
|
||||
isochrone: <a class="struct" href="../../fifteen_min/isochrone/struct.Isochrone.html" title="struct fifteen_min::isochrone::Isochrone">Isochrone</a>,
|
||||
hovering_on_bldg: <a class="struct" href="../../map_gui/simple_app/struct.Cached.html" title="struct map_gui::simple_app::Cached">Cached</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.f64.html">f64</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="struct" href="../../fifteen_min/viewer/struct.HoverOnBuilding.html" title="struct fifteen_min::viewer::HoverOnBuilding">HoverOnBuilding</a>>,
|
||||
hovering_on_bldg: Cached<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.f64.html">f64</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="struct" href="../../fifteen_min/viewer/struct.HoverOnBuilding.html" title="struct fifteen_min::viewer::HoverOnBuilding">HoverOnBuilding</a>>,
|
||||
}</pre></div><div class='docblock'><p>This is the UI state for exploring the isochrone/walkshed from a single building.</p>
|
||||
</div><h2 id='fields' class='fields small-section-header'>
|
||||
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.panel" class="structfield small-section-header"><a href="#structfield.panel" class="anchor field"></a><code>panel: Panel</code></span><span id="structfield.highlight_start" class="structfield small-section-header"><a href="#structfield.highlight_start" class="anchor field"></a><code>highlight_start: Drawable</code></span><span id="structfield.isochrone" class="structfield small-section-header"><a href="#structfield.isochrone" class="anchor field"></a><code>isochrone: <a class="struct" href="../../fifteen_min/isochrone/struct.Isochrone.html" title="struct fifteen_min::isochrone::Isochrone">Isochrone</a></code></span><span id="structfield.hovering_on_bldg" class="structfield small-section-header"><a href="#structfield.hovering_on_bldg" class="anchor field"></a><code>hovering_on_bldg: <a class="struct" href="../../map_gui/simple_app/struct.Cached.html" title="struct map_gui::simple_app::Cached">Cached</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.f64.html">f64</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="struct" href="../../fifteen_min/viewer/struct.HoverOnBuilding.html" title="struct fifteen_min::viewer::HoverOnBuilding">HoverOnBuilding</a>></code></span><h2 id='implementations' class='small-section-header'>Implementations<a href='#implementations' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#28-50' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.random_start' class="method"><code>pub fn <a href='#method.random_start' class='fnname'>random_start</a>(<br> ctx: &mut EventCtx<'_>, <br> app: &<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>>></code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#30-34' title='goto source code'>[src]</a></h4><div class='docblock'><p>Start with a random building</p>
|
||||
</div><h4 id='method.new' class="method"><code>pub fn <a href='#method.new' class='fnname'>new</a>(<br> ctx: &mut EventCtx<'_>, <br> app: &<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>, <br> start: <a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>>></code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#36-49' title='goto source code'>[src]</a></h4></div><h2 id='trait-implementations' class='small-section-header'>Trait Implementations<a href='#trait-implementations' class='anchor'></a></h2><div id='trait-implementations-list'><h3 id='impl-State%3CSimpleApp%3C()%3E%3E' class='impl'><code class='in-band'>impl State<<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>> for <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl-State%3CSimpleApp%3C()%3E%3E' class='anchor'></a><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#52-164' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.event' class="method hidden"><code>fn <a href='#method.event' class='fnname'>event</a>(<br> &mut self, <br> ctx: &mut EventCtx<'_>, <br> app: &mut <a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>><br>) -> Transition<<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>></code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#53-153' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Respond to a UI event, such as input or time passing.</p>
|
||||
</div><h4 id='method.draw' class="method hidden"><code>fn <a href='#method.draw' class='fnname'>draw</a>(&self, g: &mut GfxCtx<'_>, _: &<a class="struct" href="../../map_gui/simple_app/struct.SimpleApp.html" title="struct map_gui::simple_app::SimpleApp">SimpleApp</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>)</code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#155-163' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Draw</p>
|
||||
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.panel" class="structfield small-section-header"><a href="#structfield.panel" class="anchor field"></a><code>panel: Panel</code></span><span id="structfield.highlight_start" class="structfield small-section-header"><a href="#structfield.highlight_start" class="anchor field"></a><code>highlight_start: Drawable</code></span><span id="structfield.isochrone" class="structfield small-section-header"><a href="#structfield.isochrone" class="anchor field"></a><code>isochrone: <a class="struct" href="../../fifteen_min/isochrone/struct.Isochrone.html" title="struct fifteen_min::isochrone::Isochrone">Isochrone</a></code></span><span id="structfield.hovering_on_bldg" class="structfield small-section-header"><a href="#structfield.hovering_on_bldg" class="anchor field"></a><code>hovering_on_bldg: Cached<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.f64.html">f64</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="struct" href="../../fifteen_min/viewer/struct.HoverOnBuilding.html" title="struct fifteen_min::viewer::HoverOnBuilding">HoverOnBuilding</a>></code></span><h2 id='implementations' class='small-section-header'>Implementations<a href='#implementations' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#28-50' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.random_start' class="method"><code>pub fn <a href='#method.random_start' class='fnname'>random_start</a>(<br> ctx: &mut EventCtx<'_>, <br> app: &SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>>></code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#30-34' title='goto source code'>[src]</a></h4><div class='docblock'><p>Start with a random building</p>
|
||||
</div><h4 id='method.new' class="method"><code>pub fn <a href='#method.new' class='fnname'>new</a>(<br> ctx: &mut EventCtx<'_>, <br> app: &SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>, <br> start: <a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>>></code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#36-49' title='goto source code'>[src]</a></h4></div><h2 id='trait-implementations' class='small-section-header'>Trait Implementations<a href='#trait-implementations' class='anchor'></a></h2><div id='trait-implementations-list'><h3 id='impl-State%3CSimpleApp%3C()%3E%3E' class='impl'><code class='in-band'>impl State<SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>> for <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl-State%3CSimpleApp%3C()%3E%3E' class='anchor'></a><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#52-164' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.event' class="method hidden"><code>fn <a href='#method.event' class='fnname'>event</a>(<br> &mut self, <br> ctx: &mut EventCtx<'_>, <br> app: &mut SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>><br>) -> Transition<SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>></code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#53-153' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Respond to a UI event, such as input or time passing.</p>
|
||||
</div><h4 id='method.draw' class="method hidden"><code>fn <a href='#method.draw' class='fnname'>draw</a>(&self, g: &mut GfxCtx<'_>, _: &SimpleApp<<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>)</code><a class='srclink' href='../../src/fifteen_min/viewer.rs.html#155-163' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Draw</p>
|
||||
</div><h4 id='method.draw_baselayer' class="method hidden"><code>fn <a href='#method.draw_baselayer' class='fnname'>draw_baselayer</a>(&self) -> DrawBaselayer</code></h4><div class='docblock hidden'><p>Specifies what to draw before draw()</p>
|
||||
</div><h4 id='method.on_destroy' class="method hidden"><code>fn <a href='#method.on_destroy' class='fnname'>on_destroy</a>(&mut self, &mut EventCtx<'_>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>A)</code></h4><div class='docblock hidden'><p>Before this state is popped or replaced, call this.</p>
|
||||
</div></div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl-RefUnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Send' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl !<a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../../fifteen_min/viewer/struct.Viewer.html" title="struct fifteen_min::viewer::Viewer">Viewer</a></code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div></div><h2 id='blanket-implementations' class='small-section-header'>Blanket Implementations<a href='#blanket-implementations' class='anchor'></a></h2><div id='blanket-implementations-list'><h3 id='impl-Any' class='impl'><code class='in-band'>impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href='#impl-Any' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#108-112' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.type_id' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id' class='fnname'>type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#109-111' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `BUILT_TIME_UTC` constant in crate `game`."><meta name="keywords" content="rust, rustlang, rust-lang, BUILT_TIME_UTC"><title>game::pregame::built_info::BUILT_TIME_UTC - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled ><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc constant"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../../game/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../../index.html'>game</a>::<wbr><a href='../index.html'>pregame</a>::<wbr><a href='index.html'>built_info</a></p><script>window.sidebarCurrent = {name: 'BUILT_TIME_UTC', ty: 'constant', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../../src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-f38555f90777146b/out/built.rs.html#49' title='goto source code'>[src]</a></span><span class='in-band'>Constant <a href='../../index.html'>game</a>::<wbr><a href='../index.html'>pregame</a>::<wbr><a href='index.html'>built_info</a>::<wbr><a class="constant" href=''>BUILT_TIME_UTC</a></span></h1><pre class='rust const'>pub const BUILT_TIME_UTC: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a> = "Thu, 10 Dec 2020 20:44:40 +0000";</pre><div class='docblock'><p>The built-time in RFC2822, UTC</p>
|
||||
<a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../../src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-f38555f90777146b/out/built.rs.html#49' title='goto source code'>[src]</a></span><span class='in-band'>Constant <a href='../../index.html'>game</a>::<wbr><a href='../index.html'>pregame</a>::<wbr><a href='index.html'>built_info</a>::<wbr><a class="constant" href=''>BUILT_TIME_UTC</a></span></h1><pre class='rust const'>pub const BUILT_TIME_UTC: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a> = "Thu, 10 Dec 2020 23:05:55 +0000";</pre><div class='docblock'><p>The built-time in RFC2822, UTC</p>
|
||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../";window.currentCrate = "game";</script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>
|
@ -7,6 +7,6 @@ implementors["map_gui"] = [{"text":"impl Copy for ColorSchemeChoice","synthetic"
|
||||
implementors["map_model"] = [{"text":"impl Copy for DrivingSide","synthetic":false,"types":[]},{"text":"impl Copy for AreaID","synthetic":false,"types":[]},{"text":"impl Copy for AreaType","synthetic":false,"types":[]},{"text":"impl Copy for BuildingID","synthetic":false,"types":[]},{"text":"impl Copy for BusStopID","synthetic":false,"types":[]},{"text":"impl Copy for BusRouteID","synthetic":false,"types":[]},{"text":"impl Copy for IntersectionID","synthetic":false,"types":[]},{"text":"impl Copy for IntersectionType","synthetic":false,"types":[]},{"text":"impl Copy for LaneID","synthetic":false,"types":[]},{"text":"impl Copy for LaneType","synthetic":false,"types":[]},{"text":"impl Copy for ParkingLotID","synthetic":false,"types":[]},{"text":"impl Copy for RoadID","synthetic":false,"types":[]},{"text":"impl Copy for Direction","synthetic":false,"types":[]},{"text":"impl Copy for DirectedRoadID","synthetic":false,"types":[]},{"text":"impl Copy for TurnID","synthetic":false,"types":[]},{"text":"impl Copy for TurnType","synthetic":false,"types":[]},{"text":"impl Copy for TurnPriority","synthetic":false,"types":[]},{"text":"impl Copy for MovementID","synthetic":false,"types":[]},{"text":"impl Copy for CompressedMovementID","synthetic":false,"types":[]},{"text":"impl Copy for RoadRank","synthetic":false,"types":[]},{"text":"impl Copy for NodeID","synthetic":false,"types":[]},{"text":"impl Copy for WayID","synthetic":false,"types":[]},{"text":"impl Copy for RelationID","synthetic":false,"types":[]},{"text":"impl Copy for OsmID","synthetic":false,"types":[]},{"text":"impl Copy for Node","synthetic":false,"types":[]},{"text":"impl Copy for WalkingNode","synthetic":false,"types":[]},{"text":"impl Copy for PathStep","synthetic":false,"types":[]},{"text":"impl Copy for PathConstraints","synthetic":false,"types":[]},{"text":"impl Copy for OriginalRoad","synthetic":false,"types":[]},{"text":"impl Copy for RestrictionType","synthetic":false,"types":[]},{"text":"impl Copy for TurnRestriction","synthetic":false,"types":[]},{"text":"impl Copy for Position","synthetic":false,"types":[]},{"text":"impl Copy for Traversable","synthetic":false,"types":[]}];
|
||||
implementors["parking_mapper"] = [{"text":"impl Copy for Show","synthetic":false,"types":[]}];
|
||||
implementors["popdat"] = [{"text":"impl Copy for Activity","synthetic":false,"types":[]}];
|
||||
implementors["sim"] = [{"text":"impl Copy for TripPhaseType","synthetic":false,"types":[]},{"text":"impl Copy for TripPurpose","synthetic":false,"types":[]},{"text":"impl Copy for AnyTime","synthetic":false,"types":[]},{"text":"impl Copy for CarStatus","synthetic":false,"types":[]},{"text":"impl Copy for TripMode","synthetic":false,"types":[]},{"text":"impl Copy for CarID","synthetic":false,"types":[]},{"text":"impl Copy for PedestrianID","synthetic":false,"types":[]},{"text":"impl Copy for AgentID","synthetic":false,"types":[]},{"text":"impl Copy for AgentType","synthetic":false,"types":[]},{"text":"impl Copy for TripID","synthetic":false,"types":[]},{"text":"impl Copy for PersonID","synthetic":false,"types":[]},{"text":"impl Copy for OrigPersonID","synthetic":false,"types":[]},{"text":"impl Copy for VehicleType","synthetic":false,"types":[]},{"text":"impl Copy for ParkingSpot","synthetic":false,"types":[]},{"text":"impl Copy for TimeInterval","synthetic":false,"types":[]},{"text":"impl Copy for DistanceInterval","synthetic":false,"types":[]}];
|
||||
implementors["sim"] = [{"text":"impl Copy for TripPhaseType","synthetic":false,"types":[]},{"text":"impl Copy for TripPurpose","synthetic":false,"types":[]},{"text":"impl Copy for TripEndpoint","synthetic":false,"types":[]},{"text":"impl Copy for AnyTime","synthetic":false,"types":[]},{"text":"impl Copy for CarStatus","synthetic":false,"types":[]},{"text":"impl Copy for TripMode","synthetic":false,"types":[]},{"text":"impl Copy for CarID","synthetic":false,"types":[]},{"text":"impl Copy for PedestrianID","synthetic":false,"types":[]},{"text":"impl Copy for AgentID","synthetic":false,"types":[]},{"text":"impl Copy for AgentType","synthetic":false,"types":[]},{"text":"impl Copy for TripID","synthetic":false,"types":[]},{"text":"impl Copy for PersonID","synthetic":false,"types":[]},{"text":"impl Copy for OrigPersonID","synthetic":false,"types":[]},{"text":"impl Copy for VehicleType","synthetic":false,"types":[]},{"text":"impl Copy for ParkingSpot","synthetic":false,"types":[]},{"text":"impl Copy for TimeInterval","synthetic":false,"types":[]},{"text":"impl Copy for DistanceInterval","synthetic":false,"types":[]}];
|
||||
implementors["widgetry"] = [{"text":"impl Copy for HorizontalAlignment","synthetic":false,"types":[]},{"text":"impl Copy for VerticalAlignment","synthetic":false,"types":[]},{"text":"impl Copy for Color","synthetic":false,"types":[]},{"text":"impl Copy for Texture","synthetic":false,"types":[]},{"text":"impl Copy for Event","synthetic":false,"types":[]},{"text":"impl Copy for Key","synthetic":false,"types":[]},{"text":"impl Copy for ScreenPt","synthetic":false,"types":[]},{"text":"impl Copy for ScreenDims","synthetic":false,"types":[]},{"text":"impl Copy for Font","synthetic":false,"types":[]}];
|
||||
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `generate_scenario` fn in crate `popdat`."><meta name="keywords" content="rust, rustlang, rust-lang, generate_scenario"><title>popdat::generate_scenario - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../popdat/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='index.html'>popdat</a></p><script>window.sidebarCurrent = {name: 'generate_scenario', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/popdat/lib.rs.html#97-117' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>popdat</a>::<wbr><a class="fn" href=''>generate_scenario</a></span></h1><pre class='rust fn'>pub fn generate_scenario(<br> scenario_name: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> config: <a class="struct" href="../popdat/struct.Config.html" title="struct popdat::Config">Config</a>, <br> map: &<a class="struct" href="../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../sim/make/scenario/struct.Scenario.html" title="struct sim::make::scenario::Scenario">Scenario</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></pre><div class='docblock'><p>Wires together all the pieces, so you can just hand this any map, and it'll automatically find
|
||||
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/popdat/lib.rs.html#98-118' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>popdat</a>::<wbr><a class="fn" href=''>generate_scenario</a></span></h1><pre class='rust fn'>pub fn generate_scenario(<br> scenario_name: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> config: <a class="struct" href="../popdat/struct.Config.html" title="struct popdat::Config">Config</a>, <br> map: &<a class="struct" href="../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../sim/make/scenario/struct.Scenario.html" title="struct sim::make::scenario::Scenario">Scenario</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></pre><div class='docblock'><p>Wires together all the pieces, so you can just hand this any map, and it'll automatically find
|
||||
appropriate census data, and use it to produce a Scenario.</p>
|
||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "popdat";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `popdat` crate."><meta name="keywords" content="rust, rustlang, rust-lang, popdat"><title>popdat - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../ayu.css" disabled ><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../popdat/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Crate popdat</p><div class='block version'><p>Version 0.1.0</p></div><div class="sidebar-elems"><a id='all-types' href='all.html'><p>See all popdat's items</p></a><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#functions">Functions</a></li></ul></div><p class='location'></p><script>window.sidebarCurrent = {name: 'popdat', ty: 'mod', relpath: '../'};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/popdat/lib.rs.html#1-117' title='goto source code'>[src]</a></span><span class='in-band'>Crate <a class="mod" href=''>popdat</a></span></h1><div class='docblock'><p>popdat ("population data") generates <code>Scenarios</code> given a map and some external census data.
|
||||
<a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/popdat/lib.rs.html#1-118' title='goto source code'>[src]</a></span><span class='in-band'>Crate <a class="mod" href=''>popdat</a></span></h1><div class='docblock'><p>popdat ("population data") generates <code>Scenarios</code> given a map and some external census data.
|
||||
Some of this functionality should maybe be reorganized or incorporated into the importer crate,
|
||||
but for now, it's convenient to organize it here.</p>
|
||||
<p>All of the types and methods here are tied to a single <code>Map</code>. Even if a city is chopped up into
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `find_building_for_activity` fn in crate `popdat`."><meta name="keywords" content="rust, rustlang, rust-lang, find_building_for_activity"><title>popdat::make_person::find_building_for_activity - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../popdat/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a></p><script>window.sidebarCurrent = {name: 'find_building_for_activity', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#55-89' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a>::<wbr><a class="fn" href=''>find_building_for_activity</a></span></h1><pre class='rust fn'>fn find_building_for_activity(<br> activity: <a class="enum" href="../../popdat/enum.Activity.html" title="enum popdat::Activity">Activity</a>, <br> start: <a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <br> map: &<a class="struct" href="../../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>></pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "popdat";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#68-102' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a>::<wbr><a class="fn" href=''>find_building_for_activity</a></span></h1><pre class='rust fn'>fn find_building_for_activity(<br> activity: <a class="enum" href="../../popdat/enum.Activity.html" title="enum popdat::Activity">Activity</a>, <br> start: <a class="enum" href="../../sim/make/spawner/enum.TripEndpoint.html" title="enum sim::make::spawner::TripEndpoint">TripEndpoint</a>, <br> map: &<a class="struct" href="../../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>></pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "popdat";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `make_person` fn in crate `popdat`."><meta name="keywords" content="rust, rustlang, rust-lang, make_person"><title>popdat::make_person::make_person - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../popdat/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a></p><script>window.sidebarCurrent = {name: 'make_person', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#13-53' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a>::<wbr><a class="fn" href=''>make_person</a></span></h1><pre class='rust fn'>pub fn make_person(<br> person: <a class="struct" href="../../popdat/struct.CensusPerson.html" title="struct popdat::CensusPerson">CensusPerson</a>, <br> map: &<a class="struct" href="../../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a>, <br> config: &<a class="struct" href="../../popdat/struct.Config.html" title="struct popdat::Config">Config</a><br>) -> <a class="struct" href="../../sim/make/scenario/struct.PersonSpec.html" title="struct sim::make::scenario::PersonSpec">PersonSpec</a></pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "popdat";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#13-66' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a>::<wbr><a class="fn" href=''>make_person</a></span></h1><pre class='rust fn'>pub fn make_person(<br> person: <a class="struct" href="../../popdat/struct.CensusPerson.html" title="struct popdat::CensusPerson">CensusPerson</a>, <br> map: &<a class="struct" href="../../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a>, <br> config: &<a class="struct" href="../../popdat/struct.Config.html" title="struct popdat::Config">Config</a><br>) -> <a class="struct" href="../../sim/make/scenario/struct.PersonSpec.html" title="struct sim::make::scenario::PersonSpec">PersonSpec</a></pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "popdat";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `pick_mode` fn in crate `popdat`."><meta name="keywords" content="rust, rustlang, rust-lang, pick_mode"><title>popdat::make_person::pick_mode - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../popdat/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a></p><script>window.sidebarCurrent = {name: 'pick_mode', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#92-94' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a>::<wbr><a class="fn" href=''>pick_mode</a></span></h1><pre class='rust fn'>fn pick_mode(<br> from: <a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <br> to: <a class="struct" href="../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <br> map: &<a class="struct" href="../../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a><br>) -> <a class="enum" href="../../sim/trips/enum.TripMode.html" title="enum sim::trips::TripMode">TripMode</a></pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "popdat";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#104-174' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>popdat</a>::<wbr><a href='index.html'>make_person</a>::<wbr><a class="fn" href=''>pick_mode</a></span></h1><pre class='rust fn'>fn pick_mode(<br> from: <a class="enum" href="../../sim/make/spawner/enum.TripEndpoint.html" title="enum sim::make::spawner::TripEndpoint">TripEndpoint</a>, <br> to: <a class="enum" href="../../sim/make/spawner/enum.TripEndpoint.html" title="enum sim::make::spawner::TripEndpoint">TripEndpoint</a>, <br> map: &<a class="struct" href="../../map_model/struct.Map.html" title="struct map_model::Map">Map</a>, <br> rng: &mut <a class="struct" href="https://rust-random.github.io/rand/rand_xorshift/struct.XorShiftRng.html" title="struct rand_xorshift::XorShiftRng">XorShiftRng</a>, <br> config: &<a class="struct" href="../../popdat/struct.Config.html" title="struct popdat::Config">Config</a><br>) -> <a class="enum" href="../../sim/trips/enum.TripMode.html" title="enum sim::trips::TripMode">TripMode</a></pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "popdat";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `make_person` mod in crate `popdat`."><meta name="keywords" content="rust, rustlang, rust-lang, make_person"><title>popdat::make_person - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
|
||||
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../popdat/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Module make_person</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../index.html'>popdat</a></p><script>window.sidebarCurrent = {name: 'make_person', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><span class="help-button">?</span>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#1-94' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>popdat</a>::<wbr><a class="mod" href=''>make_person</a></span></h1><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/popdat/make_person.rs.html#1-174' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>popdat</a>::<wbr><a class="mod" href=''>make_person</a></span></h1><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
|
||||
<table><tr class='module-item'><td><a class="fn" href="fn.find_building_for_activity.html" title='popdat::make_person::find_building_for_activity fn'>find_building_for_activity</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.make_person.html" title='popdat::make_person::make_person fn'>make_person</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.pick_mode.html" title='popdat::make_person::pick_mode fn'>pick_mode</a></td><td class='docblock-short'></td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "popdat";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -114,7 +114,7 @@
|
||||
<span class="doccomment">/// The output of `rustdoc -V`</span>
|
||||
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">RUSTDOC_VERSION</span>: <span class="kw-2">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"rustdoc 1.48.0 (7eac88abb 2020-11-16)"</span>;
|
||||
<span class="doccomment">/// The built-time in RFC2822, UTC</span>
|
||||
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">BUILT_TIME_UTC</span>: <span class="kw-2">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"Thu, 10 Dec 2020 20:44:40 +0000"</span>;
|
||||
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">BUILT_TIME_UTC</span>: <span class="kw-2">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"Thu, 10 Dec 2020 23:05:55 +0000"</span>;
|
||||
<span class="doccomment">/// The target architecture, given by `cfg!(target_arch)`.</span>
|
||||
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">CFG_TARGET_ARCH</span>: <span class="kw-2">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"x86_64"</span>;
|
||||
<span class="doccomment">/// The endianness, given by `cfg!(target_endian)`.</span>
|
||||
|
@ -118,6 +118,7 @@
|
||||
<span id="115">115</span>
|
||||
<span id="116">116</span>
|
||||
<span id="117">117</span>
|
||||
<span id="118">118</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! popdat ("population data") generates `Scenarios` given a map and some external census data.</span>
|
||||
<span class="doccomment">//! Some of this functionality should maybe be reorganized or incorporated into the importer crate,</span>
|
||||
@ -144,7 +145,7 @@
|
||||
<span class="kw">use</span> <span class="ident">rand_xorshift</span>::<span class="ident">XorShiftRng</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="ident">geom</span>::<span class="ident">Polygon</span>;
|
||||
<span class="kw">use</span> <span class="ident">geom</span>::<span class="ident">Time</span>;
|
||||
<span class="kw">use</span> <span class="ident">geom</span>::{<span class="ident">Distance</span>, <span class="ident">Time</span>};
|
||||
<span class="kw">use</span> <span class="ident">map_model</span>::{<span class="ident">BuildingID</span>, <span class="ident">Map</span>};
|
||||
<span class="kw">use</span> <span class="ident">sim</span>::<span class="ident">Scenario</span>;
|
||||
|
||||
@ -201,14 +202,15 @@
|
||||
<span class="doccomment">/// Any arbitrarily chosen parameters needed should be put here, so they can be controlled from the</span>
|
||||
<span class="doccomment">/// UI or tuned for different cities.</span>
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Config</span> {
|
||||
<span class="doccomment">/// Just an example</span>
|
||||
<span class="kw">pub</span> <span class="ident">percent_drivers</span>: <span class="ident">f64</span>,
|
||||
<span class="kw">pub</span> <span class="ident">walk_for_distances_shorter_than</span>: <span class="ident">Distance</span>,
|
||||
<span class="kw">pub</span> <span class="ident">walk_or_bike_for_distances_shorter_than</span>: <span class="ident">Distance</span>,
|
||||
}
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">Config</span> {
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-</span><span class="op">></span> <span class="ident">Config</span> {
|
||||
<span class="ident">Config</span> {
|
||||
<span class="ident">percent_drivers</span>: <span class="number">0.5</span>,
|
||||
<span class="ident">walk_for_distances_shorter_than</span>: <span class="ident">Distance</span>::<span class="ident">miles</span>(<span class="number">0.5</span>),
|
||||
<span class="ident">walk_or_bike_for_distances_shorter_than</span>: <span class="ident">Distance</span>::<span class="ident">miles</span>(<span class="number">3.0</span>),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -95,19 +95,99 @@
|
||||
<span id="92"> 92</span>
|
||||
<span id="93"> 93</span>
|
||||
<span id="94"> 94</span>
|
||||
<span id="95"> 95</span>
|
||||
<span id="96"> 96</span>
|
||||
<span id="97"> 97</span>
|
||||
<span id="98"> 98</span>
|
||||
<span id="99"> 99</span>
|
||||
<span id="100">100</span>
|
||||
<span id="101">101</span>
|
||||
<span id="102">102</span>
|
||||
<span id="103">103</span>
|
||||
<span id="104">104</span>
|
||||
<span id="105">105</span>
|
||||
<span id="106">106</span>
|
||||
<span id="107">107</span>
|
||||
<span id="108">108</span>
|
||||
<span id="109">109</span>
|
||||
<span id="110">110</span>
|
||||
<span id="111">111</span>
|
||||
<span id="112">112</span>
|
||||
<span id="113">113</span>
|
||||
<span id="114">114</span>
|
||||
<span id="115">115</span>
|
||||
<span id="116">116</span>
|
||||
<span id="117">117</span>
|
||||
<span id="118">118</span>
|
||||
<span id="119">119</span>
|
||||
<span id="120">120</span>
|
||||
<span id="121">121</span>
|
||||
<span id="122">122</span>
|
||||
<span id="123">123</span>
|
||||
<span id="124">124</span>
|
||||
<span id="125">125</span>
|
||||
<span id="126">126</span>
|
||||
<span id="127">127</span>
|
||||
<span id="128">128</span>
|
||||
<span id="129">129</span>
|
||||
<span id="130">130</span>
|
||||
<span id="131">131</span>
|
||||
<span id="132">132</span>
|
||||
<span id="133">133</span>
|
||||
<span id="134">134</span>
|
||||
<span id="135">135</span>
|
||||
<span id="136">136</span>
|
||||
<span id="137">137</span>
|
||||
<span id="138">138</span>
|
||||
<span id="139">139</span>
|
||||
<span id="140">140</span>
|
||||
<span id="141">141</span>
|
||||
<span id="142">142</span>
|
||||
<span id="143">143</span>
|
||||
<span id="144">144</span>
|
||||
<span id="145">145</span>
|
||||
<span id="146">146</span>
|
||||
<span id="147">147</span>
|
||||
<span id="148">148</span>
|
||||
<span id="149">149</span>
|
||||
<span id="150">150</span>
|
||||
<span id="151">151</span>
|
||||
<span id="152">152</span>
|
||||
<span id="153">153</span>
|
||||
<span id="154">154</span>
|
||||
<span id="155">155</span>
|
||||
<span id="156">156</span>
|
||||
<span id="157">157</span>
|
||||
<span id="158">158</span>
|
||||
<span id="159">159</span>
|
||||
<span id="160">160</span>
|
||||
<span id="161">161</span>
|
||||
<span id="162">162</span>
|
||||
<span id="163">163</span>
|
||||
<span id="164">164</span>
|
||||
<span id="165">165</span>
|
||||
<span id="166">166</span>
|
||||
<span id="167">167</span>
|
||||
<span id="168">168</span>
|
||||
<span id="169">169</span>
|
||||
<span id="170">170</span>
|
||||
<span id="171">171</span>
|
||||
<span id="172">172</span>
|
||||
<span id="173">173</span>
|
||||
<span id="174">174</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashSet</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="ident">rand</span>::<span class="ident">seq</span>::<span class="ident">SliceRandom</span>;
|
||||
<span class="kw">use</span> <span class="ident">rand</span>::<span class="ident">Rng</span>;
|
||||
<span class="kw">use</span> <span class="ident">rand_xorshift</span>::<span class="ident">XorShiftRng</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="ident">map_model</span>::{<span class="ident">BuildingID</span>, <span class="ident">Map</span>};
|
||||
<span class="kw">use</span> <span class="ident">geom</span>::<span class="ident">Distance</span>;
|
||||
<span class="kw">use</span> <span class="ident">map_model</span>::{<span class="ident">BuildingID</span>, <span class="ident">IntersectionID</span>, <span class="ident">Map</span>, <span class="ident">PathConstraints</span>, <span class="ident">PathRequest</span>};
|
||||
<span class="kw">use</span> <span class="ident">sim</span>::{<span class="ident">IndividTrip</span>, <span class="ident">PersonSpec</span>, <span class="ident">TripEndpoint</span>, <span class="ident">TripMode</span>, <span class="ident">TripPurpose</span>};
|
||||
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::{<span class="ident">Activity</span>, <span class="ident">CensusPerson</span>, <span class="ident">Config</span>};
|
||||
|
||||
<span class="comment">// sim/src/make/activity_model.rs does parts of this, but in a simplified way. It might be a good</span>
|
||||
<span class="comment">// starting point though.</span>
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">make_person</span>(
|
||||
<span class="ident">person</span>: <span class="ident">CensusPerson</span>,
|
||||
<span class="ident">map</span>: <span class="kw-2">&</span><span class="ident">Map</span>,
|
||||
@ -122,37 +202,50 @@
|
||||
<span class="ident">trips</span>: <span class="ident">Vec</span>::<span class="ident">new</span>(),
|
||||
};
|
||||
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">current_location</span> <span class="op">=</span> <span class="ident">person</span>.<span class="ident">home</span>;
|
||||
<span class="kw">for</span> (<span class="ident">departure_time</span>, <span class="ident">activity</span>) <span class="kw">in</span> <span class="ident">schedule</span>.<span class="ident">activities</span> {
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">destination</span>) <span class="op">=</span> <span class="ident">find_building_for_activity</span>(<span class="ident">activity</span>, <span class="ident">current_location</span>, <span class="ident">map</span>, <span class="ident">rng</span>)
|
||||
{
|
||||
<span class="kw">let</span> <span class="ident">mode</span> <span class="op">=</span> <span class="ident">pick_mode</span>(<span class="ident">current_location</span>, <span class="ident">destination</span>, <span class="ident">map</span>, <span class="ident">rng</span>);
|
||||
<span class="ident">output</span>.<span class="ident">trips</span>.<span class="ident">push</span>(<span class="ident">IndividTrip</span>::<span class="ident">new</span>(
|
||||
<span class="ident">departure_time</span>,
|
||||
<span class="comment">// TODO This field isn't that important; later we could map Activity to a</span>
|
||||
<span class="comment">// TripPurpose better.</span>
|
||||
<span class="ident">TripPurpose</span>::<span class="ident">Shopping</span>,
|
||||
<span class="ident">TripEndpoint</span>::<span class="ident">Bldg</span>(<span class="ident">destination</span>),
|
||||
<span class="ident">mode</span>,
|
||||
));
|
||||
} <span class="kw">else</span> {
|
||||
<span class="macro">warn</span><span class="macro">!</span>(
|
||||
<span class="string">"No buildings satisfy activity {:?}. Skipping a step in the schedule"</span>,
|
||||
<span class="ident">activity</span>
|
||||
);
|
||||
}
|
||||
}
|
||||
<span class="comment">// Only consider two-way intersections, so the agent can return the same way</span>
|
||||
<span class="comment">// they came.</span>
|
||||
<span class="comment">// TODO: instead, if it's not a two-way border, we should find an intersection</span>
|
||||
<span class="comment">// an incoming border "near" the outgoing border, to allow a broader set of</span>
|
||||
<span class="comment">// realistic options.</span>
|
||||
<span class="comment">// TODO: prefer larger thoroughfares to better reflect reality.</span>
|
||||
<span class="kw">let</span> <span class="ident">commuter_borders</span>: <span class="ident">Vec</span><span class="op"><</span><span class="ident">IntersectionID</span><span class="op">></span> <span class="op">=</span> <span class="ident">map</span>
|
||||
.<span class="ident">all_outgoing_borders</span>()
|
||||
.<span class="ident">into_iter</span>()
|
||||
.<span class="ident">filter</span>(<span class="op">|</span><span class="ident">b</span><span class="op">|</span> <span class="ident">b</span>.<span class="ident">is_incoming_border</span>())
|
||||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">b</span><span class="op">|</span> <span class="ident">b</span>.<span class="ident">id</span>)
|
||||
.<span class="ident">collect</span>();
|
||||
<span class="comment">// TODO Where should we validate that at least one border exists? Probably in</span>
|
||||
<span class="comment">// generate_scenario, at minimum.</span>
|
||||
|
||||
<span class="comment">// TODO For each activity, we have to pick a specific building to satisfy that activity.</span>
|
||||
<span class="comment">// map_gui/src/tools/mod.rs has amenity_type, which is an incomplete mapping from different</span>
|
||||
<span class="comment">// OpenStreetMap tags to types of businesses. Something like that could be helpful here.</span>
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">current_location</span> <span class="op">=</span> <span class="ident">TripEndpoint</span>::<span class="ident">Bldg</span>(<span class="ident">person</span>.<span class="ident">home</span>);
|
||||
<span class="kw">for</span> (<span class="ident">departure_time</span>, <span class="ident">activity</span>) <span class="kw">in</span> <span class="ident">schedule</span>.<span class="ident">activities</span> {
|
||||
<span class="comment">// TODO This field isn't that important; later we could map Activity to a TripPurpose</span>
|
||||
<span class="comment">// better.</span>
|
||||
<span class="kw">let</span> <span class="ident">purpose</span> <span class="op">=</span> <span class="ident">TripPurpose</span>::<span class="ident">Shopping</span>;
|
||||
|
||||
<span class="kw">let</span> <span class="ident">goto</span> <span class="op">=</span> <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">destination</span>) <span class="op">=</span>
|
||||
<span class="ident">find_building_for_activity</span>(<span class="ident">activity</span>, <span class="ident">current_location</span>, <span class="ident">map</span>, <span class="ident">rng</span>)
|
||||
{
|
||||
<span class="ident">TripEndpoint</span>::<span class="ident">Bldg</span>(<span class="ident">destination</span>)
|
||||
} <span class="kw">else</span> {
|
||||
<span class="comment">// No buildings satisfy the activity. Just go somewhere off-map.</span>
|
||||
<span class="ident">TripEndpoint</span>::<span class="ident">Border</span>(<span class="kw-2">*</span><span class="ident">commuter_borders</span>.<span class="ident">choose</span>(<span class="ident">rng</span>).<span class="ident">unwrap</span>())
|
||||
};
|
||||
|
||||
<span class="kw">let</span> <span class="ident">mode</span> <span class="op">=</span> <span class="ident">pick_mode</span>(<span class="ident">current_location</span>, <span class="ident">goto</span>, <span class="ident">map</span>, <span class="ident">rng</span>, <span class="ident">config</span>);
|
||||
<span class="ident">output</span>
|
||||
.<span class="ident">trips</span>
|
||||
.<span class="ident">push</span>(<span class="ident">IndividTrip</span>::<span class="ident">new</span>(<span class="ident">departure_time</span>, <span class="ident">purpose</span>, <span class="ident">goto</span>, <span class="ident">mode</span>));
|
||||
|
||||
<span class="ident">current_location</span> <span class="op">=</span> <span class="ident">goto</span>;
|
||||
}
|
||||
|
||||
<span class="ident">output</span>
|
||||
}
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">find_building_for_activity</span>(
|
||||
<span class="ident">activity</span>: <span class="ident">Activity</span>,
|
||||
<span class="ident">start</span>: <span class="ident">BuildingID</span>,
|
||||
<span class="ident">start</span>: <span class="ident">TripEndpoint</span>,
|
||||
<span class="ident">map</span>: <span class="kw-2">&</span><span class="ident">Map</span>,
|
||||
<span class="ident">rng</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">XorShiftRng</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">BuildingID</span><span class="op">></span> {
|
||||
@ -182,12 +275,79 @@
|
||||
<span class="comment">// pick the closest choice, or even better, randomize, but weight based on the cost of getting</span>
|
||||
<span class="comment">// there. map.pathfind() may be helpful.</span>
|
||||
|
||||
<span class="comment">// For no, just pick the first choice arbitrarily</span>
|
||||
<span class="comment">// For now, just pick the first choice arbitrarily</span>
|
||||
<span class="ident">candidates</span>.<span class="ident">get</span>(<span class="number">0</span>).<span class="ident">cloned</span>()
|
||||
}
|
||||
|
||||
<span class="comment">// TODO</span>
|
||||
<span class="kw">fn</span> <span class="ident">pick_mode</span>(<span class="ident">from</span>: <span class="ident">BuildingID</span>, <span class="ident">to</span>: <span class="ident">BuildingID</span>, <span class="ident">map</span>: <span class="kw-2">&</span><span class="ident">Map</span>, <span class="ident">rng</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">XorShiftRng</span>) <span class="op">-</span><span class="op">></span> <span class="ident">TripMode</span> {
|
||||
<span class="kw">fn</span> <span class="ident">pick_mode</span>(
|
||||
<span class="ident">from</span>: <span class="ident">TripEndpoint</span>,
|
||||
<span class="ident">to</span>: <span class="ident">TripEndpoint</span>,
|
||||
<span class="ident">map</span>: <span class="kw-2">&</span><span class="ident">Map</span>,
|
||||
<span class="ident">rng</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">XorShiftRng</span>,
|
||||
<span class="ident">config</span>: <span class="kw-2">&</span><span class="ident">Config</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="ident">TripMode</span> {
|
||||
<span class="kw">let</span> (<span class="ident">b1</span>, <span class="ident">b2</span>) <span class="op">=</span> <span class="kw">match</span> (<span class="ident">from</span>, <span class="ident">to</span>) {
|
||||
(<span class="ident">TripEndpoint</span>::<span class="ident">Bldg</span>(<span class="ident">b1</span>), <span class="ident">TripEndpoint</span>::<span class="ident">Bldg</span>(<span class="ident">b2</span>)) <span class="op">=</span><span class="op">></span> (<span class="ident">b1</span>, <span class="ident">b2</span>),
|
||||
<span class="comment">// TODO Always drive when going on or off-map?</span>
|
||||
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> {
|
||||
<span class="kw">return</span> <span class="ident">TripMode</span>::<span class="ident">Drive</span>;
|
||||
}
|
||||
};
|
||||
|
||||
<span class="comment">// Decide mode based on walking distance</span>
|
||||
<span class="kw">let</span> <span class="ident">distance</span> <span class="op">=</span> <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">path</span>) <span class="op">=</span>
|
||||
<span class="ident">PathRequest</span>::<span class="ident">between_buildings</span>(<span class="ident">map</span>, <span class="ident">b1</span>, <span class="ident">b2</span>, <span class="ident">PathConstraints</span>::<span class="ident">Pedestrian</span>)
|
||||
.<span class="ident">and_then</span>(<span class="op">|</span><span class="ident">req</span><span class="op">|</span> <span class="ident">map</span>.<span class="ident">pathfind</span>(<span class="ident">req</span>))
|
||||
{
|
||||
<span class="ident">path</span>.<span class="ident">total_length</span>()
|
||||
} <span class="kw">else</span> {
|
||||
<span class="comment">// If the buildings aren't connected, there was probably a bug importing the map. Just</span>
|
||||
<span class="comment">// fallback to driving. If the trip can't be started in the simulation, it'll show up as</span>
|
||||
<span class="comment">// cancelled with more details about the problem.</span>
|
||||
<span class="kw">return</span> <span class="ident">TripMode</span>::<span class="ident">Drive</span>;
|
||||
};
|
||||
|
||||
<span class="comment">// TODO If either endpoint is in an access-restricted zone (like a living street), then</span>
|
||||
<span class="comment">// probably don't drive there. Actually, it depends on the specific tagging; access=no in the</span>
|
||||
<span class="comment">// US usually means a gated community.</span>
|
||||
|
||||
<span class="comment">// TODO Make this probabilistic</span>
|
||||
<span class="comment">// for example probability of walking currently has massive differences</span>
|
||||
<span class="comment">// at thresholds, it would be nicer to change this gradually</span>
|
||||
<span class="comment">// TODO - do not select based on distance but select one that is fastest/best in the</span>
|
||||
<span class="comment">// given situation excellent bus connection / plenty of parking /</span>
|
||||
<span class="comment">// cycleways / suitable rail connection all strongly influence</span>
|
||||
<span class="comment">// selected mode of transport, distance is not the sole influence</span>
|
||||
<span class="comment">// in some cities there may case where driving is only possible method</span>
|
||||
<span class="comment">// to get somewhere, even at a short distance</span>
|
||||
|
||||
<span class="comment">// Always walk for really short trips</span>
|
||||
<span class="kw">if</span> <span class="ident">distance</span> <span class="op"><</span> <span class="ident">config</span>.<span class="ident">walk_for_distances_shorter_than</span> {
|
||||
<span class="kw">return</span> <span class="ident">TripMode</span>::<span class="ident">Walk</span>;
|
||||
}
|
||||
|
||||
<span class="comment">// Sometimes bike or walk for moderate trips</span>
|
||||
<span class="kw">if</span> <span class="ident">distance</span> <span class="op"><</span> <span class="ident">config</span>.<span class="ident">walk_or_bike_for_distances_shorter_than</span> {
|
||||
<span class="comment">// TODO We could move all of these params to Config, but I'm not sure if the overall flow</span>
|
||||
<span class="comment">// of logic in this functon is what we want yet.</span>
|
||||
<span class="kw">if</span> <span class="ident">rng</span>.<span class="ident">gen_bool</span>(<span class="number">0.15</span>) {
|
||||
<span class="kw">return</span> <span class="ident">TripMode</span>::<span class="ident">Bike</span>;
|
||||
}
|
||||
<span class="kw">if</span> <span class="ident">rng</span>.<span class="ident">gen_bool</span>(<span class="number">0.05</span>) {
|
||||
<span class="kw">return</span> <span class="ident">TripMode</span>::<span class="ident">Walk</span>;
|
||||
}
|
||||
}
|
||||
|
||||
<span class="comment">// For longer trips, maybe bike for dedicated cyclists</span>
|
||||
<span class="kw">if</span> <span class="ident">rng</span>.<span class="ident">gen_bool</span>(<span class="number">0.005</span>) {
|
||||
<span class="kw">return</span> <span class="ident">TripMode</span>::<span class="ident">Bike</span>;
|
||||
}
|
||||
<span class="comment">// Try transit if available, or fallback to walking</span>
|
||||
<span class="kw">if</span> <span class="ident">rng</span>.<span class="ident">gen_bool</span>(<span class="number">0.3</span>) {
|
||||
<span class="kw">return</span> <span class="ident">TripMode</span>::<span class="ident">Transit</span>;
|
||||
}
|
||||
|
||||
<span class="comment">// Most of the time, just drive</span>
|
||||
<span class="ident">TripMode</span>::<span class="ident">Drive</span>
|
||||
}
|
||||
</pre></div>
|
||||
|
@ -697,7 +697,7 @@
|
||||
}
|
||||
|
||||
<span class="doccomment">/// Specifies where a trip begins or ends.</span>
|
||||
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Serialize</span>, <span class="ident">Deserialize</span>, <span class="ident">PartialEq</span>, <span class="ident">Eq</span>, <span class="ident">PartialOrd</span>, <span class="ident">Ord</span>, <span class="ident">Debug</span>, <span class="ident">Clone</span>)]</span>
|
||||
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Serialize</span>, <span class="ident">Deserialize</span>, <span class="ident">PartialEq</span>, <span class="ident">Eq</span>, <span class="ident">PartialOrd</span>, <span class="ident">Ord</span>, <span class="ident">Debug</span>, <span class="ident">Clone</span>, <span class="ident">Copy</span>)]</span>
|
||||
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">TripEndpoint</span> {
|
||||
<span class="ident">Bldg</span>(<span class="ident">BuildingID</span>),
|
||||
<span class="ident">Border</span>(<span class="ident">IntersectionID</span>),
|
||||
|
Loading…
Reference in New Issue
Block a user