NAME

Rinchi::CIGIPP::EnvironmentalRegionControl - Perl extension for the Common Image Generator Interface - Environmental Region Control data packet. data packet. =head1 SYNOPSIS

use Rinchi::CIGIPP::EnvironmentalRegionControl;
my $env_ctl = Rinchi::CIGIPP::EnvironmentalRegionControl->new();

$packet_type = $env_ctl->packet_type();
$packet_size = $env_ctl->packet_size();
$region_ident = $env_ctl->region_ident(20814);
$merge_terrestrial_surface_conditions = $env_ctl->merge_terrestrial_surface_conditions(Rinchi::CIGIPP->Merge);
$merge_maritime_surface_conditions = $env_ctl->merge_maritime_surface_conditions(Rinchi::CIGIPP->UseLast);
$merge_aerosol_concentrations = $env_ctl->merge_aerosol_concentrations(Rinchi::CIGIPP->Merge);
$merge_weather_properties = $env_ctl->merge_weather_properties(Rinchi::CIGIPP->UseLast);
$region_state = $env_ctl->region_state(Rinchi::CIGIPP->Active);
$latitude = $env_ctl->latitude(59.996);
$longitude = $env_ctl->longitude(81.934);
$size_x = $env_ctl->size_x(35.271);
$size_y = $env_ctl->size_y(24.1);
$corner_radius = $env_ctl->corner_radius(47.747);
$rotation = $env_ctl->rotation(71.893);
$transition_perimeter = $env_ctl->transition_perimeter(3.385);

DESCRIPTION

The Environmental Region Control packet is used to define an area over which the atmospheric conditions and maritime and terrestrial surface conditions can be specified. The shape of the region is a rounded rectangle.

Up to 256 weather layers may be defined within a region. Weather layers can be created and manipulated with the Weather Control packet. One set of maritime and/or terrestrial surface condition attributes may be defined per region.

The Host is responsible for updating the position and shape of each region. The IG does not automatically manipulate regions because of wind activity or any other internal or external forces.

The center of the region is defined by the Latitude and Longitude attributes. The origin of the region's local coordinate system is at this point. The Size X and Size Y attributes determine the length of the rounded rectangle along its X and Y axes.

The "roundness" of the corners is determined by the Corner Radius attribute. Setting this radius to zero (0) will create a rectangle. Setting the value equal to one-half that of Size X and Size Y when both are equal will create a circle. The corner radius must be less than or equal to one half of the smaller of Size X or Size Y.

The Rotation attribute specifies an angle of rotation (clockwise) about the Z axis of the local NED coordinate system.

EXPORT

None by default.

#==============================================================================

new $env_ctl = Rinchi::CIGIPP::EnvironmentalRegionControl->new()

Constructor for Rinchi::EnvironmentalRegionControl.

sub packet_type()
$value = $env_ctl->packet_type();

Data Packet Identifier.

This attribute identifies this data packet as the Environmental Region Control packet. The value of this attribute must be 11.

sub packet_size()
$value = $env_ctl->packet_size();

Data Packet Size.

This attribute indicates the number of bytes in this data packet. The value of this attribute must be 48.

sub region_ident([$newValue])
$value = $env_ctl->region_ident($newValue);

Region ID.

This attribute specifies the environmental region to which the data in this packet will be applied.

sub merge_terrestrial_surface_conditions([$newValue])
$value = $env_ctl->merge_terrestrial_surface_conditions($newValue);

Merge Terrestrial Surface Conditions.

This attribute specifies whether the terrestrial surface conditions found within this region should be merged with those of other regions within areas of overlap. If this attribute is set to Use Last (0), the last Terrestrial Surface Conditions Control packet describing a region containing a given point will be used to determine the surface conditions at that point.

If this attribute is set to Merge (1), the surface conditions at any given point within the region are averaged with those of any other regions also containing that point.

Note: Regional surface conditions always take priority over global surface conditions.

UseLast   0
Merge     1
sub merge_maritime_surface_conditions([$newValue])
$value = $env_ctl->merge_maritime_surface_conditions($newValue);

Merge Maritime Surface Conditions.

This attribute specifies whether the maritime surface conditions found within this region should be merged with those of other regions within areas of overlap. If this attribute is set to Use Last (0), the last Maritime Surface Conditions Control packet (Section 4.1.13) describing a region containing a given point will be used to determine the surface conditions at that point.

