paysages3d/src/definition/NoiseNode.h

41 lines
876 B
C++

#ifndef NOISENODE_H
#define NOISENODE_H
#include "definition_global.h"
#include "DefinitionNode.h"
namespace paysages {
namespace definition {
/**
* Definition node with noise parameters.
*/
class DEFINITIONSHARED_EXPORT NoiseNode : public DefinitionNode {
public:
NoiseNode(DefinitionNode *parent);
virtual ~NoiseNode();
inline const NoiseGenerator *getGenerator() {
return noise;
}
/**
* Set the number of levels to use in the noise generator.
*/
void setLevels(int levels, double min_value = -1.0, double max_value = 1.0);
protected:
virtual void save(PackStream *stream) const override;
virtual void load(PackStream *stream) override;
virtual void copy(DefinitionNode *destination) const override;
virtual void validate() override;
private:
NoiseGenerator *noise;
};
}
}
#endif // NOISENODE_H