Expose precipitation property
from Vivian Meazza
This commit is contained in:
parent
77318b23a5
commit
19d9287d3a
2 changed files with 13 additions and 5 deletions
|
@ -44,7 +44,6 @@
|
|||
|
||||
#include "precipitation_mgr.hxx"
|
||||
|
||||
|
||||
extern SGSky *thesky;
|
||||
|
||||
|
||||
|
@ -63,7 +62,6 @@ FGPrecipitationMgr::FGPrecipitationMgr()
|
|||
// By default, no precipitation
|
||||
precipitation->setRainIntensity(0);
|
||||
precipitation->setSnowIntensity(0);
|
||||
|
||||
transform->addChild(precipitation->build());
|
||||
group->addChild(transform.get());
|
||||
}
|
||||
|
@ -92,6 +90,12 @@ void FGPrecipitationMgr::init()
|
|||
// Add to scene graph
|
||||
osg::Group* scenery = globals->get_scenery()->get_scene_graph();
|
||||
scenery->addChild(getObject());
|
||||
fgGetNode("environment/params/precipitation-level-ft", true);
|
||||
}
|
||||
|
||||
void FGPrecipitationMgr::setPrecipitationLevel(double a)
|
||||
{
|
||||
fgSetDouble("environment/params/precipitation-level-ft",a);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -104,7 +108,6 @@ osg::Group * FGPrecipitationMgr::getObject(void)
|
|||
return this->group.get();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Calculate the max alitutude with precipitation
|
||||
*
|
||||
|
@ -199,6 +202,9 @@ void FGPrecipitationMgr::update(double dt)
|
|||
float altitudeAircraft;
|
||||
float altitudeCloudLayer;
|
||||
|
||||
altitudeCloudLayer = this->getPrecipitationAtAltitudeMax() * SG_METER_TO_FEET;
|
||||
setPrecipitationLevel(altitudeCloudLayer);
|
||||
|
||||
// Does the user enable the precipitation ?
|
||||
if (!sgEnviro.get_precipitation_enable_state()) {
|
||||
// Disable precipitations
|
||||
|
@ -214,7 +220,6 @@ void FGPrecipitationMgr::update(double dt)
|
|||
|
||||
// Get the elevation of aicraft and of the cloud layer
|
||||
altitudeAircraft = fgGetDouble("/position/altitude-ft", 0.0);
|
||||
altitudeCloudLayer = this->getPrecipitationAtAltitudeMax() * SG_METER_TO_FEET;
|
||||
|
||||
if ((altitudeCloudLayer > 0) && (altitudeAircraft > altitudeCloudLayer)) {
|
||||
// The aircraft is above the cloud layer
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <simgear/structure/subsystem_mgr.hxx>
|
||||
#include <simgear/environment/precipitation.hxx>
|
||||
|
||||
|
||||
class FGPrecipitationMgr : public SGSubsystem
|
||||
{
|
||||
private:
|
||||
|
@ -40,7 +41,6 @@ private:
|
|||
osg::ref_ptr<SGPrecipitation> precipitation;
|
||||
float getPrecipitationAtAltitudeMax(void);
|
||||
|
||||
|
||||
public:
|
||||
FGPrecipitationMgr();
|
||||
virtual ~FGPrecipitationMgr();
|
||||
|
@ -49,7 +49,10 @@ public:
|
|||
virtual void init ();
|
||||
virtual void update (double dt);
|
||||
|
||||
void setPrecipitationLevel(double l);
|
||||
|
||||
osg::Group * getObject(void);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue