2013-11-15 22:26:44 +00:00
|
|
|
#ifndef CLOUDLAYERDEFINITION_H
|
|
|
|
#define CLOUDLAYERDEFINITION_H
|
|
|
|
|
|
|
|
#include "definition_global.h"
|
|
|
|
|
2015-08-12 20:21:10 +00:00
|
|
|
#include "DefinitionNode.h"
|
2013-11-15 22:26:44 +00:00
|
|
|
|
2013-12-31 14:50:28 +00:00
|
|
|
#include "NoiseState.h"
|
|
|
|
|
2013-11-15 22:26:44 +00:00
|
|
|
namespace paysages {
|
|
|
|
namespace definition {
|
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
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();
|
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
inline const NoiseState &getNoiseState() const {
|
|
|
|
return noise_state;
|
|
|
|
}
|
|
|
|
inline FloatNode *propXOffset() const {
|
|
|
|
return xoffset;
|
|
|
|
}
|
|
|
|
inline FloatNode *propZOffset() const {
|
|
|
|
return zoffset;
|
|
|
|
}
|
2013-12-31 14:50:28 +00:00
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
static CloudLayerDefinition *newCopy(const CloudLayerDefinition &other, DefinitionNode *parent);
|
|
|
|
CloudLayerDefinition *newCopy(DefinitionNode *parent) const;
|
2013-11-15 22:26:44 +00:00
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
virtual void save(PackStream *pack) const override;
|
|
|
|
virtual void load(PackStream *pack) override;
|
2013-11-15 22:26:44 +00:00
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
virtual void copy(DefinitionNode *destination) const override;
|
2013-11-15 22:26:44 +00:00
|
|
|
virtual void validate() override;
|
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
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;
|
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
public:
|
2013-11-15 22:26:44 +00:00
|
|
|
CloudsType type;
|
2013-12-31 14:50:28 +00:00
|
|
|
NoiseState noise_state;
|
2013-12-04 21:52:18 +00:00
|
|
|
double altitude;
|
|
|
|
double scaling;
|
|
|
|
double coverage;
|
2015-10-15 15:52:03 +00:00
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
private:
|
2015-10-15 15:52:03 +00:00
|
|
|
FloatNode *xoffset;
|
|
|
|
FloatNode *zoffset;
|
2013-11-15 22:26:44 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // CLOUDLAYERDEFINITION_H
|