summaryrefslogblamecommitdiffstats
path: root/source/cNoise.h
blob: 538970da31411272be54a6758e6a0f099cba0da1 (plain) (tree)
































                                                                                                 
#pragma once

class cNoise
{
public:
	cNoise( unsigned int a_Seed );
	~cNoise();

	float IntNoise( int a_X ) const;
	float IntNoise2D( int a_X, int a_Y ) const;
	float IntNoise3D( int a_X, int a_Y, int a_Z ) const;

	float LinearNoise1D( float a_X ) const;
	float CosineNoise1D( float a_X ) const;
	float CubicNoise1D( float a_X ) const;
	float SmoothNoise1D( int a_X ) const;

	float LinearNoise2D( float a_X, float a_Y ) const;
	float CosineNoise2D( float a_X, float a_Y ) const;
	float CubicNoise2D( float a_X, float a_Y ) const;

	float CosineNoise3D( float a_X, float a_Y, float a_Z ) const;
	float CubicNoise3D( float a_X, float a_Y, float a_Z ) const;

	void SetSeed( unsigned int a_Seed ) { m_Seed = a_Seed; }
private:
	float CubicInterpolate( float a_A, float a_B, float a_C, float a_D, float a_Pct ) const;
	float CosineInterpolate( float a_A, float a_B, float a_Pct ) const;
	float LinearInterpolate( float a_A, float a_B, float a_Pct ) const;

	unsigned int m_Seed;
};