CellBox

Struct CellBox 

Source
pub struct CellBox<C> {
    pub identifier: CellIdentifier,
    pub parent: Option<CellIdentifier>,
    pub cell: C,
}
Expand description

Wrapper around the user-defined CellAgent

This wrapper serves to provide a unique identifier and the option to specify the parent of the current cell.

Fields§

§identifier: CellIdentifier

The identifier is composed of two values, one for the voxel index in which the object was created and another one which counts how many elements have already been created there.

§parent: Option<CellIdentifier>

Identifier of the parent cell if this cell was created by cell-division

§cell: C

The cell which is encapsulated by this box.

Implementations§

Source§

impl<Cel> CellBox<Cel>

Source

pub fn get_parent_id(&self) -> Option<CellIdentifier>

Simple method to retrieve the [CellularIdentifier] of the parent cell if existing.

Source§

impl<C> CellBox<C>

Source

pub fn new_initial(n_cell: usize, cell: C) -> CellBox<C>

Create a new CellBox for a cell present initially in the simulation.

Source

pub fn new( voxel_index: VoxelPlainIndex, n_cell: u64, cell: C, parent: Option<CellIdentifier>, ) -> CellBox<C>

Create a new CellBox at a specific voxel with a voxel-unique number of cells that has already been created at this position.

Trait Implementations§

Source§

impl<C: Clone> Clone for CellBox<C>

Source§

fn clone(&self) -> CellBox<C>

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<C> Deref for CellBox<C>

Source§

type Target = C

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<C> DerefMut for CellBox<C>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<'de, C> Deserialize<'de> for CellBox<C>
where C: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<Cel> Id for CellBox<Cel>

Source§

type Identifier = CellIdentifier

The identifier type is usually chosen to be completely unique and repeatable across different simulations.
Source§

fn get_id(&self) -> CellIdentifier

Retrieves the Identifier from the object.
Source§

fn ref_id(&self) -> &CellIdentifier

Returns a reference to the id of the object.
Source§

impl<Pos, Vel, For, Inf, A> Interaction<Pos, Vel, For, Inf> for CellBox<A>
where A: Interaction<Pos, Vel, For, Inf> + Serialize + for<'a> Deserialize<'a>,

Source§

fn calculate_force_between( &self, own_pos: &Pos, own_vel: &Vel, ext_pos: &Pos, ext_vel: &Vel, ext_information: &Inf, ) -> Result<(For, For), CalcError>

Calculates the forces (velocity-derivative) on the corresponding external position given external velocity. By providing velocities, we can calculate terms that are related to friction. The function returns two forces, one acting on the current agent and the other on the external agent.
Source§

impl<Inf, A> InteractionInformation<Inf> for CellBox<A>
where A: InteractionInformation<Inf>,

Source§

fn get_interaction_information(&self) -> Inf

Get additional information of cellular properties (ie. for cell-specific interactions).
Source§

impl<Pos, Vel, For, Float, A> Mechanics<Pos, Vel, For, Float> for CellBox<A>
where A: Mechanics<Pos, Vel, For, Float>,

Source§

fn get_random_contribution( &self, rng: &mut ChaCha8Rng, dt: Float, ) -> Result<(Pos, Vel), RngError>

Define a new random variable in case that the mechanics type contains a random aspect to its motion. By default this function does nothing.
Source§

fn calculate_increment(&self, force: For) -> Result<(Pos, Vel), CalcError>

Calculate the time-derivative of force and velocity given all the forces that act on the cell. Simple damping effects should be included in this trait if not explicitly given by the SubDomainForce trait.
Source§

impl<Cel> PlotSelf for CellBox<Cel>
where Cel: PlotSelf + Serialize + for<'a> Deserialize<'a>,

Available on crate feature plotters only.
Source§

fn plot_self<Db>( &self, root: &mut DrawingArea<Db, Cartesian2d<RangedCoordf64, RangedCoordf64>>, ) -> Result<(), DrawingError>
where Db: DrawingBackend,

Define which elements to draw when plotting the element itself.
Source§

fn plot_self_bitmap( &self, root: &mut DrawingArea<BitMapBackend<'_>, Cartesian2d<RangedCoordf64, RangedCoordf64>>, ) -> Result<(), DrawingError>

Overload for backend to have a purely bitmap function. User are not expected to change this function.
Source§

fn plot_self_svg( &self, root: &mut DrawingArea<SVGBackend<'_>, Cartesian2d<RangedCoordf64, RangedCoordf64>>, ) -> Result<(), DrawingError>

Overload for backend to have a purely bitmap function. User are not expected to change this function.
Source§

impl<A, Pos> Position<Pos> for CellBox<A>
where A: Position<Pos>,

Source§

fn pos(&self) -> Pos

Gets the cells current position.
Source§

fn set_pos(&mut self, pos: &Pos)

Gets the cells current velocity.
Source§

impl<C> Serialize for CellBox<C>
where C: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<A, Vel> Velocity<Vel> for CellBox<A>
where A: Velocity<Vel>,

Source§

fn velocity(&self) -> Vel

Gets the cells current velocity.
Source§

fn set_velocity(&mut self, velocity: &Vel)

Sets the cells current velocity.

Auto Trait Implementations§

§

impl<C> Freeze for CellBox<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for CellBox<C>
where C: RefUnwindSafe,

§

impl<C> Send for CellBox<C>
where C: Send,

§

impl<C> Sync for CellBox<C>
where C: Sync,

§

impl<C> Unpin for CellBox<C>
where C: Unpin,

§

impl<C> UnwindSafe for CellBox<C>
where C: UnwindSafe,

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<C, T> CoordTranslate for T
where C: CoordTranslate, T: Deref<Target = C>,

Source§

type From = <C as CoordTranslate>::From

Specifies the object to be translated from
Source§

fn translate(&self, from: &<T as CoordTranslate>::From) -> (i32, i32)

Translate the guest coordinate to the guest coordinate
Source§

fn depth(&self, _from: &Self::From) -> i32

Get the Z-value of current coordinate
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> RngCore for T
where T: DerefMut, <T as Deref>::Target: RngCore,

Source§

fn next_u32(&mut self) -> u32

Return the next random u32. Read more
Source§

fn next_u64(&mut self) -> u64

Return the next random u64. Read more
Source§

fn fill_bytes(&mut self, dst: &mut [u8])

Fill dest with random data. Read more
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<R> TryRngCore for R
where R: RngCore + ?Sized,

Source§

type Error = Infallible

The type returned in the event of a RNG error.
Source§

fn try_next_u32(&mut self) -> Result<u32, <R as TryRngCore>::Error>

Return the next random u32.
Source§

fn try_next_u64(&mut self) -> Result<u64, <R as TryRngCore>::Error>

Return the next random u64.
Source§

fn try_fill_bytes( &mut self, dst: &mut [u8], ) -> Result<(), <R as TryRngCore>::Error>

Fill dest entirely with random data.
Source§

fn unwrap_err(self) -> UnwrapErr<Self>
where Self: Sized,

Wrap RNG with the UnwrapErr wrapper.
Source§

fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>

Wrap RNG with the UnwrapMut wrapper.
Source§

fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>
where Self: Sized,

Available on crate feature std only.
Convert an RngCore to a RngReadAdapter.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> CryptoRng for T
where T: DerefMut, <T as Deref>::Target: CryptoRng,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<R> TryCryptoRng for R
where R: CryptoRng + ?Sized,

Source§

impl<T> Ungil for T
where T: Send,