Trait libnoise::Generator1D

source ·
pub trait Generator1D: Generator<1> {
    // Provided method
    fn displace_x<GA>(
        self,
        displacement_generator: GA
    ) -> Displace<1, 0, Self, GA>
       where GA: Generator<1> { ... }
}
Expand description

A trait representing the specialization of Generator<D> for 1-dimensional input spaces.

Anything implementing this trait must also implement Generator<1>. This trait exists for two reasons: The first is to provide functions that either only make sense for specific dimensionalities, or are either too difficult or inefficient to implement in a dimension-agnostic manner. The second is to bypass certain limitations of constant generics.

Provided Methods§

source

fn displace_x<GA>(self, displacement_generator: GA) -> Displace<1, 0, Self, GA>
where GA: Generator<1>,

Create a generator providing the results of the underlying generator after displacing the x-coordinate by the result of the provided generator.

Creates a generator which is exactly the same as the underlying generator, except the x-coordinate of the input point is first displaced by the result of displacement_generator for that point.

Examples

Basic usage:

let mut point = [0.2];

let generator = Source::simplex(42)     // build a generator
    .displace_x(Source::simplex(43));   // apply the adapter

let value = generator.sample(point);    // sample the generator

point[0] += Source::simplex(43).sample(point);
assert_eq!(value, Source::simplex(42).sample(point))

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Generator1D for Checkerboard<1>

source§

impl Generator1D for Constant<1>

source§

impl Generator1D for ImprovedPerlin<1>

source§

impl Generator1D for Perlin<1>

source§

impl Generator1D for Simplex<1>

source§

impl Generator1D for Value<1>

source§

impl Generator1D for Worley<1>

source§

impl<G: Generator<1>> Generator1D for Abs<1, G>

source§

impl<G: Generator<1>> Generator1D for Add<1, G>

source§

impl<G: Generator<1>> Generator1D for Billow<1, G>

source§

impl<G: Generator<1>> Generator1D for Clamp<1, G>

source§

impl<G: Generator<1>> Generator1D for Exp<1, G>

source§

impl<G: Generator<1>> Generator1D for Fbm<1, G>

source§

impl<G: Generator<1>> Generator1D for Mul<1, G>

source§

impl<G: Generator<1>> Generator1D for Neg<1, G>

source§

impl<G: Generator<1>> Generator1D for Pow<1, G, f64>

source§

impl<G: Generator<1>> Generator1D for Pow<1, G, i32>

source§

impl<G: Generator<1>> Generator1D for RidgedMulti<1, G>

source§

impl<G: Generator<1>> Generator1D for Scale<1, G>

source§

impl<G: Generator<1>> Generator1D for Translate<1, G>

source§

impl<G: Generator<1>, L: Fn(f64) -> f64 + Copy> Generator1D for Lambda<1, G, L>

source§

impl<GA: Generator<1>, GB: Generator<1>> Generator1D for Max<1, GA, GB>

source§

impl<GA: Generator<1>, GB: Generator<1>> Generator1D for Min<1, GA, GB>

source§

impl<GA: Generator<1>, GB: Generator<1>> Generator1D for Power<1, GA, GB>

source§

impl<GA: Generator<1>, GB: Generator<1>> Generator1D for Product<1, GA, GB>

source§

impl<GA: Generator<1>, GB: Generator<1>> Generator1D for Sum<1, GA, GB>

source§

impl<GA: Generator<1>, GB: Generator<1>, GC: Generator<1>> Generator1D for Blend<1, GA, GB, GC>

source§

impl<GA: Generator<1>, GB: Generator<1>, GC: Generator<1>> Generator1D for Select<1, GA, GB, GC>

source§

impl<N: Fn([f64; 1]) -> f64> Generator1D for Custom<1, N>

source§

impl<const A: usize, G: Generator<1>, GA: Generator<1>> Generator1D for Displace<1, A, G, GA>