X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fsky%2Fsky.hxx;h=4190508be387bc50ff850b3596a1cc26a678e9bc;hb=6531b1ebbc5c82bed5f52869511e880afd05bfcf;hp=058740f374f94a1ecd2aa8bb81727164a970ede7;hpb=de66c74a91fb8da6107b5e4abd44c0cfac90cba1;p=simgear.git diff --git a/simgear/sky/sky.hxx b/simgear/sky/sky.hxx index 058740f3..4190508b 100644 --- a/simgear/sky/sky.hxx +++ b/simgear/sky/sky.hxx @@ -62,6 +62,7 @@ private: SGMoon *moon; SGStars *planets; SGStars *stars; + ssgSimpleState *cloud_mats[SG_MAX_CLOUD_TYPES]; layer_list_type cloud_layers; ssgRoot *pre_root, *post_root; @@ -77,10 +78,10 @@ private: // near cloud visibility state variables bool in_puff; - double puff_length; - double puff_progression; - double ramp_up; - double ramp_down; + double puff_length; // in seconds + double puff_progression; // in seconds + double ramp_up; // in seconds + double ramp_down; // in seconds public: @@ -125,11 +126,13 @@ public: // transition range, and simulated "puffs". void modify_vis( float alt, float time_factor ); - // draw background portions of the sky - void draw_background(); + // draw background portions of the sky ... do this before you draw + // the rest of your scene. + void preDraw(); - // draw scenery elements of the sky - void draw_scene( float alt ); + // draw translucent clouds ... do this after you've drawn all the + // oapaque elements of your scene. + void postDraw( float alt ); // specify the texture path (optional, defaults to current directory) inline void texture_path( const string& path ) { @@ -150,7 +153,15 @@ public: } // add a cloud layer (above sea level in meters) - void add_cloud_layer( double asl, double thickness, double transition ); + void add_cloud_layer( double asl, double thickness, + double transition, double span, + SGCloudType type ); + void add_cloud_layer( double asl, double thickness, + double transition, double span, + const string &tex_path ); + void add_cloud_layer( double asl, double thickness, + double transition, double span, + ssgSimpleState *state ); inline int get_num_layers() const { return cloud_layers.size(); } inline SGCloudLayer *get_cloud_layer( int i ) const {