/*
	ZSimplexNoise.hpp
	Author : Chris Ertel

	Purpose :	Math namespace for the ZEngine which will contain functions for mathematical operations on primitives
				and arrays of primitives.

	Changelog
	2/13/11 - Creation (crertel)
*/

#pragma once

#ifndef _ZSIMPLEXNOISE_H
#define _ZSIMPLEXNOISE_H

#include <ZUtil/ZNoise.hpp>
#include <SST/SST_SimplexNoise.h>

class ZSimplexNoise : public ZNoise
{
protected:
	SST_SimplexNoise simplexGenerator;

public:
	ZSimplexNoise();
	virtual ~ZSimplexNoise() {}

	//Subclass implementation
	void reseed(const int _seed);
	//Subclass implementation
	float noise1(const float _x);
	//Subclass implementation
	float noise2(const float _x, const float _y);
	//Subclass implementation
	float noise3(const float _x, const float _y, const float _z);
	//Subclass implementation
	float noise4(const float _x, const float _y, const float _z, const float _w);
};

#endif
