1
0
Fork 0

Add properties to allow control of precipitation level externally.

This commit is contained in:
Stuart Buchanan 2012-11-27 22:17:30 +00:00
parent a28fe51ccf
commit fe1d04df8a

View file

@ -124,7 +124,7 @@ osg::Group * FGPrecipitationMgr::getObject(void)
* @returns Elevation max in meter
*
* This function permits you to know what is the altitude max where we can
* find precipitation. The value is returned in meter.
* find precipitation. The value is returned in meters.
*/
float FGPrecipitationMgr::getPrecipitationAtAltitudeMax(void)
{
@ -133,6 +133,11 @@ float FGPrecipitationMgr::getPrecipitationAtAltitudeMax(void)
float result;
SGPropertyNode *boundaryNode, *boundaryEntry;
if (fgGetBool("/environment/params/use-external-precipitation-level", false)) {
// If we're not modeling the precipitation level based on the cloud
// layers, take it directly from the property tree.
return fgGetFloat("/environment/params/external-precipitation-level-m", 0.0);
}
// By default (not cloud layer)
max = SGCloudLayer::SG_MAX_CLOUD_COVERAGES;
@ -216,18 +221,18 @@ void FGPrecipitationMgr::update(double dt)
altitudeCloudLayer = this->getPrecipitationAtAltitudeMax() * SG_METER_TO_FEET;
setPrecipitationLevel(altitudeCloudLayer);
// Does the user enable the precipitation ?
if (!precipitation->getEnabled() ) {
// Disable precipitations
precipitation->setRainIntensity(0);
precipitation->setSnowIntensity(0);
// Does the user enable the precipitation ?
if (!precipitation->getEnabled() ) {
// Disable precipitations
precipitation->setRainIntensity(0);
precipitation->setSnowIntensity(0);
// Update the drawing...
precipitation->update();
// Update the drawing...
precipitation->update();
// Exit
return;
}
// Exit
return;
}
// Get the elevation of aicraft and of the cloud layer
altitudeAircraft = fgGetDouble("/position/altitude-ft", 0.0);