2013-11-15 23:27:40 +00:00
|
|
|
#ifndef ATMOSPHEREDEFINITION_H
|
|
|
|
#define ATMOSPHEREDEFINITION_H
|
|
|
|
|
|
|
|
#include "definition_global.h"
|
|
|
|
|
|
|
|
#include "BaseDefinition.h"
|
|
|
|
|
2013-12-26 16:30:22 +00:00
|
|
|
#include "Vector3.h"
|
2013-11-15 23:27:40 +00:00
|
|
|
#include "Color.h"
|
|
|
|
|
|
|
|
namespace paysages {
|
|
|
|
namespace definition {
|
|
|
|
|
2014-03-01 00:34:34 +00:00
|
|
|
class DEFINITIONSHARED_EXPORT AtmosphereDefinition : public BaseDefinition
|
2013-11-15 23:27:40 +00:00
|
|
|
{
|
2013-12-26 16:30:22 +00:00
|
|
|
public:
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
Vector3 location;
|
|
|
|
double radius;
|
|
|
|
Color col;
|
|
|
|
} Star;
|
|
|
|
|
2013-11-15 23:27:40 +00:00
|
|
|
public:
|
|
|
|
typedef enum
|
|
|
|
{
|
2013-12-15 13:28:46 +00:00
|
|
|
ATMOSPHERE_MODEL_DISABLED = 0,
|
|
|
|
ATMOSPHERE_MODEL_BRUNETON = 1
|
2013-11-15 23:27:40 +00:00
|
|
|
} AtmosphereModel;
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
ATMOSPHERE_PRESET_CLEAR_DAY = 0,
|
|
|
|
ATMOSPHERE_PRESET_CLEAR_SUNSET = 1,
|
|
|
|
ATMOSPHERE_PRESET_HAZY_MORNING = 2,
|
|
|
|
ATMOSPHERE_PRESET_FOGGY = 3,
|
|
|
|
ATMOSPHERE_PRESET_STORMY = 4
|
|
|
|
} AtmospherePreset;
|
|
|
|
|
|
|
|
public:
|
|
|
|
AtmosphereDefinition(BaseDefinition* parent);
|
|
|
|
virtual ~AtmosphereDefinition();
|
|
|
|
|
|
|
|
virtual void save(PackStream* stream) const override;
|
|
|
|
virtual void load(PackStream* stream) override;
|
|
|
|
|
|
|
|
virtual void copy(BaseDefinition* destination) const override;
|
|
|
|
virtual void validate() override;
|
|
|
|
|
2014-08-28 13:09:47 +00:00
|
|
|
/**
|
|
|
|
* Set the daytime from a 0.0-1.0 value.
|
|
|
|
*/
|
|
|
|
void setDaytime(double value);
|
|
|
|
|
2013-11-15 23:27:40 +00:00
|
|
|
void applyPreset(AtmospherePreset preset);
|
2013-12-26 16:30:22 +00:00
|
|
|
void generateStars(int count);
|
2013-11-15 23:27:40 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
AtmosphereModel model;
|
|
|
|
int hour;
|
|
|
|
int minute;
|
|
|
|
double humidity;
|
|
|
|
Color sun_color;
|
|
|
|
double sun_radius;
|
|
|
|
double dome_lighting;
|
|
|
|
|
2013-12-26 15:55:37 +00:00
|
|
|
double moon_radius;
|
|
|
|
double moon_theta;
|
|
|
|
double moon_phi;
|
|
|
|
|
2013-11-15 23:27:40 +00:00
|
|
|
double _daytime;
|
2013-12-26 16:30:22 +00:00
|
|
|
|
|
|
|
std::vector<Star> stars;
|
2013-11-15 23:27:40 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // ATMOSPHEREDEFINITION_H
|