paysages3d/src/definition/CloudLayerDefinition.h

57 lines
1.2 KiB
C++

#ifndef CLOUDLAYERDEFINITION_H
#define CLOUDLAYERDEFINITION_H
#include "definition_global.h"
#include "BaseDefinition.h"
#include "NoiseState.h"
namespace paysages {
namespace definition {
class DEFINITIONSHARED_EXPORT CloudLayerDefinition : public BaseDefinition
{
public:
CloudLayerDefinition(BaseDefinition* parent);
virtual ~CloudLayerDefinition();
inline const NoiseState &getNoiseState() const {return noise_state;}
static CloudLayerDefinition* newCopy(const CloudLayerDefinition& other, BaseDefinition* parent);
CloudLayerDefinition* newCopy(BaseDefinition* parent) const;
virtual void save(PackStream* pack) const override;
virtual void load(PackStream* pack) override;
virtual void copy(BaseDefinition* destination) const override;
virtual void validate() override;
public:
typedef enum
{
STRATUS,
NIMBOSTRATUS,
CUMULUS,
STRATOCUMULUS,
ALTOCUMULUS,
ALTOSTRATUS,
CUMULONIMBUS,
CIRROCUMULUS,
CIRROSTRATUS,
CIRRUS
} CloudsType;
public:
CloudsType type;
NoiseState noise_state;
double altitude;
double scaling;
double coverage;
};
}
}
#endif // CLOUDLAYERDEFINITION_H