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-08-12 20:21:10 +00:00
|
|
|
class DEFINITIONSHARED_EXPORT CloudLayerDefinition : public DefinitionNode
|
2013-11-15 22:26:44 +00:00
|
|
|
{
|
|
|
|
public:
|
2015-08-12 20:21:10 +00:00
|
|
|
CloudLayerDefinition(DefinitionNode* parent);
|
2013-11-15 22:26:44 +00:00
|
|
|
virtual ~CloudLayerDefinition();
|
|
|
|
|
2013-12-31 14:50:28 +00:00
|
|
|
inline const NoiseState &getNoiseState() const {return noise_state;}
|
2015-10-15 15:52:03 +00:00
|
|
|
inline FloatNode *propXOffset() const {return xoffset;}
|
|
|
|
inline FloatNode *propZOffset() const {return zoffset;}
|
2013-12-31 14:50:28 +00:00
|
|
|
|
2015-08-12 20:21:10 +00:00
|
|
|
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;
|
|
|
|
|
2015-08-12 20:21:10 +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,
|
|
|
|
CIRRUS
|
2013-11-15 22:26:44 +00:00
|
|
|
} CloudsType;
|
|
|
|
|
|
|
|
public:
|
|
|
|
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
|
|
|
|
|
|
|
private:
|
|
|
|
FloatNode *xoffset;
|
|
|
|
FloatNode *zoffset;
|
2013-11-15 22:26:44 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // CLOUDLAYERDEFINITION_H
|