paysages3d/src/basics/NoiseState.h

42 lines
676 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();
private:
std::vector<NoiseOffset> level_offsets;
friend class NoiseGenerator;
};
}
}
#endif // NOISESTATE_H