2013-12-31 14:50:28 +00:00
|
|
|
#ifndef NOISESTATE_H
|
|
|
|
#define NOISESTATE_H
|
|
|
|
|
|
|
|
#include "basics_global.h"
|
|
|
|
|
|
|
|
namespace paysages {
|
|
|
|
namespace basics {
|
|
|
|
|
|
|
|
/*!
|
|
|
|
* Fractal noise state, that can be saved to a file.
|
|
|
|
*
|
|
|
|
* This state contains the noise offsets for noise layers.
|
|
|
|
*/
|
|
|
|
class BASICSSHARED_EXPORT NoiseState
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
typedef struct {
|
|
|
|
double x;
|
|
|
|
double y;
|
|
|
|
double z;
|
|
|
|
} NoiseOffset;
|
|
|
|
|
|
|
|
public:
|
|
|
|
NoiseState();
|
|
|
|
|
|
|
|
void save(PackStream* stream) const;
|
|
|
|
void load(PackStream* stream);
|
|
|
|
void copy(NoiseState* destination) const;
|
|
|
|
|
|
|
|
void randomizeOffsets();
|
2013-12-31 14:56:30 +00:00
|
|
|
void resetOffsets(double x=0.0, double y=0.0, double z=0.0);
|
2013-12-31 14:50:28 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
std::vector<NoiseOffset> level_offsets;
|
|
|
|
|
|
|
|
friend class NoiseGenerator;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // NOISESTATE_H
|