Struct tahga::growth::hyphae::hypha::Hypha

source ·
pub struct Hypha {
Show 21 fields pub id: Uuid, pub parent_id: Option<Uuid>, pub position: Vec2, pub direction: f32, pub direction_variance: f32, pub min_direction_variance: f32, pub max_direction_variance: f32, pub direction_variance_multiplier: f32, pub branch_probability: f32, pub speed: f32, pub min_speed: f32, pub max_speed: f32, pub speed_multiplier: f32, pub weight: f32, pub min_weight: f32, pub max_weight: f32, pub weight_multiplier: f32, pub color: Alpha<Hsl, f32>, pub path: Vec<Line>, pub dead: bool, pub cargo: i32,
}
Expand description

A single hypha

Fields§

§id: Uuid

A unique id for this hypha

§parent_id: Option<Uuid>

The id if the parent hypha

§position: Vec2

The current position

§direction: f32

The current direction

§direction_variance: f32

The amount the direction can vary

§min_direction_variance: f32

The minimum amount the direction can vary

§max_direction_variance: f32

The maximum amount the direction can vary

§direction_variance_multiplier: f32

The amount to multiply the direction variance by during each growth cycle

§branch_probability: f32

Probability of a hypha creating a branch

§speed: f32

The rate of growth

§min_speed: f32

The minimum speed

§max_speed: f32

The maximum speed

§speed_multiplier: f32

The amount to multiply the speed by during each growth cycle

§weight: f32

The thickness of the hypha

§min_weight: f32

The minimum weight

§max_weight: f32

The maximum weight

§weight_multiplier: f32

The amount to multiply the weight by during each growth cycle

§color: Alpha<Hsl, f32>

This hypha’s color

§path: Vec<Line>

A record of the hypha’s path

§dead: bool

If true, the hypha has died

§cargo: i32

A user-defined value to be carried along by the hypha

Implementations§

source§

impl Hypha

source

pub fn new() -> Self

Create a new instance of Hypha with default values

Arguments

id - A unique id for this Hypha

source

pub fn parent_id(self, id: Uuid) -> Self

Set the parent_id for the hypha

This is intended to be chained with new() in a builder pattern

Arguments

id: The parent_id

Examples
use nannou::prelude::*;
use uuid::Uuid;
use tahga::growth::hyphae::hypha::Hypha;
let parent_id = Uuid::new_v4();
let h = Hypha::new().parent_id(parent_id);
assert_eq!(h.parent_id.unwrap(), parent_id);
source

pub fn position(self, position: Vec2) -> Self

Set the position for the hypha

This is intended to be chained with new() in a builder pattern

Arguments

position: The new position

Examples
use nannou::prelude::*;
use tahga::growth::hyphae::hypha::Hypha;
let h = Hypha::new().position(vec2(1.,2.));
assert_eq!(h.position.x, 1.);
assert_eq!(h.position.y, 2.);
source

pub fn direction(self, direction: f32) -> Self

Set the direction for the hypha

This is intended to be chained with new() in a builder pattern

Arguments

direction: The new direction

Examples
use nannou::prelude::*;
use tahga::growth::hyphae::hypha::Hypha;
let h = Hypha::new().direction(2.1);
assert_eq!(h.direction, 2.1);
source

pub fn direction_variance(self, direction_variance: f32) -> Self

Set the direction variance for the hypha

This is intended to be chained with new() in a builder pattern

Arguments

direction_variance: The new direction_variance

Examples
use nannou::prelude::*;
use tahga::growth::hyphae::hypha::Hypha;
let h = Hypha::new().direction_variance(0.1);
assert_eq!(h.direction_variance, 0.1);
source

pub fn speed(self, speed: f32) -> Self

Set the speed for the hypha

This is intended to be chained with new() in a builder pattern

Arguments

speed: The new speed

Examples
use nannou::prelude::*;
use tahga::growth::hyphae::hypha::Hypha;
let h = Hypha::new().speed(5.);
assert_eq!(h.speed, 5.);
source

pub fn weight(self, weight: f32) -> Self

Set the weight for the hypha

This is intended to be chained with new() in a builder pattern

Arguments

weight: The new weight

Examples
use nannou::prelude::*;
use tahga::growth::hyphae::hypha::Hypha;
let h = Hypha::new().weight(5.);
assert_eq!(h.weight, 5.);
source

pub fn color(self, color: Alpha<Hsl, f32>) -> Self

Set the color for the hypha

This is intended to be chained with new() in a builder pattern

Arguments

color: The new color

Examples
use nannou::prelude::*;
use tahga::growth::hyphae::hypha::Hypha;
let h = Hypha::new().color(hsla(0.7, 0.9, 0.3, 0.01));
let c = h.color.into_components();
assert_eq!(c.2, 0.3);
source

pub fn update(&mut self, factory: &Factory) -> Option<Hypha>

Grow a hypha, possibly branching a new hypha

Arguments

factory - A reference to the factory to use to create a new Hypha

Trait Implementations§

source§

impl Clone for Hypha

source§

fn clone(&self) -> Hypha

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for Hypha

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Hypha

§

impl Send for Hypha

§

impl Sync for Hypha

§

impl Unpin for Hypha

§

impl UnwindSafe for Hypha

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Component + Float, Swp: WhitePoint, Dwp: WhitePoint, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<Swp, Dwp, T>,

Convert the source color to the destination color using the specified method
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default
source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T, U> ConvertInto<U> for T
where U: ConvertFrom<T>,

source§

fn convert_into(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

fn convert_unclamped_into(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

fn try_convert_into(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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.
source§

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

Performs the conversion.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

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

source§

fn vzip(self) -> V

source§

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

source§

impl<T> WasmNotSync for T
where T: Sync,