public override float GetHeight(float x, float z)
        {
            float mainHeight = MainNoiseProvider.GetValue(x, z);

            float modulationHeight = ModulationNoiseProvider.GetValue(x, z);

            modulationHeight = (float)Math.Pow(modulationHeight, 2);

            return((mainHeight * modulationHeight - 0.15f) * HeightScale);
        }
        public override float GetHeight(double x, double y, double z)
        {
            float mainHeight = MainNoiseProvider.GetValue(x, y, z);

            mainHeight = (float)Math.Pow(mainHeight, 3);

            float modulationHeight = ModulationNoiseProvider.GetValue(x, y, z);

            modulationHeight = (float)Math.Pow(modulationHeight, 2);

            return(mainHeight * modulationHeight * HeightScale);
        }