From: James Turner Date: Fri, 28 Feb 2014 11:06:47 +0000 (+0000) Subject: Allow clouds to be toggled on/off X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=081aafb9144a9cd25507d75efd55c1d4853254cd;p=simgear.git Allow clouds to be toggled on/off - Change the cloud-root Group to a Switch --- diff --git a/simgear/scene/sky/sky.cxx b/simgear/scene/sky/sky.cxx index ed7b13e0..e5535059 100644 --- a/simgear/scene/sky/sky.cxx +++ b/simgear/scene/sky/sky.cxx @@ -58,7 +58,7 @@ SGSky::SGSky( void ) { preStateSet->setAttribute(new osg::Depth(osg::Depth::LESS, 0.0, 1.0, false)); pre_root->setStateSet(preStateSet); - cloud_root = new osg::Group; + cloud_root = new osg::Switch; cloud_root->setNodeMask(simgear::MODEL_BIT); cloud_root->setName("SGSky-cloud-root"); @@ -195,7 +195,7 @@ void SGSky::add_cloud_layer( SGCloudLayer * layer ) { cloud_layers.push_back(layer); - cloud_root->addChild(layer->getNode()); + cloud_root->addChild(layer->getNode(), true); layer->set_enable3dClouds(clouds_3d_enabled); } @@ -426,4 +426,11 @@ void SGSky::modify_vis( float alt, float time_factor ) { effective_visibility = effvis; } - +void SGSky::set_clouds_enabled(bool enabled) +{ + if (enabled) { + cloud_root->setAllChildrenOn(); + } else { + cloud_root->setAllChildrenOff(); + } +} diff --git a/simgear/scene/sky/sky.hxx b/simgear/scene/sky/sky.hxx index 5c239b9e..09d9b4ca 100644 --- a/simgear/scene/sky/sky.hxx +++ b/simgear/scene/sky/sky.hxx @@ -222,8 +222,8 @@ private: SGSharedPtr stars; layer_list_type cloud_layers; - osg::ref_ptr pre_root, cloud_root; - osg::ref_ptr pre_transform; + osg::ref_ptr pre_root, pre_transform; + osg::ref_ptr cloud_root; osg::ref_ptr _ephTransform; @@ -468,6 +468,7 @@ public: */ void set_3dCloudWrap(bool wrap); + void set_clouds_enabled(bool enabled); }; #endif // _SG_SKY_HXX