Struct ImprovedPerlin

Source
pub struct ImprovedPerlin<const D: usize> { /* private fields */ }
Expand description

A generator which produces n-dimensional improved perlin noise.

For details, see the documentation of improved_perlin(). Typically, this struct is not meant to be used directly. Instead, improved_perlin() implemented by Source, should be used to create an improved perlin noise generator.

§Direct usage of this struct

Direct instantiation of this struct:

let generator = ImprovedPerlin::new(42);
let value = generator.sample([0.2, 0.5]);

Implementations§

Source§

impl<const D: usize> ImprovedPerlin<D>

Source

pub fn new(seed: impl Seed) -> Self

Create a new improved perlin noise generator.

Trait Implementations§

Source§

impl<const D: usize> Clone for ImprovedPerlin<D>

Source§

fn clone(&self) -> ImprovedPerlin<D>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<const D: usize> Debug for ImprovedPerlin<D>

Source§

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

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

impl Generator<1> for ImprovedPerlin<1>

Source§

fn sample(&self, point: [f64; 1]) -> f64

Samples the generator at a given point and returns the resulting value. Read more
Source§

fn scale(self, scale: [f64; D]) -> Scale<D, Self>

Create a generator which scales input points before passing them to the underlying generator. Read more
Source§

fn translate(self, translation: [f64; D]) -> Translate<D, Self>

Create a generator which translates input points before passing them to the underlying generator. Read more
Source§

fn neg(self) -> Neg<D, Self>

Create a generator which negates the results of the underlying generator. Read more
Source§

fn abs(self) -> Abs<D, Self>

Create a generator returning the absolute value of the results of the underlying generator. Read more
Source§

fn exp(self) -> Exp<D, Self>

Create a generator applying the exponential function on results of the underlying generator. Read more
Source§

fn add(self, offset: f64) -> Add<D, Self>

Create a generator adding offset to results of the underlying generator. Read more
Source§

fn mul(self, scale: f64) -> Mul<D, Self>

Create a generator multiplying scale to results of the underlying generator. Read more
Source§

fn powi(self, exponent: i32) -> Pow<D, Self, i32>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn powf(self, exponent: f64) -> Pow<D, Self, f64>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn clamp(self, min: f64, max: f64) -> Clamp<D, Self>

Create a generator clamping results of the underlying generator to a given interval. Read more
Source§

fn lambda<L>(self, lambda: L) -> Lambda<D, Self, L>
where L: Fn(f64) -> f64,

Create a generator applying the supplied closure to results of the underlying generator. Read more
Source§

fn sum<G>(self, other: G) -> Sum<D, Self, G>
where G: Generator<D>,

Create a generator adding results of the underlying generator to results of a given other generator. Read more
Source§

fn product<G>(self, other: G) -> Product<D, Self, G>
where G: Generator<D>,

Create a generator multiplying results of the underlying generator to results of a given other generator. Read more
Source§

fn min<G>(self, other: G) -> Min<D, Self, G>
where G: Generator<D>,

Create a generator producing the minimum of results of the underlying generator and results of a given other generator. Read more
Source§

fn max<G>(self, other: G) -> Max<D, Self, G>
where G: Generator<D>,

Create a generator producing the maximum of results of the underlying generator and results of a given other generator. Read more
Source§

fn power<G>(self, other: G) -> Power<D, Self, G>
where G: Generator<D>,

Create a generator raising results of the underlying generator to the power of results of a given other generator. Read more
Source§

