2016-05-17 03:04:11 +12:00
|
|
|
#pragma once
|
|
|
|
|
2016-03-19 06:57:51 +13:00
|
|
|
#ifndef PERLINNOISE_H
|
|
|
|
#define PERLINOISE_H
|
2016-04-15 21:51:36 +12:00
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
2016-03-19 06:57:51 +13:00
|
|
|
#include "tfxparam.h"
|
|
|
|
#include "tspectrumparam.h"
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
enum { PNOISE_CLOUDS, PNOISE_WOODS };
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
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);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
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);
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
/*---------------------------------------------------------------------------*/
|
2016-06-15 18:43:10 +12:00
|
|
|
void doClouds(const TRasterP &ras, const TSpectrumParamP colors, TPointD pos,
|
|
|
|
double evolution, double size, double min, double max, int type,
|
|
|
|
double scale, double frame);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#endif
|