IG::Region Class
The functionality described in this article is not available in the Community SDK edition.
You should upgrade to- Sim
SDK edition to use it.
You should upgrade to
Header: | #include <UnigineIG.h> |
This class is used to manage weather regions for the IG.
IG plugin must be loaded.
There are two types of weather regions available:
- Global - weather layers, they represent atmospheric layers, which have no distinct horizontal boundaries. Atmospheric effects are observed anywhere within the vertical range of a layer.
- Local - weather regions, they have the same set of parameters (visibility, coverage, wind) as weather layers but atmospheric effects for them are restricted to a certain area.
Global meteo conditions are managed via the Meteo class.
Region Class
Members
void refresh ( ) #
Refreshes the weather region according to its current settings. This method should be called after setting weather region's parameters to apply them. Weather change callbacks are called on refresh.void setWindSpeed ( const vec3 & wind_speed ) #
Sets wind speed vector for the weather region.Arguments
- const vec3 & wind_speed - Vector defining wind speed in all directions, in meters per second.
void setWindSpeedEnable ( bool enable ) #
Enables or disables taking into account wind speed of this weather region when calculating average values. Weather conditions for overlapping weather regions/layers are combined and average values are calculated for them.Arguments
- bool enable - true to take into account wind speed of this weather region when calculating average values; false — to ignore it.
void setVisibilityDistance ( float visibility_distance ) #
Sets visibility distance for the weather region. All atmospheric effects of this region are observed starting from this distance.Arguments
- float visibility_distance - Visibility distance for the weather region, in meters.
void setVisibilityDistanceEnable ( bool enable ) #
Enables or disables distance-dependent optimization of the weather region. When enabled, atmospheric effects of the region are within the distance range determined by the visibility distance.Arguments
- bool enable - true to enable distance-dependent optimization for the weather region; false — to disable it.
void setThickness ( float thickness ) #
Sets vertical layer thickness for the weather region. The altitude of the top of the layer is equal to this value plus altitude.Arguments
- float thickness - Vertical layer thickness for the weather region, in meters.
float getThickness ( ) #
Returns the current vertical layer thickness for the weather region.Return value
Current vertical layer thickness for the weather region, in meters.void setAltitude ( double altitude ) #
Sets altitude of the base (bottom) of the layer of the weather region.Arguments
- double altitude - Layer base altitude for the weather region, in meters.
void setSize ( const vec2 & size ) #
Sets the length of the rounded bounding rectangle of the weather region along its X and Y axes (represented by X' and Y' ), respectively.
This method is not available for weather layers (region type = 0).
Arguments
- const vec2 & size - Vector with two components representing length (in meters) of the rounded bounding rectangle of the weather region along its X and Y axes respectively.
void setSize ( const vec3 & size ) #
Sets the length of the rounded bounding rectangle of the weather region along its X, Y, and Z axes respectively.This method is not available for weather layers (region type = 0).
Arguments
- const vec3 & size - Vector with three components representing length (in meters) of the rounded bounding rectangle of the weather region along its X, Y, and Z axes respectively.
void setPosition ( const Vec2 & pos ) #
Sets geographic location of the rounded bounding rectangle of the weather region.This method is not available for weather layers (region type = 0).
Arguments
- const Vec2 & pos - Vector with two components representing latitude and longitude of the center of the rounded bounding rectangle of the weather region respectively. The origin of the region’s local coordinate system is at this point.
void setPosition ( const Vec3 & pos ) #
Sets geographic location of the rounded bounding rectangle of the weather region.This method is not available for weather layers (region type = 0).
Arguments
- const Vec3 & pos - Vector with three components representing latitude, longitude, and altitude of the center of the rounded bounding rectangle of the weather region respectively. The origin of the region’s local coordinate system is at this point.
void setType ( int type ) #
Sets the type of the weather region.Arguments
- int type - Weather region type, one of the following:
- 0 - global (atmospheric layers, which have no distinct horizontal boundaries)
- 1 - local (regional weather with atmospheric effects restricted to a certain area)
void setAltitude ( double min_altitude, double max_altitude ) #
Sets the maximum and the minimum layer altitude for the weather region. This method is an alternative to setting layer's altitude and thickness.Arguments
- double min_altitude - Layer base altitude for the weather region, in meters.
- double max_altitude - Layer top altitude for the weather region, in meters.
void resizeToCloudThickness ( ) #
Sets vertical layer thickness for the weather region in accordance with the cloud layer thickness. Thickness of the cloud layer is defined by the layer height parameter of its cloud material (inherited from the clouds_base).void setPrecipitationIntensity ( float precipitation_intensity ) #
Sets precipitation intensity for rain and snow. This parameter is determined by aerosol concentraion (concentration of particles suspended in the air).Arguments
- float precipitation_intensity - Aerosol concentration, in g/m3.
void setPrecipitationIntensityEnable ( bool enable ) #
Enables or disables taking into account precipitation intensity of this weather region when calculating average values. Weather conditions for overlapping weather regions/layers are combined and average values are calculated for them.Arguments
- bool enable - true to take into account precipitation intensity of this weather region when calculating average values; false — to ignore it.
void setPrecipitationSize ( float precipitation_size ) #
Sets the size of particles used for precipitation simulation. Precipitation is rendered using a particle system, this method defines the radius of particles.Arguments
- float precipitation_size - 1 to take into account precipitation size of this weather region when calculating average values; 0 - to ignore it.
void setPrecipitationSizeEnable ( bool enable ) #
Enables or disables taking into account precipitation size of this weather region when calculating average values. Weather conditions for overlapping weather regions/layers are combined and average values are calculated for them.Arguments
- bool enable - true to take into account precipitation size of this weather region when calculating average values; false — to ignore it.
void setPrecipitationType ( uint64_t precipitation_type ) #
Sets a bitmask defining types of precipitation for the weather region/layer.Arguments
- uint64_t precipitation_type - Integer value used as a bit mask, each bit of which defines whether the corresponding type of precipitation is enabled for the weather region/layer:
- bit 1 - rain
- bit 2 - snow
The set of precipitation types can be extended.
void setCloudTypeByEnum ( uint64_t enum_type ) #
Sets cloud type for the weather region.Arguments
- uint64_t enum_type - Cloud type, one of the following:
- 0 - None
- 1 - Altocumulus
- 2 - Altostratus
- 3 - Cirrocumulus
- 4 - Cirrostratus
- 5 - Cirrus
- 6 - Cumulonimbus
- 7 - Cumulus
- 8 - Nimbostratus
- 9 - Stratocumulus
- 10 - Stratus
- 11 – 15 - Other
void setCloudDensity ( float cloud_density ) #
Sets cloud density for the weather region/layer. This parameter determines cloud coverage.Arguments
- float cloud_density - Cloud density in the [0.0f, 1.0f] range (from minimum to maximum coverage).
float getCloudThickness ( ) #
Returns the current thickness of the cloud layer for the weather region.Return value
Thickness of the cloud layer for the weather region, in meters.void setLightning ( int lightning ) #
Enables or disables lightning for the weather region.Arguments
- int lightning - 1 to enable lightning for the weather region; 0 - to disable it.
void setEnabled ( bool enabled ) #
Enables or disables the weather region.Arguments
- bool enabled - true to enable the weather region; false - to disable it.
bool isEnabled ( ) #
Returns a value indicating if the weather region is currently enabled.Return value
true if the weather region is currently enabled; otherwise, false.Last update:
2020-04-10
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)