#pragma once #include #include #include "SimplexNoise.h" #include "Synth.h" class Random; class SimplexNoise; class PerlinSimplexNoise : public Synth { private: SimplexNoise** noiseLevels; int levels; public: PerlinSimplexNoise(int levels); PerlinSimplexNoise(Random* random, int levels); void init(Random* random, int levels); ~PerlinSimplexNoise(); virtual double getValue(double x, double y); double getValue(double x, double y, double z); std::vector getRegion(std::vector& buffer, double x, double y, int xSize, int ySize, double xScale, double yScale, double sizeScale); std::vector getRegion(std::vector& buffer, double x, double y, int xSize, int ySize, double xScale, double yScale, double sizeScale, double powScale); std::vector getRegion(std::vector& buffer, double x, double y, double z, int xSize, int ySize, int zSize, double xScale, double yScale, double zScale); };