Projet server.
This commit is contained in:
51
SQCSim-common/opensimplex.h
Normal file
51
SQCSim-common/opensimplex.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
Open Simple Noise for C++
|
||||
|
||||
Port to C++ from https://gist.github.com/KdotJPG/b1270127455a94ac5d19
|
||||
by Rickard Lundberg, 2019.
|
||||
*/
|
||||
#ifndef _OPENSIMPLEX_H__
|
||||
#define _OPENSIMPLEX_H__
|
||||
|
||||
#include <cstdint>
|
||||
#include <array>
|
||||
|
||||
namespace OpenSimplexNoise
|
||||
{
|
||||
class Noise
|
||||
{
|
||||
public:
|
||||
Noise();
|
||||
Noise(int64_t seed);
|
||||
//2D Open Simplex Noise.
|
||||
double eval(const double x, const double y) const;
|
||||
//3D Open Simplex Noise.
|
||||
double eval(double x, double y, double z) const;
|
||||
//4D Open Simplex Noise.
|
||||
double eval(double x, double y, double z, double w) const;
|
||||
private:
|
||||
const double m_stretch2d;
|
||||
const double m_squish2d;
|
||||
const double m_stretch3d;
|
||||
const double m_squish3d;
|
||||
const double m_stretch4d;
|
||||
const double m_squish4d;
|
||||
|
||||
const double m_norm2d;
|
||||
const double m_norm3d;
|
||||
const double m_norm4d;
|
||||
|
||||
const long m_defaultSeed;
|
||||
|
||||
std::array<short, 256> m_perm;
|
||||
std::array<short, 256> m_permGradIndex3d;
|
||||
std::array<char, 16> m_gradients2d;
|
||||
std::array<char, 72> m_gradients3d;
|
||||
std::array<char, 256> m_gradients4d;
|
||||
double extrapolate(int xsb, int ysb, double dx, double dy) const;
|
||||
double extrapolate(int xsb, int ysb, int zsb, double dx, double dy, double dz) const;
|
||||
double extrapolate(int xsb, int ysb, int zsb, int wsb, double dx, double dy, double dz, double dw) const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // _OPENSIMPLEX_H__
|
Reference in New Issue
Block a user