paysages3d/src/definition/CloudLayerDefinition.h

64 lines
1.4 KiB
C
Raw Normal View History

#pragma once
2013-11-15 22:26:44 +00:00
#include "definition_global.h"
#include "DefinitionNode.h"
2013-11-15 22:26:44 +00:00
#include "NoiseState.h"
2013-11-15 22:26:44 +00:00
namespace paysages {
namespace definition {
class DEFINITIONSHARED_EXPORT CloudLayerDefinition : public DefinitionNode {
public:
2015-12-10 23:36:50 +00:00
CloudLayerDefinition(DefinitionNode *parent, const string &name);
2013-11-15 22:26:44 +00:00
virtual ~CloudLayerDefinition();
inline const NoiseState &getNoiseState() const {
return noise_state;
}
inline FloatNode *propXOffset() const {
return xoffset;
}
inline FloatNode *propZOffset() const {
return zoffset;
}
static CloudLayerDefinition *newCopy(const CloudLayerDefinition &other, DefinitionNode *parent);
CloudLayerDefinition *newCopy(DefinitionNode *parent) const;
2013-11-15 22:26:44 +00:00
virtual void save(PackStream *pack) const override;
virtual void load(PackStream *pack) override;
2013-11-15 22:26:44 +00:00
virtual void copy(DefinitionNode *destination) const override;
2013-11-15 22:26:44 +00:00
virtual void validate() override;
public:
typedef enum {
2013-12-04 21:52:18 +00:00
STRATUS,
NIMBOSTRATUS,
CUMULUS,
STRATOCUMULUS,
ALTOCUMULUS,
ALTOSTRATUS,
CUMULONIMBUS,
CIRROCUMULUS,
CIRROSTRATUS,
2016-02-01 19:38:29 +00:00
CIRRUS,
_COUNT
2013-11-15 22:26:44 +00:00
} CloudsType;
public:
2013-11-15 22:26:44 +00:00
CloudsType type;
NoiseState noise_state;
2013-12-04 21:52:18 +00:00
double altitude;
double scaling;
double coverage;
private:
FloatNode *xoffset;
FloatNode *zoffset;
2013-11-15 22:26:44 +00:00
};
}
}