IDLgrShaderBytscl objects have the following properties in addition to properties inherited from any superclasses. Properties with the word “Yes” in the “Get” column of the property table can be retrieved via IDLgrShaderBytscl::GetProperty. Properties with the word “Yes” in the “Init” column of the property table can be set via IDLgrShaderBytscl::Init. Properties with the word “Yes” in the “Set” column in the property table can be set via IDLgrShaderBytscl::SetProperty.

Note: For a discussion of the property description tables shown below, see Modifying Object Property Descriptions.

Objects of this class have the following properties.

In addition, objects of this class inherit the properties of:

IN_RANGE

A 2xn floating-point array that describes the MIN and MAX values for the byte-scaling operation for each of the n channels in the input image. See the BYTSCL function for more detail. See the UNITS_IN_RANGE property for this object to determine the units and scaling to use for setting this property.

Since the IDLgrShader::Filter method receives RGBA data from IDL, this object expands this property into a [2,4] floating-point array. The UNITS_IN_RANGE property value determines how incoming values are scaled before being expanded as follows:

  • [a,b] expands to [[a,b],[a,b],[a,b],[0,1]] (single LUM channel repeated in RGB, Alpha channel set to full range)
  • [[a,b],[c,d]] expands to [[a,b],[a,b],[a,b],[c,d]] (LUM with Alpha channel specified)
  • [[a,b],[c,d],[e,f]] expands to [[a,b],[c,d],[e,f],[0,1]] (RGB copied exactly, Alpha channel set to full range)
  • [[a,b],[c,d],[e,f],[g,h]] expands to [[a,b],[c,d],[e,f],[g,h]] (entire range is specified)

The default values are [0.0, 1.0] for each channel. In all cases, the MAX value must be greater than the MIN value.

Property Type

Float array

Name String

not displayed

Get: Yes

Set: Yes

Init: Yes

Registered: No

OUT_RANGE

A 2xn floating-point array that describes the bottom and top range values for the output of the byte-scaling operation for each of the n channels in the image data. The top value corresponds to the TOP keyword used in the IDL BYTSCL function. For example, if the provided values are [40,80], the data will be scaled into byte data in the range 40 - 80, inclusive. For compatibility with the IDL BYTSCL function, the minimum and maximum values for this property should be specified in the range
[0, 255].

Since the IDLgrShader::Filter method returns RGBA data to IDL, this object expands this property into a [2,4] floating-point array as follows:

  • [a,b] expands to [[a,b],[a,b],[a,b],[0,1]] (single LUM channel repeated in RGB, Alpha channel set to full range)
  • [[a,b],[c,d]] expands to [[a,b],[a,b],[a,b],[c,d]] (LUM with Alpha channel specified)
  • [[a,b],[c,d],[e,f]] expands to [[a,b],[c,d],[e,f],[0,1]] (RGB copied exactly, Alpha channel set to full range)
  • [[a,b],[c,d],[e,f],[g,h]] expands to [[a,b],[c,d],[e,f],[g,h]] (entire range is specified)

Before performing the byte-scaling operation, these values are scaled into the floating-point range [0,1].

The default values are [0,255] for each color channel and [0,1] for the alpha channel.

Property Type

Float array

Name String

not displayed

Get: Yes

Set: Yes

Init: Yes

Registered: No

UNITS_IN_RANGE

A scalar integer that represents the units used to express the minimum and maximum values specified by the IN_RANGE property. This value usually corresponds to the data type of the data stored in the image object. The allowed values, which correspond to IDL type codes, are:

Value
(type code)

Data Units

IN_RANGE Values
must be in this range:

0

Normalized

[0.0, 1.0] for BYTE and UINT

[-1.0, 1.0] for INT

Any range for FLOAT.

1

BYTE

 

2

INT

[-32768, 32767]

4

FLOAT

Any floating-point range

12

UINT

[0, 65535]

The default value is 0.

Property Type

Integer

Name String

not displayed

Get: Yes

Set: Yes

Init: No

Registered: No