}
@Override
public double GetValue(double x, double y, double z) {
if (SourceModule[0] == null)
throw new NoModuleException();
if (SourceModule[1] == null)
throw new NoModuleException();
if (SourceModule[2] == null)
throw new NoModuleException();
double v0 = SourceModule[0].GetValue(x, y, z);
double v1 = SourceModule[1].GetValue(x, y, z);
double alpha = (SourceModule[2].GetValue(x, y, z) + 1.0) / 2.0;
return Utils.LinearInterp(v0, v1, alpha);