35 lines
1,017 B
C++
35 lines
1,017 B
C++
#pragma once
|
|
|
|
#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
|