#[non_exhaustive]pub struct ModeOpts {Show 39 fields
pub lat_rings: Option<f32>,
pub lon_density: Option<f32>,
pub rings: Option<f32>,
pub r_base: Option<f32>,
pub r_depth: Option<f32>,
pub r_boost: Option<f32>,
pub r_active: Option<f32>,
pub ink_far: Option<f32>,
pub ink_span: Option<f32>,
pub rs_pow: Option<f32>,
pub r_min: Option<f32>,
pub move_count: Option<f32>,
pub scan_mul: Option<f32>,
pub dim_base: Option<f32>,
pub orbit_n: Option<f32>,
pub ghost_n: Option<f32>,
pub ghost_r: Option<f32>,
pub ghost_a: Option<f32>,
pub particles: Option<f32>,
pub part_r: Option<f32>,
pub part_r_depth: Option<f32>,
pub node_n: Option<f32>,
pub thr: Option<f32>,
pub signals: Option<f32>,
pub node_r: Option<f32>,
pub node_r_depth: Option<f32>,
pub line_w: Option<f32>,
pub strand_n: Option<f32>,
pub turns: Option<f32>,
pub lanes: Option<f32>,
pub segs: Option<f32>,
pub face_on: Option<f32>,
pub spin: Option<f32>,
pub band_mul: Option<f32>,
pub wob_mul: Option<f32>,
pub r_dot: Option<f32>,
pub icon_d: Option<f32>,
pub spread: Option<f32>,
pub r_size_mul: Option<f32>,
}Expand description
Free-form numeric knobs for mode painters (mirrors upstream ModeOpts).
Power-user / advanced API. The normal path is crate::orbs::Orb /
crate::orbs::resolve_preset, which only ever pass hand-tuned finite values.
If you build a ModeOpts yourself and pass it to
crate::orbs::engine::draw_mode / crate::orbs::engine::draw_mode_into, every count-like field is
clamped by sanitize_mode_opts before geometry runs:
| Field family | Range after sanitize |
|---|---|
| lattice rings / density | 1…128 / 1…256 |
orbit_n, ghost_n, particles | 0…64 / 0…512 / 0…16 |
node_n, signals | 0…128 / 0…64 |
strand_n, lanes, segs | 0…256 / 1…32 / 1…512 |
move_count | 0…64 |
icon_d | 0.02…8 |
Non-finite values fall back to the field default used by the painter. New fields may be added without a major version bump.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.lat_rings: Option<f32>§lon_density: Option<f32>§rings: Option<f32>§r_base: Option<f32>§r_depth: Option<f32>§r_boost: Option<f32>§r_active: Option<f32>§ink_far: Option<f32>§ink_span: Option<f32>§rs_pow: Option<f32>§r_min: Option<f32>§move_count: Option<f32>§scan_mul: Option<f32>§dim_base: Option<f32>§orbit_n: Option<f32>§ghost_n: Option<f32>§ghost_r: Option<f32>§ghost_a: Option<f32>§particles: Option<f32>§part_r: Option<f32>§part_r_depth: Option<f32>§node_n: Option<f32>§thr: Option<f32>§signals: Option<f32>§node_r: Option<f32>§node_r_depth: Option<f32>§line_w: Option<f32>§strand_n: Option<f32>§turns: Option<f32>§lanes: Option<f32>§segs: Option<f32>§face_on: Option<f32>§spin: Option<f32>§band_mul: Option<f32>§wob_mul: Option<f32>§r_dot: Option<f32>§icon_d: Option<f32>§spread: Option<f32>§r_size_mul: Option<f32>Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ModeOpts
impl RefUnwindSafe for ModeOpts
impl Send for ModeOpts
impl Sync for ModeOpts
impl Unpin for ModeOpts
impl UnsafeUnpin for ModeOpts
impl UnwindSafe for ModeOpts
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().