#ifndef PERLINNOISE_H
#define PERLINOISE_H
#include <memory>
#include "tfxparam.h"
#include "tspectrumparam.h"
enum {
PNOISE_CLOUDS,
PNOISE_WOODS
};
class PerlinNoise
{
static int Size;
static int TimeSize;
static int Offset;
static double Pixel_size;
std::unique_ptr<float[]> Noise;
double LinearNoise(double x, double y, double t);
public:
PerlinNoise();
double Turbolence(double u, double v, double k, double grain);
double Turbolence(double u, double v, double k, double grain, double min, double max);
double Marble(double u, double v, double k, double grain);
double Marble(double u, double v, double k, double grain, double min, double max);
};
/*---------------------------------------------------------------------------*/
void doClouds(
const TRasterP &ras,
const TSpectrumParamP colors,
TPointD pos,
double evolution,
double size,
double min,
double max,
int type,
double scale,
double frame);
#endif