Skip to main content

FlowFunc

Enum FlowFunc 

Source
pub enum FlowFunc {
Show 63 variants Sin, Cos, Tan, Abs, Floor, Ceil, Fract, Sqrt, Pow, Atan2, Exp, Log, Sign, Mod, Min, Max, Clamp, Mix, Smoothstep, Step, Length, Distance, Dot, Cross, Normalize, Reflect, SdfBox, SdfCircle, SdfEllipse, SdfRoundRect, SdfUnion, SdfIntersect, SdfSubtract, SdfSmoothUnion, SdfSmoothIntersect, SdfSmoothSubtract, Sdf, Sobel, BufferRead, Phong, BlinnPhong, Perlin, Simplex, Worley, WorleyGrad, Fbm, FbmEx, Checkerboard, SpringEval, WaveStep, FluidStep, SampleScene, Mat4MulVec4, Mat4Mul, Mat4Inverse, Mat4Transpose, TransformNormal, TranslationMatrix, RotationMatrix, ScaleMatrix, PerspectiveMatrix, LookAtMatrix, SampleTexture,
}
Expand description

Built-in function identifiers for the flow language

Variants§

§

Sin

§

Cos

§

Tan

§

Abs

§

Floor

§

Ceil

§

Fract

§

Sqrt

§

Pow

§

Atan2

§

Exp

§

Log

§

Sign

§

Mod

§

Min

§

Max

§

Clamp

§

Mix

§

Smoothstep

§

Step

§

Length

§

Distance

§

Dot

§

Cross

§

Normalize

§

Reflect

§

SdfBox

§

SdfCircle

§

SdfEllipse

§

SdfRoundRect

§

SdfUnion

§

SdfIntersect

§

SdfSubtract

§

SdfSmoothUnion

§

SdfSmoothIntersect

§

SdfSmoothSubtract

§

Sdf

Current element’s SDF at sample point

§

Sobel

Sobel filter (compute normal from heightfield)

§

BufferRead

Read from a named buffer

§

Phong

§

BlinnPhong

§

Perlin

§

Simplex

§

Worley

§

WorleyGrad

Worley noise with analytic gradient — returns vec3(distance, grad_x, grad_y) in a single 3×3 grid pass. 5× faster than finite-difference gradient.

§

Fbm

Fractal Brownian Motion (layered noise)

§

FbmEx

Extended FBM with configurable persistence (roughness)

§

Checkerboard

Checkerboard pattern

§

SpringEval

§

WaveStep

§

FluidStep

§

SampleScene

Sample the background/scene texture at given UV coordinates. Returns vec4 (RGBA). Enables refraction effects in flow shaders.

§

Mat4MulVec4

Matrix × vector multiply: mat4 * vec4 → vec4

§

Mat4Mul

Matrix × matrix multiply: mat4 * mat4 → mat4

§

Mat4Inverse

Inverse of a mat4 → mat4

§

Mat4Transpose

Transpose of a mat4 → mat4

§

TransformNormal

Extract 3x3 normal matrix from model mat4, transform a vec3 normal

§

TranslationMatrix

Construct a translation matrix from vec3

§

RotationMatrix

Construct a rotation matrix from axis (vec3) and angle (float)

§

ScaleMatrix

Construct a scale matrix from vec3

§

PerspectiveMatrix

Construct a perspective projection: fov, aspect, near, far → mat4

§

LookAtMatrix

Construct a lookAt view matrix: eye, target, up → mat4

§

SampleTexture

Sample a texture at UV coordinates: texture_id, uv → vec4

Implementations§

Source§

impl FlowFunc

Source

pub fn parse(s: &str) -> Option<FlowFunc>

Parse a function name to a FlowFunc

Source

pub fn arg_count(&self) -> (usize, usize)

Get the expected argument count for this function

Source

pub fn return_type(&self, arg_types: &[FlowType]) -> Option<FlowType>

Get the return type given argument types

Trait Implementations§

Source§

impl Clone for FlowFunc

Source§

fn clone(&self) -> FlowFunc

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 Copy for FlowFunc

Source§

impl Debug for FlowFunc

Source§

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

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

impl Eq for FlowFunc

Source§

impl PartialEq for FlowFunc

Source§

fn eq(&self, other: &FlowFunc) -> 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 StructuralPartialEq for FlowFunc

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> NodeState for T
where T: Send + 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Get self as Any for downcasting
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Get self as mutable Any for downcasting
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> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

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.
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> WasmNotSendSync for T

Source§

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

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more