fn fbm( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Fbm<D, Self>

Create a generator applying fractal brownian motion on the underlying generator. Read more
Source§

fn billow( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Billow<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn ridgedmulti( self, octaves: u32, frequency: f64, lacunarity: f64, attenuation: f64, ) -> RidgedMulti<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn blend<G, GC>(self, other: G, control: GC) -> Blend<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator blending the underlying generator with a given other generator based on the value supplied by a control-generator. Read more
Source§

fn select<G, GC>( self, other: G, control: GC, selection_min: f64, selection_max: f64, ) -> Select<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator selecting the result of either the underlying generator or that of a given other generator based on whether the value supplied by a control-generator lies within the provided interval. Read more
Source§

fn spline<S>(self, knot_vector: &[f64], knots: &[f64]) -> Spline<D, Self, S>
where S: SplineImpl,

Create a generator returning the function value of a provided spline given the result of the underlying generator as input. Read more
Source§

impl Generator<2> for ImprovedPerlin<2>

Source§

fn sample(&self, point: [f64; 2]) -> f64

Samples the generator at a given point and returns the resulting value. Read more
Source§

fn scale(self, scale: [f64; D]) -> Scale<D, Self>

Create a generator which scales input points before passing them to the underlying generator. Read more
Source§

fn translate(self, translation: [f64; D]) -> Translate<D, Self>

Create a generator which translates input points before passing them to the underlying generator. Read more
Source§

fn neg(self) -> Neg<D, Self>

Create a generator which negates the results of the underlying generator. Read more
Source§

fn abs(self) -> Abs<D, Self>

Create a generator returning the absolute value of the results of the underlying generator. Read more
Source§

fn exp(self) -> Exp<D, Self>

Create a generator applying the exponential function on results of the underlying generator. Read more
Source§

fn add(self, offset: f64) -> Add<D, Self>

Create a generator adding offset to results of the underlying generator. Read more
Source§

fn mul(self, scale: f64) -> Mul<D, Self>

Create a generator multiplying scale to results of the underlying generator. Read more
Source§

fn powi(self, exponent: i32) -> Pow<D, Self, i32>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn powf(self, exponent: f64) -> Pow<D, Self, f64>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn clamp(self, min: f64, max: f64) -> Clamp<D, Self>

Create a generator clamping results of the underlying generator to a given interval. Read more
Source§

fn lambda<L>(self, lambda: L) -> Lambda<D, Self, L>
where L: Fn(f64) -> f64,

Create a generator applying the supplied closure to results of the underlying generator. Read more
Source§

fn sum<G>(self, other: G) -> Sum<D, Self, G>
where G: Generator<D>,

Create a generator adding results of the underlying generator to results of a given other generator. Read more
Source§

fn product<G>(self, other: G) -> Product<D, Self, G>
where G: Generator<D>,

Create a generator multiplying results of the underlying generator to results of a given other generator. Read more
Source§

fn min<G>(self, other: G) -> Min<D, Self, G>
where G: Generator<D>,

Create a generator producing the minimum of results of the underlying generator and results of a given other generator. Read more
Source§

fn max<G>(self, other: G) -> Max<D, Self, G>
where G: Generator<D>,

Create a generator producing the maximum of results of the underlying generator and results of a given other generator. Read more
Source§

fn power<G>(self, other: G) -> Power<D, Self, G>
where G: Generator<D>,

Create a generator raising results of the underlying generator to the power of results of a given other generator. Read more
Source§

fn fbm( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Fbm<D, Self>

Create a generator applying fractal brownian motion on the underlying generator. Read more
Source§

fn billow( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Billow<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn ridgedmulti( self, octaves: u32, frequency: f64, lacunarity: f64, attenuation: f64, ) -> RidgedMulti<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn blend<G, GC>(self, other: G, control: GC) -> Blend<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator blending the underlying generator with a given other generator based on the value supplied by a control-generator. Read more
Source§

fn select<G, GC>( self, other: G, control: GC, selection_min: f64, selection_max: f64, ) -> Select<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator selecting the result of either the underlying generator or that of a given other generator based on whether the value supplied by a control-generator lies within the provided interval. Read more
Source§

fn spline<S>(self, knot_vector: &[f64], knots: &[f64]) -> Spline<D, Self, S>
where S: SplineImpl,

Create a generator returning the function value of a provided spline given the result of the underlying generator as input. Read more
Source§

impl Generator<3> for ImprovedPerlin<3>

Source§

fn sample(&self, point: [f64; 3]) -> f64

Samples the generator at a given point and returns the resulting value. Read more
Source§

fn scale(self, scale: [f64; D]) -> Scale<D, Self>

Create a generator which scales input points before passing them to the underlying generator. Read more
Source§

fn translate(self, translation: [f64; D]) -> Translate<D, Self>

Create a generator which translates input points before passing them to the underlying generator. Read more
Source§

fn neg(self) -> Neg<D, Self>

Create a generator which negates the results of the underlying generator. Read more
Source§

fn abs(self) -> Abs<D, Self>

Create a generator returning the absolute value of the results of the underlying generator. Read more
Source§

fn exp(self) -> Exp<D, Self>

Create a generator applying the exponential function on results of the underlying generator. Read more
Source§

fn add(self, offset: f64) -> Add<D, Self>

Create a generator adding offset to results of the underlying generator. Read more
Source§

fn mul(self, scale: f64) -> Mul<D, Self>

Create a generator multiplying scale to results of the underlying generator. Read more
Source§

fn powi(self, exponent: i32) -> Pow<D, Self, i32>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn powf(self, exponent: f64) -> Pow<D, Self, f64>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn clamp(self, min: f64, max: f64) -> Clamp<D, Self>

Create a generator clamping results of the underlying generator to a given interval. Read more
Source§

fn lambda<L>(self, lambda: L) -> Lambda<D, Self, L>
where L: Fn(f64) -> f64,

Create a generator applying the supplied closure to results of the underlying generator. Read more
Source§

fn sum<G>(self, other: G) -> Sum<D, Self, G>
where G: Generator<D>,

Create a generator adding results of the underlying generator to results of a given other generator. Read more
Source§

fn product<G>(self, other: G) -> Product<D, Self, G>
where G: Generator<D>,

Create a generator multiplying results of the underlying generator to results of a given other generator. Read more
Source§

fn min<G>(self, other: G) -> Min<D, Self, G>
where G: Generator<D>,

Create a generator producing the minimum of results of the underlying generator and results of a given other generator. Read more
Source§

fn max<G>(self, other: G) -> Max<D, Self, G>
where G: Generator<D>,

Create a generator producing the maximum of results of the underlying generator and results of a given other generator. Read more
Source§

fn power<G>(self, other: G) -> Power<D, Self, G>
where G: Generator<D>,

Create a generator raising results of the underlying generator to the power of results of a given other generator. Read more
Source§

fn fbm( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Fbm<D, Self>

Create a generator applying fractal brownian motion on the underlying generator. Read more
Source§

fn billow( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Billow<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn ridgedmulti( self, octaves: u32, frequency: f64, lacunarity: f64, attenuation: f64, ) -> RidgedMulti<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn blend<G, GC>(self, other: G, control: GC) -> Blend<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator blending the underlying generator with a given other generator based on the value supplied by a control-generator. Read more
Source§

fn select<G, GC>( self, other: G, control: GC, selection_min: f64, selection_max: f64, ) -> Select<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator selecting the result of either the underlying generator or that of a given other generator based on whether the value supplied by a control-generator lies within the provided interval. Read more
Source§

fn spline<S>(self, knot_vector: &[f64], knots: &[f64]) -> Spline<D, Self, S>
where S: SplineImpl,

Create a generator returning the function value of a provided spline given the result of the underlying generator as input. Read more
Source§

impl Generator<4> for ImprovedPerlin<4>

Source§

fn sample(&self, point: [f64; 4]) -> f64

Samples the generator at a given point and returns the resulting value. Read more
Source§

fn scale(self, scale: [f64; D]) -> Scale<D, Self>

Create a generator which scales input points before passing them to the underlying generator. Read more
Source§

fn translate(self, translation: [f64; D]) -> Translate<D, Self>

Create a generator which translates input points before passing them to the underlying generator. Read more
Source§

fn neg(self) -> Neg<D, Self>

Create a generator which negates the results of the underlying generator. Read more
Source§

fn abs(self) -> Abs<D, Self>

Create a generator returning the absolute value of the results of the underlying generator. Read more
Source§

fn exp(self) -> Exp<D, Self>

Create a generator applying the exponential function on results of the underlying generator. Read more
Source§

fn add(self, offset: f64) -> Add<D, Self>

Create a generator adding offset to results of the underlying generator. Read more
Source§

fn mul(self, scale: f64) -> Mul<D, Self>

Create a generator multiplying scale to results of the underlying generator. Read more
Source§

fn powi(self, exponent: i32) -> Pow<D, Self, i32>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn powf(self, exponent: f64) -> Pow<D, Self, f64>

Create a generator raising results of the underlying generator to the power of exponent. Read more
Source§

fn clamp(self, min: f64, max: f64) -> Clamp<D, Self>

Create a generator clamping results of the underlying generator to a given interval. Read more
Source§

fn lambda<L>(self, lambda: L) -> Lambda<D, Self, L>
where L: Fn(f64) -> f64,

Create a generator applying the supplied closure to results of the underlying generator. Read more
Source§

fn sum<G>(self, other: G) -> Sum<D, Self, G>
where G: Generator<D>,

Create a generator adding results of the underlying generator to results of a given other generator. Read more
Source§

fn product<G>(self, other: G) -> Product<D, Self, G>
where G: Generator<D>,

Create a generator multiplying results of the underlying generator to results of a given other generator. Read more
Source§

fn min<G>(self, other: G) -> Min<D, Self, G>
where G: Generator<D>,

Create a generator producing the minimum of results of the underlying generator and results of a given other generator. Read more
Source§

fn max<G>(self, other: G) -> Max<D, Self, G>
where G: Generator<D>,

Create a generator producing the maximum of results of the underlying generator and results of a given other generator. Read more
Source§

fn power<G>(self, other: G) -> Power<D, Self, G>
where G: Generator<D>,

Create a generator raising results of the underlying generator to the power of results of a given other generator. Read more
Source§

fn fbm( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Fbm<D, Self>

Create a generator applying fractal brownian motion on the underlying generator. Read more
Source§

fn billow( self, octaves: u32, frequency: f64, lacunarity: f64, persistence: f64, ) -> Billow<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn ridgedmulti( self, octaves: u32, frequency: f64, lacunarity: f64, attenuation: f64, ) -> RidgedMulti<D, Self>

Create a generator applying an fbm()-like effect on the underlying generator. Read more
Source§

fn blend<G, GC>(self, other: G, control: GC) -> Blend<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator blending the underlying generator with a given other generator based on the value supplied by a control-generator. Read more
Source§

fn select<G, GC>( self, other: G, control: GC, selection_min: f64, selection_max: f64, ) -> Select<D, Self, G, GC>
where G: Generator<D>, GC: Generator<D>,

Create a generator selecting the result of either the underlying generator or that of a given other generator based on whether the value supplied by a control-generator lies within the provided interval. Read more
Source§

fn spline<S>(self, knot_vector: &[f64], knots: &[f64]) -> Spline<D, Self, S>
where S: SplineImpl,

Create a generator returning the function value of a provided spline given the result of the underlying generator as input. Read more
Source§

impl Generator1D for ImprovedPerlin<1>

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. Read more
Source§

impl Generator2D for ImprovedPerlin<2>

Source§

fn rotate(self, rotation: [f64; 1]) -> Rotate<2, 1, Self>

Create a generator which rotates input points before passing them to the underlying generator. Read more
Source§

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

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

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

Create a generator providing the results of the underlying generator after displacing the y-coordinate by the result of the provided generator. Read more
Source§

impl Generator3D for ImprovedPerlin<3>

Source§

fn rotate(self, rotation: [f64; 3]) -> Rotate<3, 3, Self>

Create a generator which rotates input points before passing them to the underlying generator. Read more
Source§

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

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

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

Create a generator providing the results of the underlying generator after displacing the y-coordinate by the result of the provided generator. Read more
Source§

fn displace_z<GA>(self, displacement_generator: GA) -> Displace<3, 2, Self, GA>
where GA: Generator<3>,

Create a generator providing the results of the underlying generator after displacing the z-coordinate by the result of the provided generator. Read more
Source§

impl Generator4D for ImprovedPerlin<4>

Source§

fn rotate(self, rotation: [f64; 6]) -> Rotate<4, 6, Self>

Create a generator which rotates input points before passing them to the underlying generator. Read more
Source§

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

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

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

Create a generator providing the results of the underlying generator after displacing the y-coordinate by the result of the provided generator. Read more
Source§

fn displace_z<GA>(self, displacement_generator: GA) -> Displace<4, 2, Self, GA>
where GA: Generator<4>,

Create a generator providing the results of the underlying generator after displacing the z-coordinate by the result of the provided generator. Read more
Source§

fn displace_w<GA>(self, displacement_generator: GA) -> Displace<4, 3, Self, GA>
where GA: Generator<4>,

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

Auto Trait Implementations§

§

impl<const D: usize> Freeze for ImprovedPerlin<D>

§

impl<const D: usize> RefUnwindSafe for ImprovedPerlin<D>

§

impl<const D: usize> Send for ImprovedPerlin<D>

§

impl<const D: usize> Sync for ImprovedPerlin<D>

§

impl<const D: usize> Unpin for ImprovedPerlin<D>

§

impl<const D: usize> UnwindSafe for ImprovedPerlin<D>

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

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,

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

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

Source§

fn vzip(self) -> V