paysages3d/src/definition/CloudLayerDefinition.h

63 lines
1.4 KiB
C
Raw Normal View History

2013-11-15 22:26:44 +00:00
#ifndef CLOUDLAYERDEFINITION_H
#define CLOUDLAYERDEFINITION_H
#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
2013-11-15 22:26:44 +00:00
{
public:
CloudLayerDefinition(DefinitionNode* parent);
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;
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;
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
};
}
}
#endif // CLOUDLAYERDEFINITION_H