#include <simgear/props/props_io.hxx>
#include <Main/globals.hxx>
+#include <Main/renderer.hxx>
#include <Airports/simple.hxx>
#include <Main/util.hxx>
#include "fgclouds.hxx"
-extern SGSky *thesky;
-
+static bool do_delete_3Dcloud (const SGPropertyNode *arg);
+static bool do_move_3Dcloud (const SGPropertyNode *arg);
+static bool do_add_3Dcloud (const SGPropertyNode *arg);
FGClouds::FGClouds() :
#if 0
double c = abox->getDoubleValue("count", 5);
int count = (int) (c + (sg_random() - 0.5) * c);
- extent = max(w*w, extent);
+ extent = std::max(w*w, extent);
for (int j = 0; j < count; j++) {
y = w * (y - 0.5) + pos[1]; // E/W
z = h * z + pos[2]; // Up/Down. pos[2] is the cloudbase
- SGVec3f newpos = SGVec3f(x, y, z);
+ //SGVec3f newpos = SGVec3f(x, y, z);
SGNewCloud cld = SGNewCloud(texture_root, cld_def);
//layer->addCloud(newpos, cld.genCloud());
int CloudVarietyCount = 0;
double totalCount = 0.0;
+ SGSky* thesky = globals->get_renderer()->getSky();
+
SGPropertyNode *cloud_def_root = fgGetNode("/environment/cloudlayers/clouds", false);
SGPropertyNode *box_def_root = fgGetNode("/environment/cloudlayers/boxes", false);
SGPropertyNode *layer_def_root = fgGetNode("/environment/cloudlayers/layers", false);
double cumulus_base = 122.0 * (temperature_degc - dewpoint_degc);
double stratus_base = 100.0 * (100.0 - rel_humidity) * SG_FEET_TO_METER;
+ SGSky* thesky = globals->get_renderer()->getSky();
for(int iLayer = 0 ; iLayer < thesky->get_cloud_layer_count(); iLayer++) {
SGPropertyNode *cloud_root = fgGetNode("/environment/clouds/layer", iLayer, true);
float x = arg->getFloatValue("x-offset-m", 0.0f);
float y = arg->getFloatValue("y-offset-m", 0.0f);
-
+ SGSky* thesky = globals->get_renderer()->getSky();
SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D();
SGNewCloud cld = SGNewCloud(texture_root, arg);
bool success = layer->addCloud(lon, lat, alt, x, y, index, cld.genCloud());
int l = arg->getIntValue("layer", 0);
int i = arg->getIntValue("index", 0);
+ SGSky* thesky = globals->get_renderer()->getSky();
SGCloudField *layer = thesky->get_cloud_layer(l)->get_layer3D();
return layer->deleteCloud(i);
}
{
int l = arg->getIntValue("layer", 0);
int i = arg->getIntValue("index", 0);
-
+ SGSky* thesky = globals->get_renderer()->getSky();
+
float lon = arg->getFloatValue("lon-deg", 0.0f);
float lat = arg->getFloatValue("lat-deg", 0.0f);
float alt = arg->getFloatValue("alt-ft", 0.0f);