&FGEnvironmentMgr::get_cloud_layer_coverage_type,
&FGEnvironmentMgr::set_cloud_layer_coverage_type);
+ _tiedProperties.Tie( layerNode->getNode( "visibility-m",true), this, i,
+ &FGEnvironmentMgr::get_cloud_layer_visibility_m,
+ &FGEnvironmentMgr::set_cloud_layer_visibility_m);
+
+ _tiedProperties.Tie( layerNode->getNode( "alpha",true), this, i,
+ &FGEnvironmentMgr::get_cloud_layer_maxalpha,
+ &FGEnvironmentMgr::set_cloud_layer_maxalpha);
}
_tiedProperties.setRoot( fgGetNode("/sim/rendering", true ) );
FGEnvironmentMgr::set_cloud_layer_coverage (int index,
const char * coverage_name)
{
+ if( thesky->get_cloud_layer(index)->getCoverageString() == coverage_name )
+ return;
+
thesky->get_cloud_layer(index)->setCoverageString(coverage_name);
_cloudLayersDirty = true;
}
return thesky->get_cloud_layer(index)->getCoverage();
}
+double
+FGEnvironmentMgr::get_cloud_layer_visibility_m (int index) const
+{
+ return thesky->get_cloud_layer(index)->getVisibility_m();
+}
+
+void
+FGEnvironmentMgr::set_cloud_layer_visibility_m (int index, double visibility_m)
+{
+ thesky->get_cloud_layer(index)->setVisibility_m(visibility_m);
+}
+
+double
+FGEnvironmentMgr::get_cloud_layer_maxalpha (int index ) const
+{
+ return thesky->get_cloud_layer(index)->getMaxAlpha();
+}
+
+void
+FGEnvironmentMgr::set_cloud_layer_maxalpha (int index, double maxalpha)
+{
+ thesky->get_cloud_layer(index)->setMaxAlpha(maxalpha);
+}
+
+
+
void
FGEnvironmentMgr::set_cloud_layer_coverage_type (int index, int type )
{
- if( index < 0 || index >= SGCloudLayer::SG_MAX_CLOUD_COVERAGES ) {
+ if( type < 0 || type >= SGCloudLayer::SG_MAX_CLOUD_COVERAGES ) {
SG_LOG(SG_ALL,SG_WARN,"Unknown cloud layer type " << type << " ignored" );
return;
}
+
+ if( static_cast<SGCloudLayer::Coverage>(type) == thesky->get_cloud_layer(index)->getCoverage() )
+ return;
+
thesky->get_cloud_layer(index)->setCoverage(static_cast<SGCloudLayer::Coverage>(type));
_cloudLayersDirty = true;
}