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: CellIdentifierThe 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: CThe cell which is encapsulated by this box.
Implementations§
Source§impl<Cel> CellBox<Cel>
impl<Cel> CellBox<Cel>
Sourcepub fn get_parent_id(&self) -> Option<CellIdentifier>
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>
impl<C> CellBox<C>
Sourcepub fn new_initial(n_cell: usize, cell: C) -> CellBox<C>
pub fn new_initial(n_cell: usize, cell: C) -> CellBox<C>
Create a new CellBox for a cell present initially in the simulation.
Sourcepub fn new(
voxel_index: VoxelPlainIndex,
n_cell: u64,
cell: C,
parent: Option<CellIdentifier>,
) -> CellBox<C>
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<'de, C> Deserialize<'de> for CellBox<C>where
C: Deserialize<'de>,
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>,
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>
impl<Cel> Id for CellBox<Cel>
Source§type Identifier = CellIdentifier
type Identifier = CellIdentifier
The identifier type is usually chosen to be completely unique and repeatable across
different simulations.
Source§fn get_id(&self) -> CellIdentifier
fn get_id(&self) -> CellIdentifier
Retrieves the Identifier from the object.
Source§fn ref_id(&self) -> &CellIdentifier
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>
impl<Pos, Vel, For, Inf, A> Interaction<Pos, Vel, For, Inf> for CellBox<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>
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>,
impl<Inf, A> InteractionInformation<Inf> for CellBox<A>where
A: InteractionInformation<Inf>,
Source§fn get_interaction_information(&self) -> Inf
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>,
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>
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>
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>
Available on crate feature plotters only.
impl<Cel> PlotSelf for CellBox<Cel>
Available on crate feature
plotters only.Source§fn plot_self<Db>(
&self,
root: &mut DrawingArea<Db, Cartesian2d<RangedCoordf64, RangedCoordf64>>,
) -> Result<(), DrawingError>where
Db: DrawingBackend,
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>
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>
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.
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<C, T> CoordTranslate for Twhere
C: CoordTranslate,
T: Deref<Target = C>,
impl<C, T> CoordTranslate for Twhere
C: CoordTranslate,
T: Deref<Target = C>,
Source§impl<R> TryRngCore for R
impl<R> TryRngCore for R
Source§type Error = Infallible
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>
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>
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>
fn try_fill_bytes( &mut self, dst: &mut [u8], ) -> Result<(), <R as TryRngCore>::Error>
Fill
dest entirely with random data.Source§fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>
fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>
Wrap RNG with the
UnwrapMut wrapper.Source§fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>where
Self: Sized,
fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>where
Self: Sized,
Available on crate feature
std only.Convert an
RngCore to a RngReadAdapter.