Routines (alphabetical) > Object Classes > Graphics Object Classes > IDLgrShaderBytscl Properties

# IDLgrShaderBytscl Properties

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 About Object Property Descriptions.

Objects of this class have the following properties.

- IN_RANGE
- OUT_RANGE
- UNITS_IN_RANGE

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

- IDLgrShader

### 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