If this attribute is set to Merge (1), the surface conditions at any given point within the region are averaged with those of any other regions also containing that point.

Note: Regional surface conditions always take priority over global surface conditions.

UseLast   0
Merge     1
sub merge_aerosol_concentrations([$newValue])
$value = $env_ctl->merge_aerosol_concentrations($newValue);

Merge Aerosol Concentrations.

This attribute specifies whether the concentrations of aerosols found within this region should be merged with those of other regions within areas of overlap. If this attribute is set to Use Last (0), the last Weather Control packet describing a layer containing a given point will be used to determine the concentration of the specified aerosol at that point.

If this attribute is set to Merge (1), the aerosol concentrations within all weather layers containing a given point are combined (see Table 16).

Note: Weather layers within the same region will always be combined. Regional weather conditions always take priority over global weather conditions.

UseLast   0
Merge     1
sub merge_weather_properties([$newValue])
$value = $env_ctl->merge_weather_properties($newValue);

Merge Weather Properties

This attribute specifies whether atmospheric conditions within this region should be merged with those of other regions within areas of overlap.

If this attribute is set to Use Last (0), the last Weather Control packet describing a layer containing a given point will be used to determine the weather conditions at that point.

If this attribute is set to Merge (1), the atmospheric properties of all weather layers containing a given point are combined (see Table 16).

Note: Weather layers within the same region will always be combined. Regional weather conditions always take priority over global weather conditions.

UseLast   0
Merge     1
sub region_state([$newValue])
$value = $env_ctl->region_state($newValue);

Region State.

This attribute specifies whether the region should be active or destroyed. This attribute may be set to one of the following values:

Inactive – Any weather layers and surface conditions defined within the region are disabled regardless of their individual enable states.

Active – Any weather layers and surface conditions defined within the region are enabled according to their individual enable states.

Destroyed – The environmental region is permanently deleted, as are all weather layers and surface conditions assigned to the region.

Inactive    0
Active      1
Destroyed   2
sub latitude([$newValue])
$value = $env_ctl->latitude($newValue);

Latitude.

This attribute specifies the geodetic latitude of the center of the rounded rectangle.

sub longitude([$newValue])
$value = $env_ctl->longitude($newValue);

Longitude.

This attribute specifies the geodetic longitude of the center of the rounded rectangle.

sub size_x([$newValue])
$value = $env_ctl->size_x($newValue);

Size X.

This attribute specifies the length, measured in meters, of the environmental region along its X axis at the geoid surface. This length does not include the width of the transition perimeter.

sub size_y([$newValue])
$value = $env_ctl->size_y($newValue);

Size Y.

This attribute specifies the length, measured in meters, of the environmental region along its Y axis at the geoid surface. This length does not include the width of the transition perimeter.

sub corner_radius([$newValue])
$value = $env_ctl->corner_radius($newValue);

Corner Radius.

This attribute specifies the radius, measured in meters, of the corner of the rounded rectangle. The smaller the radius, the “tighter” the corner. A value of 0.0 produces a rectangle.

sub rotation([$newValue])
$value = $env_ctl->rotation($newValue);

Rotation.

This attribute specifies the yaw angle, measured in degrees from true north, of the rounded rectangle.

sub transition_perimeter([$newValue])
$value = $env_ctl->transition_perimeter($newValue);

Transition Perimeter.

This attribute specifies the width, measured in meters, of the transition perimeter around the environmental region. This perimeter is a region through which the weather conditions are interpolated between those inside the environmental region and those immediately outside the perimeter.

sub pack()
$value = $env_ctl->pack();

Returns the packed data packet.

sub unpack()
$value = $env_ctl->unpack();

Unpacks the packed data packet.

sub byte_swap()
$obj_name->byte_swap();

Byte swaps the packed data packet.

SEE ALSO

Refer the the Common Image Generator Interface ICD which may be had at this URL: http://cigi.sourceforge.net/specification.php

AUTHOR

Brian M. Ames, <bmames@apk.net>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Brian M. Ames

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6 or, at your option, any later version of Perl 5 you may have available.

3 POD Errors

The following errors were encountered while parsing the POD:

Around line 99:

'=item' outside of any '=over'

Around line 381:

Non-ASCII character seen before =encoding in '–'. Assuming UTF-8

Around line 670:

You forgot a '=back' before '=head1'