Struct anl::ImplicitGradient
[−]
[src]
pub struct ImplicitGradient { /* fields omitted */ }
Gradient has the effect of allowing you to specify a line segment in N-dimensional space by setting endpoints. The endpoints are set via set_gradient()
and the segment extends from P1=(x1,y1,z1,w1,u1,v1) to P2=(x2,y2,z2,w2,u2,v2). Only the coordinates pertinent to the dimensionality of the function being called are used, however. A gradient field is aligned with this segment such that any input coordinate is projected onto the line formed by the segment, and a value is assigned based on where on the line the projected point lies. If it lies on or beyond P1, the value is assigned as 0. If it lies on or beyond P2 the value is assigned as 1. Anything in between is assigned as a linear interpolation between 0 and 1. (This behavior may be changing; I may remove the clamping aspect, and allow values to go infinitely depending on distance from the "origin" point. Some useful things could be done in this fashion.) The result is a smooth gradient field oriented along an axis.
Methods
impl ImplicitGradient
[src]
fn new() -> ImplicitGradient
fn set_gradient(
&mut self,
x1: f64,
x2: f64,
y1: f64,
y2: f64,
z1: f64,
z2: f64,
w1: f64,
w2: f64,
u1: f64,
u2: f64,
v1: f64,
v2: f64
)
&mut self,
x1: f64,
x2: f64,
y1: f64,
y2: f64,
z1: f64,
z2: f64,
w1: f64,
w2: f64,
u1: f64,
u2: f64,
v1: f64,
v2: f64
)