pub trait ImplicitModule {
Show 22 methods
// Required methods
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);
// Provided methods
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 { ... }
}
Expand description
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.