//Methods// public double GetValue(double x, double y, double z) { double a = Module0.GetValue(x, y, z); double b = Module1.GetValue(x, y, z); return(Math.Min(a, b)); }
//Methods// public double GetValue(double x, double y, double z) { double v1 = Module0.GetValue(x, y, z); double v2 = Module1.GetValue(x, y, z); double a = (ModuleA.GetValue(x, y, z) + 1.0) / 2.0; return(MathUtils.LinearInterp(v1, v2, a)); }
//Methods// public double GetValue(double x, double y, double z) { double xDisplace = x + XDisplaceModule.GetValue(x, y, z); double yDisplace = y + YDisplaceModule.GetValue(x, y, z); double zDisplace = z + ZDisplaceModule.GetValue(x, y, z); return(Module0.GetValue(xDisplace, yDisplace, zDisplace)); }
public double GetValue(double x, double y, double z) { double nx = (m_x1Matrix * x) + (m_y1Matrix * y) + (m_z1Matrix * z); double ny = (m_x2Matrix * x) + (m_y2Matrix * y) + (m_z2Matrix * z); double nz = (m_x3Matrix * x) + (m_y3Matrix * y) + (m_z3Matrix * z); return(Module0.GetValue(nx, ny, nz)); }
//Methods// public double GetValue(double x, double y, double z) { double controlValue = ModuleC.GetValue(x, y, z); double alpha; if (EdgeFallOff > 0.0) { if (controlValue < (LowerBound - EdgeFallOff)) { return(Module0.GetValue(x, y, z)); } else if (controlValue < (LowerBound + EdgeFallOff)) { double lowerCurve = (LowerBound - EdgeFallOff); double upperCurve = (LowerBound + EdgeFallOff); alpha = MathUtils.SCurve3((controlValue - lowerCurve) / (upperCurve - lowerCurve)); return(MathUtils.LinearInterp(Module0.GetValue(x, y, z), Module1.GetValue(x, y, z), alpha)); } else if (controlValue < (UpperBound - EdgeFallOff)) { //Output value from control module is within selector threshold. return(Module1.GetValue(x, y, z)); } else if (controlValue < (UpperBound + EdgeFallOff)) { double lowerCurve = (UpperBound - EdgeFallOff); double upperCurve = (UpperBound + EdgeFallOff); alpha = MathUtils.SCurve3((controlValue - lowerCurve) / (upperCurve - lowerCurve)); return(MathUtils.LinearInterp(Module1.GetValue(x, y, z), Module0.GetValue(x, y, z), alpha)); } else { return(Module0.GetValue(x, y, z)); } } else { if (controlValue < LowerBound || controlValue > UpperBound) { return(Module0.GetValue(x, y, z)); } else { return(Module1.GetValue(x, y, z)); } } }
//Methods// public double GetValue(double v) { double x = (m_x1 - m_x0) * v + m_x0; double y = (m_y1 - m_y0) * v + m_y0; double z = (m_z1 - m_z0) * v + m_z0; double value = Module0.GetValue(x, y, z); if (Attenuate) { return(v * (1.0 - v) * 4 * value); } else { return(value); } }
//Methods// public double GetValue(double x, double y, double z) { double value = Module0.GetValue(x, y, z); if (value < LowerBound) { return(LowerBound); } else if (value > UpperBound) { return(UpperBound); } else { return(value); } }
//Methods// public double GetValue(double x, double y, double z) { double value = Module0.GetValue(x, y, z); //Find the first element which has an input value larger than output value int indexPos; for (indexPos = 0; indexPos < ControlPoints.Count; indexPos++) { if (value < ControlPoints[indexPos]) { break; } } //Find two nearest control points to do quadratic interpolation int index0 = MathUtils.ClampValue(indexPos - 1, 0, ControlPoints.Count - 1); int index1 = MathUtils.ClampValue(indexPos, 0, ControlPoints.Count - 1); //If some points are missing, get nearest points value and exit now if (index0 == index1) { return(ControlPoints[index1]); } //Compute alpha value for cubic interpolation double value0 = ControlPoints[index0]; double value1 = ControlPoints[index1]; double alpha = (value - value0) / (value1 - value0); if (InvertTerraces) { alpha = 1.0 - alpha; MathUtils.SwapValues(ref value0, ref value1); } //Squaring alpha produces terrace effect. alpha *= alpha; //Now perform linear interpolation with the alpha return(MathUtils.LinearInterp(value0, value1, alpha)); }
//Methods// public double GetValue(double x, double y, double z) { //Get values from three Perlins double x0, y0, z0; double x1, y1, z1; double x2, y2, z2; x0 = x + (12414.0 / 65536.0); y0 = y + (65124.0 / 65536.0); z0 = z + (31337.0 / 65536.0); x1 = x + (26519.0 / 65536.0); y1 = y + (18128.0 / 65536.0); z1 = z + (60493.0 / 65536.0); x2 = x + (53820.0 / 65536.0); y2 = y + (11213.0 / 65536.0); z2 = z + (44845.0 / 65536.0); double xDistort = x + (XDistortModule.GetValue(x0, y0, z0) * Power); double yDistort = y + (YDistortModule.GetValue(x1, y1, z1) * Power); double zDistort = z + (ZDistortModule.GetValue(x2, y2, z2) * Power); //Retrieve the output value return(Module0.GetValue(xDistort, yDistort, zDistort)); }
//Methods// public double GetValue(double x, double y, double z) { return(Module0.GetValue(x + XTranslation, y + YTranslation, z + ZTranslation)); }
//Methods// public double GetValue(double x, double y, double z) { return(Math.Pow(Module0.GetValue(x, y, z), Module1.GetValue(x, y, z))); }
//Methods// public double GetValue(double x, double y, double z) { return(Module0.GetValue(x, y, z) + Module1.GetValue(x, y, z)); }
//Methods// public double GetValue(double x, double y, double z) { double value = Module0.GetValue(x, y, z); return(Math.Pow(Math.Abs((value + 1.0) / 2.0), ExponentVal) * 2.0 - 1.0); }
//Methods// public double GetValue(double x, double y, double z) { return(Module0.GetValue(x, y, z) * Scale + Bias); }
//Methods// public double GetValue(double x, double y, double z) { return(Module0.GetValue(x * XScale, y * YScale, z * ZScale)); }