pub struct World {
pub model: Model,
pub state: State,
pub sensors: Vec<Sensor>,
pub sensor_history: Vec<Vec<SensorOutput>>,
pub tendons: Vec<Tendon>,
}Expand description
A complete simulation world with sensors and actuators.
Fields§
§model: ModelThe kinematic model.
state: StateCurrent simulation state.
sensors: Vec<Sensor>Sensors attached to the world.
sensor_history: Vec<Vec<SensorOutput>>History of sensor readings (one vec per timestep).
tendons: Vec<Tendon>Tendons (cable actuators) in the world.
Implementations§
Source§impl World
impl World
Sourcepub fn with_state(model: Model, state: State) -> World
pub fn with_state(model: Model, state: State) -> World
Create a new world with initial state.
Sourcepub fn add_sensor(&mut self, sensor: Sensor)
pub fn add_sensor(&mut self, sensor: Sensor)
Add a sensor to the world.
Sourcepub fn add_tendon(&mut self, tendon: Tendon)
pub fn add_tendon(&mut self, tendon: Tendon)
Add a tendon to the world.
Sourcepub fn step<F>(&mut self, step_fn: F)
pub fn step<F>(&mut self, step_fn: F)
Step the simulation forward using a custom step function.
The step_fn should advance the state by one timestep. Records sensor outputs after the step.
Sourcepub fn latest_sensor_readings(&self) -> Option<&Vec<SensorOutput>>
pub fn latest_sensor_readings(&self) -> Option<&Vec<SensorOutput>>
Get the most recent sensor readings.
Sourcepub fn clear_history(&mut self)
pub fn clear_history(&mut self)
Clear sensor history.
Sourcepub fn history_len(&self) -> usize
pub fn history_len(&self) -> usize
Get number of timesteps recorded.
Auto Trait Implementations§
impl Freeze for World
impl RefUnwindSafe for World
impl Send for World
impl Sync for World
impl Unpin for World
impl UnsafeUnpin for World
impl UnwindSafe for World
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
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.