pub struct AgentCache {
pub unzoomed_agents: UnzoomedAgents,
time: Option<Time>,
agents_per_on: HashMap<Traversable, Vec<Box<dyn GameRenderable>>>,
unzoomed: Option<(Time, UnzoomedAgents, QuadTree<AgentID>, Drawable)>,
}
Fields§
§unzoomed_agents: UnzoomedAgents
This is controlled almost entirely by the minimap panel. It has no meaning in edit mode.
time: Option<Time>
§agents_per_on: HashMap<Traversable, Vec<Box<dyn GameRenderable>>>
§unzoomed: Option<(Time, UnzoomedAgents, QuadTree<AgentID>, Drawable)>
Implementations§
Source§impl AgentCache
impl AgentCache
pub fn new() -> AgentCache
pub fn get(&self, on: Traversable) -> Vec<&dyn GameRenderable>
pub fn populate_if_needed( &mut self, on: Traversable, map: &Map, sim: &Sim, cs: &ColorScheme, prerender: &Prerender, )
Sourcepub fn calculate_unzoomed_agents<P: AsRef<Prerender>>(
&mut self,
prerender: &mut P,
map: &Map,
sim: &Sim,
cs: &ColorScheme,
) -> &QuadTree<AgentID>
pub fn calculate_unzoomed_agents<P: AsRef<Prerender>>( &mut self, prerender: &mut P, map: &Map, sim: &Sim, cs: &ColorScheme, ) -> &QuadTree<AgentID>
If the sim time has changed or the unzoomed agent filters have been modified, recalculate the quadtree and drawable for all unzoomed agents.
pub fn draw_unzoomed_agents( &mut self, g: &mut GfxCtx<'_>, map: &Map, sim: &Sim, cs: &ColorScheme, opts: &Options, )
Auto Trait Implementations§
impl Freeze for AgentCache
impl !RefUnwindSafe for AgentCache
impl !Send for AgentCache
impl !Sync for AgentCache
impl Unpin for AgentCache
impl !UnwindSafe for AgentCache
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.