Trait anl::ImplicitModule [] [src]

pub trait ImplicitModule {
    fn get_2d(&mut self, x: f64, y: f64) -> f64;
    fn get_3d(&mut self, x: f64, y: f64, z: f64) -> f64;
    fn get_4d(&mut self, x: f64, y: f64, z: f64, w: f64) -> f64;
    fn get_6d(&mut self, x: f64, y: f64, z: f64, w: f64, u: f64, v: f64) -> f64;
    fn spacing(&self) -> f64;
    fn set_deriv_spacing(&mut self, s: f64);

    fn set_seed(&mut self, _: u32) { ... }
    fn get_dx_2(&mut self, x: f64, y: f64) -> f64 { ... }
    fn get_dy_2(&mut self, x: f64, y: f64) -> f64 { ... }
    fn get_dx_3(&mut self, x: f64, y: f64, z: f64) -> f64 { ... }
    fn get_dy_3(&mut self, x: f64, y: f64, z: f64) -> f64 { ... }
    fn get_dz_3(&mut self, x: f64, y: f64, z: f64) -> f64 { ... }
    fn get_dx_4(&mut self, x: f64, y: f64, z: f64, w: f64) -> f64 { ... }
    fn get_dy_4(&mut self, x: f64, y: f64, z: f64, w: f64) -> f64 { ... }
    fn get_dz_4(&mut self, x: f64, y: f64, z: f64, w: f64) -> f64 { ... }
    fn get_dw_4(&mut self, x: f64, y: f64, z: f64, w: f64) -> f64 { ... }
    fn get_dx_6(
        &mut self,
        x: f64,
        y: f64,
        z: f64,
        w: f64,
        u: f64,
        v: f64
    ) -> f64 { ... } fn get_dy_6(
        &mut self,
        x: f64,
        y: f64,
        z: f64,
        w: f64,
        u: f64,
        v: f64
    ) -> f64 { ... } fn get_dz_6(
        &mut self,
        x: f64,
        y: f64,
        z: f64,
        w: f64,
        u: f64,
        v: f64
    ) -> f64 { ... } fn get_dw_6(
        &mut self,
        x: f64,
        y: f64,
        z: f64,
        w: f64,
        u: f64,
        v: f64
    ) -> f64 { ... } fn get_du_6(
        &mut self,
        x: f64,
        y: f64,
        z: f64,
        w: f64,
        u: f64,
        v: f64
    ) -> f64 { ... } fn get_dv_6(
        &mut self,
        x: f64,
        y: f64,
        z: f64,
        w: f64,
        u: f64,
        v: f64
    ) -> f64 { ... } }

Implicit modules output double-precision float values. Implicit functions are derived from ImplicitModule trait. Noise values are obtained by calling one of the get() methods provided, with the appropriate number of coordinates. Note that the performance of the system as a hold is affected by the dimensionality of the function called, so a 6D function will take significantly longer than a 2D function. Typical applications will probably stick with 2D or 3D versions; the higher orders are provided for the purpose of seamless mapping.

Required Methods

Provided Methods

Implementors