// By default, no precipitation
precipitation->setRainIntensity(0);
precipitation->setSnowIntensity(0);
+
+ // set the clip distance from the config
+ precipitation->setClipDistance(fgGetFloat("/environment/precipitation-control/clip-distance",5.0));
transform->addChild(precipitation->build());
group->addChild(transform.get());
}
return fgGetFloat("/environment/params/external-precipitation-level-m", 0.0);
}
+
// By default (not cloud layer)
max = SGCloudLayer::SG_MAX_CLOUD_COVERAGES;
result = 0;
float altitudeAircraft;
float altitudeCloudLayer;
+ float rainDropletSize;
+ float snowFlakeSize;
+ float illumination;
altitudeCloudLayer = this->getPrecipitationAtAltitudeMax() * SG_METER_TO_FEET;
setPrecipitationLevel(altitudeCloudLayer);
+
+
// Does the user enable the precipitation ?
if (!precipitation->getEnabled() ) {
// Disable precipitations
return;
}
+ // See if external droplet size and illumination are used
+ if (fgGetBool("/environment/precipitation-control/detailed-precipitation", false)) {
+ precipitation->setDropletExternal(true);
+ rainDropletSize = fgGetFloat("/environment/precipitation-control/rain-droplet-size", 0.015);
+ snowFlakeSize = fgGetFloat("/environment/precipitation-control/snow-flake-size", 0.03);
+ illumination = fgGetFloat("/environment/precipitation-control/illumination", 1.0);
+ precipitation->setRainDropletSize(rainDropletSize);
+ precipitation->setSnowFlakeSize(snowFlakeSize);
+ precipitation->setIllumination(illumination);
+ }
+
// Get the elevation of aicraft and of the cloud layer
altitudeAircraft = fgGetDouble("/position/altitude-ft", 0.0);