paysages3d/src/basics/NoiseState.h

47 lines
874 B
C
Raw Normal View History

#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);
void setLevel(int level, double x, double y, double z);
void setLevelCount(int level_count);
private:
std::vector<NoiseOffset> level_offsets;
friend class NoiseGenerator;
friend class FractalNoise;
};
}
}
#endif // NOISESTATE_H