/*
Copyright (C) 1997, 1998, 1999, 2000 by Alex Pfaffe
(Digital Dawn Graphics Inc)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _ddgNoise_Class_
#define _ddgNoise_Class_
#include "util/ddg.h"
class WEXP ddgNoise
{
static double bias(double a, double b);
static double gain(double a, double b);
static void normalize2(double *a );
static void normalize3(double *a );
static void init(void );
public:
static double noise1(double point);
static double noise2(double *point);
static double noise3(double *point);
static double noise(double *point, int len);
static double turbulence(double *point, double freq);
static double onoise(double *point, double freq);
static double cloud( double *point, double freq, int cc, double cs );
static double fBm( double* point, double H, double lacunarity, double octaves);
static double multifractal( double* point, double H, double lacunarity, double octaves, double offset );
static double hybridmultifractal( double* point, double H, double lacunarity, double octaves, double offset );
static double four_noise(double* point, double time);
};
#endif