Skip to main content

Levers

Struct Levers 

Source
pub struct Levers {
    pub curl: f32,
    pub vigor: f32,
    pub lean: f32,
    pub bias: f32,
}
Expand description

The four audio-driven shape levers (ADR-0075), applied in SVD space.

Built to be safe rather than checked, which is the whole point of the parameterization: curl and lean are rotations and cannot affect contractivity at all, bias moves probabilities and changes only where points land, and vigor is the one that touches the singular values — so it is the one, and the only one, behind a clamp.

Fields§

§curl: f32

Radians added to every map’s θ. Fronds curl and uncurl. Unconditionally safe: R is an isometry.

§vigor: f32

Multiplier on every singular value, under SIGMA_CEILING. A bushier, deeper, denser figure — and the only lever that can reach the cliff.

§lean: f32

Radians every translation vector is rotated about the origin by, bending the plant. Translations do not enter contractivity, so this is unconditionally safe.

§bias: f32

Shifts sampling weight between the body maps (canonical indices 0 and 1) and the branch maps (2 and 3), renormalizing. The shape is untouched and only the density distribution moves — the cheapest genuinely organic response in the set.

Inert on the dragon, whose two real maps both live in the branch slots (its body slots are the padding), so there is nothing to shift weight away from. Worth a note in the content pass rather than a special case.

Implementations§

Source§

impl Levers

Source

pub const NEUTRAL: Self

Every lever at rest. The fit is built here, and resolve at these values is bit-identical to resolve with no levers at all — every operation below is guarded so that neutrality is exact rather than approximate.

Source

pub const EXTREMES: [Self; 2]

The documented extremes, for the sweep that has to cover them.

curl and lean are angles, so their “extreme” is a look choice rather than a limit — a full turn is the same figure. vigor is quoted well past what SIGMA_CEILING will grant, precisely so the sweep exercises the clamp; bias is quoted at the ends of its own range.

Trait Implementations§

Source§

impl Clone for Levers

Source§

fn clone(&self) -> Levers

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Levers

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Levers

Source§

fn eq(&self, other: &Levers) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Levers

Source§

impl StructuralPartialEq for Levers

Auto Trait Implementations§

Blanket Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

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<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> ToOwned for T
where T: Clone,

Source§

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>,

Source§

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>,

Source§

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

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

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

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

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