186 lines
3.9 KiB
C++
186 lines
3.9 KiB
C++
/*
|
|
ZNoiseMap.hpp
|
|
Author : Chris Ertel
|
|
|
|
Purpose : Interface to create a map for noise values.
|
|
|
|
Changelog
|
|
2/13/11 - Creation (crertel)
|
|
2/20/11 - Changed interface to be useful. (crertel)
|
|
*/
|
|
|
|
#ifndef _ZNOISEMAP_H
|
|
#define _ZNOISEMAP_H
|
|
|
|
#include <ZUtil/ZSimplexNoise.hpp>
|
|
|
|
class ZNoiseMap
|
|
{
|
|
public:
|
|
virtual ~ZNoiseMap() {}
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetDimensionality
|
|
|
|
Gets dimension of noise map (1,2,etc.).
|
|
|
|
@return (int) - dimension of noise map
|
|
*/
|
|
virtual int GetDimensionality() = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetLacunarity
|
|
|
|
Get lacunarity (scaling of successive frequencies in noise series).
|
|
|
|
@return (float) - lacunarity of noise map
|
|
*/
|
|
virtual float GetLacunarity() = 0; // scaling of successive frequencies in noise octaves
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetPersistence
|
|
|
|
Get persistence (scaling of successive amplitudes in noise series).
|
|
|
|
@return (float)
|
|
*/
|
|
virtual float GetPersistence() = 0; // scaling of successive amplitudes in noise octaves
|
|
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetNumberOfOctaves
|
|
|
|
Get number of octaves in noise series.
|
|
|
|
@return (int) - number of terms in noise series.
|
|
*/
|
|
virtual int GetNumberOfOctaves() = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetNumberSamplesInX
|
|
|
|
Get number of samples in X dimensions of noise map.
|
|
|
|
@return (int) - number of samples in X.
|
|
*/
|
|
virtual int GetNumberSamplesInX() = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetNumberSamplesInY
|
|
|
|
Get number of samples in Y dimensions of noise map.
|
|
|
|
@return (int) - number of samples in Y.
|
|
*/
|
|
virtual int GetNumberSamplesInY() = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetNumberSamplesInZ
|
|
|
|
Get number of samples in Z dimensions of noise map.
|
|
|
|
@return (int) - number of samples in Z.
|
|
*/
|
|
virtual int GetNumberSamplesInZ() = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::GetNumberSamplesInW
|
|
|
|
Get number of samples in Z dimensions of noise map.
|
|
|
|
@return (int) - number of samples in W.
|
|
*/
|
|
virtual int GetNumberSamplesInW() = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::SetLacunarity
|
|
|
|
Sets the lacunarity (scaling of successive frequencies in noise series).
|
|
|
|
@param _lac - lacunarity to use.
|
|
@return (void)
|
|
*/
|
|
virtual void SetLacunarity(float _lac) = 0; // scaling of successive frequencies in noise octaves
|
|
|
|
/*
|
|
virtual public ZNoiseMap::SetPersistence
|
|
|
|
Sets the persistence (scaling of successive amplitudes in noise series).
|
|
|
|
@param _per - persistence to set noise map to.
|
|
@return (void)
|
|
*/
|
|
virtual void SetPersistence(float _per) = 0; // scaling of successive amplitudes in noise octaves
|
|
|
|
/*
|
|
virtual public ZNoiseMap::SetNumberOfOctaves
|
|
|
|
Set number of octave in noise series.
|
|
|
|
@param _numOctaves - number of octaves to use.
|
|
@return (void)
|
|
*/
|
|
virtual void SetNumberOfOctaves(int _numOctaves ) = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::SetNumberSamplesInX
|
|
|
|
Sets number of samples in X direction.
|
|
|
|
@param _numSamples - number of samples in X direction.
|
|
@return (void)
|
|
*/
|
|
virtual void SetNumberSamplesInX(int _numSamples) = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::SetNumberSamplesInY
|
|
|
|
Sets number of samples in Y direction.
|
|
|
|
@param _numSamples - number of samples in Y direction.
|
|
@return (void)
|
|
*/
|
|
virtual void SetNumberSamplesInY(int _numSamples) = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::SetNumberSamplesInZ
|
|
|
|
Sets number of samples in Z direction.
|
|
|
|
@param _numSamples - number of samples in Z direction.
|
|
@return (void)
|
|
*/
|
|
virtual void SetNumberSamplesInZ(int _numSamples) = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::SetNumberSamplesInW
|
|
|
|
Sets number of samples in W direction.
|
|
|
|
@param _numSamples - number of samples in W direction.
|
|
@return (void)
|
|
*/
|
|
virtual void SetNumberSamplesInW(int _numSamples) = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::Generate
|
|
|
|
Generates noise map values.
|
|
|
|
@return (bool) - True if successful, false otherwise.
|
|
*/
|
|
virtual bool Generate(int _seed) = 0;
|
|
|
|
/*
|
|
virtual public ZNoiseMap::Cleanup
|
|
|
|
Cleans up resources for noise map.
|
|
|
|
@return (void)
|
|
*/
|
|
virtual void Cleanup() = 0;
|
|
};
|
|
|
|
#endif
|
|
|