using System; using System.Diagnostics; namespace LibNoise.Operator { /// /// Provides a noise module that outputs value from a first source module /// to the power of the output value from a second source module. [OPERATOR] /// public class Power : ModuleBase { #region Constructors /// /// Initializes a new instance of Power. /// public Power() : base(2) { } /// /// Initializes a new instance of Power. /// /// The left hand input module. /// The right hand input module. public Power(ModuleBase lhs, ModuleBase rhs) : base(2) { Modules[0] = lhs; Modules[1] = rhs; } #endregion #region ModuleBase Members /// /// Returns the output value for the given input coordinates. /// /// The input coordinate on the x-axis. /// The input coordinate on the y-axis. /// The input coordinate on the z-axis. /// The resulting output value. public override double GetValue(double x, double y, double z) { Debug.Assert(Modules[0] != null); Debug.Assert(Modules[1] != null); return Math.Pow(Modules[0].GetValue(x, y, z), Modules[1].GetValue(x, y, z)); } #endregion } }