virtual void execute(Scene * scene){ const vector<Atmosphere*> & atmospheres = scene->getAtmospheres(); for (vector<Atmosphere *>::const_iterator it = atmospheres.begin(); it != atmospheres.end(); it++){ Atmosphere * atmosphere = *it; atmosphere->interpret(message); } }
void apply(Atmosphere& atmo) { if (visibility.isSet()) { atmo.GetConditions().SetVisibility(visibility.get()); visibility.clear(); } if (rain.isSet()) { atmo.GetConditions().SetPrecipitation(CloudLayer::NONE, 0.0); atmo.GetConditions().SetPrecipitation(CloudLayer::RAIN, rain.get()); rain.clear(); } if (snow.isSet()) { atmo.GetConditions().SetPrecipitation(CloudLayer::NONE, 0.0); atmo.GetConditions().SetPrecipitation(CloudLayer::DRY_SNOW, snow.get()); snow.clear(); } if (lighting.isSet()) { sky->setLighting(lighting.get()); lighting.clear(); } }
void onInitialize(Atmosphere& atmosphere) { CloudLayer cumulus = CloudLayerFactory::Create(CUMULUS_CONGESTUS); cumulus.SetIsInfinite(true); cumulus.SetBaseAltitude(3000); cumulus.SetThickness(50); cumulus.SetBaseLength(100000); cumulus.SetBaseWidth(100000); cumulus.SetDensity(1.0); cumulus.SetLayerPosition(0,0); cumulus.SetFadeTowardEdges(true); cumulus.SetAlpha(0.8); cumulus.SetCloudAnimationEffects(0.1, false, 0, 0); cumulus.SeedClouds(atmosphere); atmosphere.GetConditions().AddCloudLayer(cumulus); atmosphere.EnableLensFlare(true); }
void apply(Atmosphere& atmo) { if (visibility.isSet()) { atmo.GetConditions().SetVisibility(visibility.get()); visibility.unset(); } if (rain.isSet()) { atmo.GetConditions().SetPrecipitation(CloudLayer::NONE, 0.0); atmo.GetConditions().SetPrecipitation(CloudLayer::RAIN, rain.get()); rain.unset(); } if (snow.isSet()) { atmo.GetConditions().SetPrecipitation(CloudLayer::NONE, 0.0); atmo.GetConditions().SetPrecipitation(CloudLayer::DRY_SNOW, snow.get()); snow.unset(); } }
void AtmosphericData::Update(Atmosphere& atmosphere, F32 altitude) { *this = atmosphere.GetAtmosphericData(altitude); }