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

# IDLgrContour Properties

IDLgrContour 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 IDLgrContour::GetProperty. Properties with the word “Yes” in the “Init” column of the property table can be set via IDLgrContour::Init. Properties with the word “Yes” in the “Set” column in the property table can be set via IDLgrContour::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. See “IDLgrContour Properties” for details on individual properties.

ALL ALPHA_CHANNEL AM_PM ANISOTROPY ANTIALIAS C_COLOR C_FILL_PATTERN C_LABEL_INTERVAL C_LABEL_NOGAPS C_LABEL_OBJECTS C_LABEL_SHOW C_LINESTYLE C_THICK C_USE_LABEL_COLOR C_USE_LABEL_ORIENTATION C_VALUE CLIP_PLANES COLOR DATA_VALUES DAYS_OF_WEEK | DEPTH_OFFSET DEPTH_TEST_DISABLE DEPTH_TEST_FUNCTION DEPTH_WRITE_DISABLE DOUBLE_DATA DOUBLE_GEOM DOWNHILL FILL GEOM GEOMX GEOMY GEOMZ HIDE LABEL_FONT LABEL_FORMAT LABEL_FRMTDATA LABEL_THRESHOLD LABEL_UNITS MAX_VALUE MIN_VALUE | MONTHS N_LEVELS PALETTE PARENT PLANAR POLYGONS REGISTER_PROPERTIES SHADE_RANGE SHADER SHADING TICKINTERVAL TICKLEN USE_TEXT_ALIGNMENTS XCOORD_CONV XRANGE YCOORD_CONV YRANGE ZRANGE

In addition, objects of this class inherit:

- IDLitComponent

### ALL

An anonymous structure containing the values of all of the retrievable properties associated with this object except DATA_VALUES and GEOM.

Property Type | Structure
Name String | not displayed
Get: Yes | Set: No | Init: No | Registered: No

### ALPHA_CHANNEL

Set this property to a floating-point value in the range [0.0, 1.0] to specify the opacity of the contour. The default value of 1.0 causes IDL to draw the contours completely opaque. If the value of this property is less than 1.0, then the pixels of the contours are blended with the pixels already on the screen, where the color of the contour is multiplied by the alpha value and the pixels already on the screen are multiplied by 1.0-alpha. Because an object can only be blended with objects already drawn on the screen, the drawing order of the objects must be considered carefully in order to obtain the desired results. This property has no effect on devices using indexed color mode. If contour colors (C_COLOR property) are supplied, then the value of this property is used for the contour alpha if the C_COLOR property does not contain alpha values (3-channel RGB colors). If the C_COLOR property does contain alpha values (4-channel RGBA colors), then the alpha from each contour color is used. When contour labels (either text or symbols) are used and a label’s corresponding value in the C_USE_LABEL_COLOR property is zero, the value of this property is used for the label alpha if contour colors are not provided or if the contour colors are provided and do not contain alpha values. If the alpha values are supplied in the C_COLOR property, then each label uses the alpha from its corresponding C_COLOR contour color. When contour labels (either text or symbols) are used and a label’s corresponding value in the C_USE_LABEL_COLOR property is non-zero, then the value of the label object’s ALPHA_CHANNEL property is used to draw the label. In other words, C_USE_LABEL_COLOR also implies using the label object’s alpha as well as its color.

Property Type | Float-point value
Name String | Transparency
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### AM_PM

A string vector of two values indicating the names of the AM and PM strings when processing explicitly formatted dates (CAPA, CApA, and CapA format codes) with the LABEL_FORMAT property.

Property Type | String vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### ANISOTROPY

A three-element floating-point vector [x, y, z] that represents the multipliers to be applied to the internally computed correction factors along each axis that account for anisotropic geometry. Correcting for anisotropy is particularly important for the appropriate representations of downhill tickmarks.

By default, IDL will automatically compute correction factors for anisotropy based on the [XYZ] range of the contour geometry. If the geometry (as provided via the GEOMX, GEOMY, and GEOMZ keywords) falls within the range [xmin, ymin, zmin] to [xmax, ymax, zmax], then the default correction factors are computed as follows:

dx = xmax - xmin

dy = ymax - ymin

dz = zmax - zmin

; Get the maximum of the ranges:

maxRange = (dx > dy) > dz

IF (dx EQ 0) THEN xcorrection = 1.0 ELSE $

xcorrection = maxRange / dx

IF (dy EQ 0) THEN ycorrection = 1.0 ELSE $

ycorrection = maxRange / dy

IF (dz EQ 0) THEN zcorrection = 1.0 ELSE $

zcorrection = maxRange / dz

This internally computed correction is then multiplied by the corresponding [x, y, z] values of the ANISOTROPY property. The default value for this property is [1,1,1]. IDL converts, maintains, and returns this data as double-precision floating-point.

This property is registered as a user-defined property, but it is hidden by default.

Property Type | USERDEF
Name String | Anistrophy
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### ANTIALIAS

A Boolean value that indicates whether anti-aliasing should be used when drawing the contours. The default is 0, which disables anti-aliasing.

Property Type | BOOLEAN
Name String | Anti-aliasing
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### C_COLOR

A vector of colors to be used to specify the color of each contour level. The vector may be of the form [n] where each entry is a color index, or of the form [3,n] where each 3-element row is an RGB color, or of the form [4,n] where each 4-element row is an RGBA color. To remove contour colors after they have been set, set C_COLOR to a scalar.

If C_COLOR is not specified, the entire contour plot is drawn in the single color provided by the COLOR property, which is the default action. If there are no contour colors, GetProperty returns a value of -1 for this property.

If there are more contour levels than elements in C_COLOR, the elements of C_COLOR are cyclically repeated.

Property Type | USERDEF
Name String | Colors
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### C_FILL_PATTERN

An array of IDLgrPattern objects that represent the patterns to be applied at each contour level if the FILL property is non-zero. If there are more contour levels than fill patterns, the patterns will be cyclically repeated. If this property is set to any scalar value, all contour levels are filled with a solid color (this is the default). If there are no fill pattern objects stored in this property, GetProperty will return a value of -1.

This property is registered as a user-defined property, but it is hidden by default.

Property Type | USERDEF
Name String | Fill patterns
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### C_LABEL_INTERVAL

A floating-point vector that indicates the distance (measured parametrically relative to the length of each contour path) between labels for each contour level. If the number of contour levels exceeds the number of provided intervals, the C_LABEL_INTERVAL values will be repeated cyclically. The default is 0.4.

Property Type | Floating-point vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### C_LABEL_NOGAPS

An integer vector that indicates whether gaps should be computed for the labels at the corresponding contour value. A zero value indicates that gaps will be computed for labels at that contour value; a non-zero value indicates that no gaps will be computed for labels at that contour value. If the number of contour levels exceeds the number of elements in this vector, the C_LABEL_NOGAPS values will be repeated cyclically. By default, gaps for the labels are computed for all levels (so that a contour line does not pass through the label).

Property Type | Integer vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### C_LABEL_OBJECTS

An array of object references that provides examples of labels to be drawn for each contour level. The objects specified via this property must inherit from one of the following classes:

- IDLgrSymbol
- IDLgrText

If a single object is provided, and it is an IDLgrText object, each of its strings will correspond to a contour level. If a vector of objects is used, any IDLgrText objects should have only a single string; each object will correspond to a contour level.

By default, with C_LABEL_OBJECTS set equal to a null object, IDL computes text labels that are the string representations of the corresponding contour level values. Note that the objects specified via this property are used as descriptors only. The actual objects drawn as labels are generated by IDL, and may be accessed via the IDLgrContour::GetLabelInfo method. The contour labels will have the same color as the corresponding contour level (see C_COLOR) unless the C_USE_LABEL_COLOR property is specified. The orientation of the label will be automatically computed unless the C_USE_LABEL_ORIENTATION property is specified. The horizontal and vertical alignment of any text labels will default to 0.5 (i.e., centered) unless the USE_TEXT_ALIGNMENTS property is specified.

Note: The object(s) set via this property will not be destroyed automatically when the contour is destroyed.

Property Type | Object reference array
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### C_LABEL_SHOW

An integer vector that indicates whether labels are shown. For each contour value, if the corresponding value in the C_LABEL_SHOW vector is non-zero, the contour line for that contour value will be labeled. If the number of contour levels exceeds the number of elements in this vector, the C_LABEL_SHOW values will be repeated cyclically. The default is 0 indicating that no contour levels will be labeled.

Property Type | Integer vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### C_LINESTYLE

An integer array of linestyles that represent the linestyles to be applied at each contour level. The array may be either a vector of integers representing pre-defined linestyles, or an array of 2-element vectors representing a stippling pattern specification. If there are more contour levels than linestyles, the linestyles will be cyclically repeated. If this property is set to any scalar value, all levels are drawn as solid lines (this is the default). If there are no linestyles specified for this property, GetProperty will return a value of -1.

To use a pre-defined line style, set this property equal to one of the following integer values:

0 | Solid line (the default)
1 | Dotted
2 | Dashed
3 | Dash dot
4 | Dash dot dot dot
5 | Long dash
6 | No line drawn

This property is registered as a user-defined property, but it is hidden by default.

Property Type | USERDEF
Name String | Linestyles
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### C_THICK

A floating-point array of line thicknesses that represent the thickness to be applied at each contour level, where each element is a value between 0.0 and 10.0. A thickness of 0 displays a thin hairline on the chosen device. If there are more contour levels than line thicknesses, the thicknesses will be cyclically repeated. If this property is set to any scalar value, all contour levels are drawn with a line thickness of 1.0 points (this is the default). If there are no thicknesses specified for this property, GetProperty will return a value of -1.

This property is registered as a user-defined property, but it is hidden by default.

Property Type | USERDEF
Name String | Thicknesses
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### C_USE_LABEL_COLOR

An integer vector that indicates whether the COLOR property value for each of the label objects (for the corresponding contour level) is to be used to draw that label. If the number of contour levels exceeds the number of elements in this vector, the C_USE_LABEL_COLOR values will be repeated cyclically. By default, this value is zero, indicating that the COLOR properties of the label objects will be ignored, and the C_COLOR property for the contour object will be used instead.

Property Type | Integer vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

Note: When user-defined IDLgrSymbol objects are used for labels in an IDLgrContour object and C_USE_LABEL_COLORS is set to non-zero values, all properties including the color are defined by the object composing the user-defined symbol, and not from the values set on the symbol object itself. For example, a green bow tie-shaped IDLgrPolyline is assigned to the symbol object, and this symbol object is assigned to the C_LABEL_OBJECTS property. If C_USE_LABEL_COLOR is set, there will be green bow tie shaped labels on the contour lines. If C_USE_LABEL_COLOR is not set, the bow tie color is defined by C_COLOR. Properties defined on the symbol object itself are ignored in all cases.

### C_USE_LABEL_ORIENTATION

An integer vector that indicates whether the orientation for each of the label objects (for the corresponding contour level) is to be used when drawing the label. For text, the orientation of the object corresponds to the BASELINE and UPDIR property values; for a symbol, this refers to the default (un-rotated) orientation of the symbol. If the number of contour levels exceeds the number of elements in this vector, the C_USE_LABEL_ORIENTATION values will be repeated cyclically. By default, this value is zero, indicating that orientation of the label object(s) will be set to automatically computed values (to correspond to the direction of the contour paths).

Property Type | Integer vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### C_VALUE

A floating-point value or a floating-point vector for which contour values are to be drawn. Setting ONLY a scalar value of 0 will cause the default action of even sampling of contour levels across the DATA_VALUES, using the value of the N_LEVELS property to determine the number of samples. IDL will convert any other scalar value to a single element vector containing that value and will then use it as if the user had supplied it as a vector. If there are no values specified for this property, GetProperty will return a value of -1. IDL converts, maintains, and returns this data as double-precision floating-point.

This property is registered as a user-defined property, but it is hidden by default.

Property Type | USERDEF
Name String | Level values
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### CLIP_PLANES

A 4-by-N floating-point array of dimensions that specifies the coefficients of the clipping planes to be applied to this object. The four coefficients for each clipping plane are of the form [A, B, C, D], where Ax + By + Cz + D = 0. Portions of this object that fall in the half space Ax + By + Cz + D > 0 will be clipped. By default, the value of this property is a scalar (‑1) indicating that no clipping planes are to be applied.

Note: The clipping planes specified via this property are applied in addition to the near and far clipping planes associated with the IDLgrView in which this object appears.

Note: Clipping planes are applied in the data space of this object (prior to the application of any x, y, or z coordinate conversion).

Note: To determine the maximum number of clipping planes supported by the device, use the MAX_NUM_CLIP_PLANES keyword of the GetDeviceInfo method for the IDLgrBuffer, IDLgrClipboard, IDLgrWindow, and IDLgrVRML objects.

Property Type | Floating-point array
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### COLOR

The color to be used to draw the contours. The color may be specified as a color lookup table index or as a three-element vector [red, green, blue]. The default is [0,0,0]. This value will be ignored if the C_COLOR property is set to a vector.

In a property sheet, this property appears as a color property.

Property Type | COLOR
Name String | Color
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### DATA_VALUES

A floating-point vector or two-dimensional array that specifies the values to be contoured. The property is the same as the Values argument described in IDLgrContour::Init. IDL converts and stores this data as double-precision floating-point if the argument is of type DOUBLE or if the DOUBLE_DATA property is set. Otherwise, the data is stored in single-precision. IDL returns the data as double-precision if it was stored in double-precision.

Property Type | Floating-point vector or array
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### DAYS_OF_WEEK

A string vector of 7 values that indicates the names to be used for the days of the week when processing explicitly formatted dates (CDWA, CDwA, and CdwA format codes) with the LABEL_FORMAT property.

Property Type | String vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### DEPTH_OFFSET

An integer value that specifies an offset in depth to be used when rendering filled primitives. This offset is applied along the viewing axis, with positive values moving the primitive away from the viewer.

The units are “Z-Buffer units,” where a value of 1 is used to specify a distance that corresponds to a single step in the device’s Z-Buffer.

Use DEPTH_OFFSET to always cause a filled primitive to be rendered slightly deeper than other primitives, independent of model transforms. This is useful for avoiding stitching artifacts caused by rendering lines or polygons on top of other polygons at the same depth.

Note: Use this feature to remove stitching artifacts and not as a means for “layering” complex scenes with multiple DEPTH_OFFSET values. It is safest to use only a DEPTH_OFFSET value of 0, the default, and one other non-zero value, such as 1. Many system-level graphics drivers are not consistent in their handling of DEPTH_OFFSET values, particularly when multiple non-zero values are used. This can lead to portability problems because a set of DEPTH_OFFSET values may produce better results on one machine than on another. Using IDL’s software renderer will help improve the cross-platform consistency of scenes that use DEPTH_OFFSET.

Note: DEPTH_OFFSET has no effect unless the FILL property is set.

Property Type | Integer
Name String | Depth offset
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### DEPTH_TEST_DISABLE

An integer value that determines whether depth testing is disabled.

- Set this property to 0 (the default) to inherit the value set by the parent model or view. The parent view always enables depth testing. A model may also enable or disable depth testing.
- Set this property to 1 to explicitly disable depth buffer testing while drawing this object.
- Set this property to 2 to explicitly enable depth testing for this object.

Disabling depth testing allows an object to draw itself “on top” of other objects already on the screen, even if the object is located behind them.

Note: Disabling depth testing also disables depth buffer writing. When disabling depth testing, the DEPTH_TEST_FUNCTION and DEPTH_WRITE_DISABLE properties are effectively ignored.

This property is registered as an enumerated list, but it is hidden by default.

Property Type | ENUMLIST
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### DEPTH_TEST_FUNCTION

An integer value that determines the depth test function. Set this property to 0 (the default) to inherit the value set by the parent model or view. The parent view always sets a depth test function of LESS. A model may also set a depth test function value. The graphics device compares the object’s depth at a particular pixel location with the depth stored in the depth buffer at that same pixel location. If the comparison test passes, the object’s pixel is drawn at that location on the screen and the depth buffer is updated (if depth writing is enabled).

Set this property to any of the following values to use the desired function while rendering this object.

- 0 = INHERIT - use value from parent model or view.
- 1 = NEVER - never passes.
- 2 = LESS - passes if the object’s depth is less than the depth buffer’s value.
- 3 = EQUAL - passes if the object’s depth is equal to the depth buffer’s value.
- 4 = LESS OR EQUAL - passes if the object’s depth is less than or equal to the depth buffer’s value.
- 5 = GREATER - passes if the object’s depth is greater than or equal to the depth buffer’s value.
- 6 = NOT EQUAL - passes if the object’s depth is not equal to the depth buffer’s value.
- 7 = GREATER OR EQUAL - passes if the object’s depth is greater than or equal to the depth buffer’s value.
- 8 = ALWAYS - always passes

Less means closer to the viewer.

This property is registered as an enumerated list, but it is hidden by default.

Property Type | ENUMLIST
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### DEPTH_WRITE_DISABLE

An integer value that determines whether depth writing is disabled.

- Set this property to 0 (the default) to inherit the value set by the parent model or view. The parent view always enables depth writing. A model may also enable or disable depth writing.
- Set this property to 1 to explicitly disable depth buffer writing while rendering this object.
- Set this property to 2 to explicitly enable depth writing for this object.

Disabling depth writing allows an object to be overdrawn by other objects, even if the object is located in front of them.

Note: If depth testing (see DEPTH_TEST_DISABLE property) is disabled, depth writing is also automatically disabled.

This property is registered as an enumerated list, but it is hidden by default.

Property Type | ENUMLIST
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### DOUBLE_DATA

A Boolean value that indicates whether the object is to store data provided by either the Values argument or the DATA_VALUES property parameter in double-precision or single-precision floating-point.

- 0 = Single-precision floating-point
- 1 = Double-precision floating-point

IDL converts any value data already stored in the object to the requested precision, if necessary.

Property Type | Boolean
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### DOUBLE_GEOM

A Boolean value that indicates whether the object is to store data provided by any of the GEOMX, GEOMY, or GEOMZ property parameters in double-precision or single-precision floating-point.

- 0 = Single-precision floating-point
- 1 = Double-precision floating-point

IDL converts any geometry data already stored in the object to the requested precision, if necessary.

Property Type | Boolean
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### DOWNHILL

A Boolean value or enumerated list item that indicates whether downhill tick marks should be rendered as part of each contour level to indicate the downhill direction relative to the contour line.

Value | Property Sheet Value | Description
0 | Hide | Do not render downhill tick marks (the default)
1 | Show | Render downhill tick marks

Property Type | ENUMLIST
Name String | Downhill ticks
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### FILL

A Boolean value that indicates whether the contours should be filled. The default is to draw the contour levels as lines without filling. Filling contour may produce less than satisfactory results if your data contains NaNs, or if the contours are not closed.

Property Type | Boolean
Name String | Fill contours
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### GEOM

A floating-point array that contains the geometry associated with the contour. IDL returns this data in single-precision floating-point by default or in double-precision floating-point if the DOUBLE_GEOM property is set in the IDLgrContour::Init method.

The shape of the data contained in GEOM depends on the value of the GEOMZ property (and potentially the GEOMX and GEOMY properties). The following rules apply:

- If GEOMZ is a vector of Z values [z0,z1,z2,...] (in which case it is presumed that GEOMX and GEOMY were also set as vectors), GEOM will contain a 3∞N array of XYZ values: [[x0,y0,z0],[x1,y1,z1],...].
- If GEOMZ is a 3∞N array of XYZ values [[x0,y0,z0],[x1,y1,z1],...], GEOM will contain a 3∞N array of XYZ values: [[x0,y0,z0],[x1,y1,z1],...].
- If GEOMZ is an N∞M array of Z values [[z0,z1,z2,...],[zN,zN+1,zN+2,...],...] (in which case it is presumed that GEOMX and GEOMY were also set as N∞M arrays), GEOM will contain a 3∞N∞M array of XYZ values: [[[x0,y0,z0],[x1,y1,z1],...],[[xN,yN,zN],...],...]
- If GEOMZ is a scalar and the PLANAR property contains a True value (in which case it is presumed that DATA_VALUES was set as an N∞M array), GEOM will contain a 3∞N∞M array of XYZ values: [[[x0,y0,z0],[x1,y1,z1],...],[[xN,yN,zN],...],...]
- If GEOMZ is a scalar and the PLANAR property contains a False value, GEOM will be undefined.

Property Type | Floating-point
Name String | not displayed
Get: Yes | Set: No | Init: No | Registered: No

### GEOMX

A floating-point vector or two-dimensional array that specifies the X coordinates of the geometry with which the contour values correspond. If X is a vector, it must match the number of elements in the Values argument to the IDLgrContour::Init method or DATA_VALUES property value, or it must match the first of the two dimensions of the Values argument or DATA_VALUES property value (in which case, the X coordinates will be repeated for each row of data values). IDL converts and maintains this data as double-precision floating-point if the parameter is of type DOUBLE or if the DOUBLE_GEOM property is non-zero. Otherwise, the data is stored in single-precision. IDL returns the data as double-precision if it was stored in double-precision.

Property Type | Floating-point vector or array
Name String | not displayed
Get: No | Set: Yes | Init: Yes | Registered: No

### GEOMY

A floating-point vector or two-dimensional array specifying the Y coordinates of the geometry with which the contour values correspond. If Y is a vector, it must match the number of elements in the Values argument to the IDLgrContour::Init method or DATA_VALUES property value, or it must match the second of the two dimensions of the Values argument or DATA_VALUES property value (in which case, the Y coordinates will be repeated for each column of data values). IDL converts and maintains this data as double precision floating point if the parameter is of type DOUBLE or if the DOUBLE_GEOM property is non-zero. Otherwise, the data is stored in single precision. IDL returns the data as double precision if it was stored in double precision.

Property Type | Floating-point vector or array
Name String | not displayed
Get: No | Set: Yes | Init: Yes | Registered: No

### GEOMZ

A floating-point scalar, a vector, or a two-dimensional array specifying the Z coordinates of the geometry with which the contour values correspond.

- If GEOMZ is a scalar and the PLANAR property contains a True value, the resulting contour geometry will be projected onto the plane Z=GEOMZ. If GEOMZ is a scalar, and the PLANAR property is not set, any geometry associated with the contour will be freed.
- If GEOMZ is a vector of Z coordinates, the number of elements in the vector should be the same as the number of elements in DATA_VALUES.
- If GEOMZ is an array and the leading dimension is 3, then the data is treated as a list or array of 3-D vertices. The product of the array dimensions following the 3 should equal the number of DATA_VALUES.
- If GEOMZ is an array and the leading dimension is not 3, then the data is treated as a list or array of single Z coordinates. If the number of dimensions is 2, then the data is treated as a 2-D array of Z values. Otherwise, it is treated as a vector of Z values. In either case, the total number of elements in the array should be the same as the number of DATA_VALUES.
- If GEOMZ is not set, the geometry will be derived from the DATA_VALUES property (if it is set to a two-dimensional array). In this case, the connectivity is implied. The X and Y coordinates match the row and column indices of the array, and the Z coordinates match the data values.

IDL converts and maintains this data as double precision floating point if the parameter is of type DOUBLE or if the DOUBLE_GEOM property is non-zero. Otherwise, the data is stored in single precision. IDL returns the data as double precision if it was stored in double precision.

Property Type | Floating-point scalar, vector, or array
Name String | not displayed
Get: No | Set: Yes | Init: Yes | Registered: No

### HIDE

A Boolean value or enumerated list item that indicates whether this object should be drawn:

Value | Property Sheet | Description
0 | True | Draw graphic (the default)
1 | False | Do not draw graphic

Property Type | ENUMLIST
Name String | Show
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### LABEL_FONT

An object reference to an IDLgrFont object that describes the default font to be used for contour labels. This font will be used for all text labels automatically generated by IDL (i.e., if C_LABEL_SHOW is set but the corresponding C_LABEL_OBJECTS text object is not provided), or for any text label objects provided via C_LABEL_OBJECTS that do not already have the font property set. The default value for this property is a NULL object reference, indicating that 12 pt. Helvetica will be used.

Note: Objects specified via this property are not automatically cleaned up when the IDLgrContour object is destroyed.

Property Type | Object reference
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### LABEL_FORMAT

A string that represents a format string or the name of a function to be used to format the contour labels. If the string begins with an open parenthesis, it is treated as a standard format string. (Refer to the Format Codes in the IDL Reference Guide.) If the string does not begin with an open parenthesis, it is interpreted as the name of a callback function to be used to generate contour level labels.

The callback function is called with three parameters: Axis, Index, and Value, where:

- Axis is simply the value 2 to indicate that values along the Z axis are being formatted. (This allows a single callback routine to be used for both axis labeling and contour labeling.)
- Index is the contour level index (indices start at 0).
- Value is the data value of the current contour level.

Property Type | String
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### LABEL_FRMTDATA

A user-defined value of any type passed via the DATA keyword to the user-supplied formatting function specified via the LABEL_FORMAT property, if any. By default, this value is 0, indicating that the DATA keyword will not be set (and furthermore, need not be supported by the user-supplied function).

Note: LABEL_FRMTDATA will not be included in the structure returned via the ALL property to the IDLgrContour::GetProperty method.

Property Type | Scalar of any type
Name String | not displayed
Get: No | Set: No | Init: Yes | Registered: No

### LABEL_THRESHOLD

Set this property to a floating-point value between 0 and 1. Contour line segments whose normalized length is greater than this threshold will be labeled (if C_LABEL_SHOW is set for that contour level), while those whose length is less than the threshold will not have a label. The lengths are normalized by the root-mean-square range of the X and Y geometry. The default is 0, which indicates that all line segments will have a label (assuming C_LABEL_SHOW is set).

Property Type | FLOAT
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### LABEL_UNITS

A string that indicates the units to be used for default contour level labeling.

Valid unit strings include:

- "Numeric"
- "Years"
- "Months"
- "Days"
- "Hours"
- "Minutes"
- "Seconds"
- "Time" - Use this value to indicate that the contour levels correspond to time values; IDL will determine the appropriate label format based upon the range of values covered by the contour Z data.
- "" - The empty string is equivalent to the "Numeric" unit. This is the default.

If any of the time units are utilized, then the contour values are interpreted as Julian date/time values.

Note: The singular form of each of the time unit strings is also acceptable (for example, LEVEL_UNITS='Day' is equivalent to LEVEL_UNITS='Days').

Property Type | String
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### MAX_VALUE

A floating point value that indicates the maximum value to be plotted. Data values greater than this value are treated as missing data. The default is the maximum value of the input Z data. IDL converts, maintains, and returns this data as double-precision floating-point.

Property Type | FLOAT
Name String | Maximum value
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### MONTHS

A string vector of 12 values indicating the names to be used for the months when processing explicitly formatted dates (CMOA, CMoA, and CmoA format codes) with the C_LABEL_FORMAT keyword.

Property Type | String vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### MIN_VALUE

A floating-point value that indicates the minimum value to be plotted. Data values less than this value are treated as missing data. The default is the minimum value of the input Z data. IDL converts, maintains, and returns this data as double-precision floating-point.

Property Type | FLOAT
Name String | Minimum value
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### N_LEVELS

An integer value that indicates the number of contour levels to generate. This property is ignored if the C_VALUE property is set to a vector, in which case, the number of levels is derived from the number of elements in that vector. Set this property to zero to indicate that IDL should compute a default number of levels based on the range of data values. This is the default.

Property Type | INTEGER
Name String | Number of levels
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### PALETTE

An object reference to a palette object (an instance of the IDLgrPalette object class) that defines the color palette of this object. This property is only used if the destination device is using the RGB color model. If so, and a color value for the object is specified as a color index value, the palette set by this property is used to translate the color to RGB space. If the PALETTE property on this object is not set, the destination object PALETTE property is used (which defaults to a grayscale ramp).

Note: Objects specified via this property are not automatically cleaned up when the IDLgrContour object is destroyed.

This property is registered as a user-defined property, but it is hidden by default.

Property Type | USERDEF
Name String | Color palette
Get: No | Set: No | Init: Yes | Registered: Yes

### PARENT

An object reference to the object that contains this contour.

Property Type | Object reference
Name String | not displayed
Get: Yes | Set: No | Init: No | Registered: No

### PLANAR

A Boolean value or enumerated list item that indicates whether the contoured data is to be projected onto a plane. This property is ignored if GEOMZ is not a scalar.

Value | Property Sheet Value | Description
0 | Planar | Any geometry associated with the contour will be freed
1 | Three-D | Projects the contoured data onto a plane at the Z locations provided by the GEOMZ property (the default)

Property Type | ENUMLIST
Name String | Projection
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### POLYGONS

An integer array of polygon descriptions that represents the connectivity information for the data to be contoured (as specified in the Values argument or the DATA_VALUES property). A polygon description is an integer or long word array of the form: [n, i0, i1, ..., in-1], where n is the number of vertices that define the polygon, and i0..in-1 are indices into the X, Y, and Z arguments that represent the polygon vertices. To ignore an entry in the POLYGONS array, set the vertex count, n, to 0. To end the drawing list, even if additional array space is available, set n to -1. If this property is not specified, a single polygon will be generated.

Note: The connectivity array described by POLYGONS allows an individual object to contain more than one polygon. Vertex, normal, and color information can be shared by the multiple polygons. Consequently, the polygon object can represent an entire mesh and compute reasonable normal estimates in most cases.

Property Type | Integer array
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### REGISTER_PROPERTIES

A Boolean value that determines whether to register properties available for this object. If this property is set, all properties marked in this properties section as “Registered: Yes” will be registered for display in a property sheet. This property is useful mainly when creating iTools. By default, no properties are registered.

Property Type | Boolean
Name String | not displayed
Get: No | Set: No | Init: Yes | Registered: No

### SHADE_RANGE

A two-element integer array that specifies the range of pixel values (color indices) to use for shading. The first element is the color index for the darkest pixel. The second element is the color index for the brightest pixel. This value is ignored when the contour is drawn to a graphics destination that uses the RGB color model.

Property Type | Integer array
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### SHADER

An object reference to an IDLgrShader object (or an object containing IDLgrShader as a superclass). When there is suitable graphics card hardware support, the contour is rendered using the GLSL shader program (executed on the graphics card) instead of using fixed OpenGL properties when initially drawn. (If a suitable graphics card is not present, IDL ignores the shader object when the scene is drawn.) A single IDLgrShader object may be associated with additional contour objects or other graphic objects that have the SHADER property.

Property Type | Object reference
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### SHADING

An integer value or enumerated list item that indicates the type of shading to use:

Value | Property Sheet Value | Description
0 | Flat | The color has a constant intensity for each face of the contour, based on the normal vector (the default)
1 | Gouraud | The colors are interpolated between vertices, and then along scanlines from each of the edge intensities

Property Type | ENUMLIST
Name String | Shading
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### TICKINTERVAL

A floating-point value that indicates the distance between downhill tickmarks, in data units. If TICKINTERVAL is not set, or if you explicitly set it to zero, IDL will compute the distance based on the geometry of the contour. IDL converts, maintains, and returns this data as double-precision floating-point.

Property Type | FLOAT
Name String | Downhill tick interval
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### TICKLEN

A floating-point value that indicates the length of the downhill tickmarks, in data units. If TICKLEN is not set, or if you explicitly set it to zero, IDL will compute the length based on the geometry of the contour. IDL converts, maintains, and returns this data as double-precision floating-point

Property Type | FLOAT
Name String | Downhill tick length
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### USE_TEXT_ALIGNMENTS

A Boolean value that indicates whether, for any IDLgrText labels (as specified via the C_LABEL_OBJECTS property), the ALIGNMENT and VERTICAL_ALIGNMENT property values for the given IDLgrText object(s) are to be used to draw the corresponding labels. By default, this value is zero, indicating that the ALIGNMENT and VERTICAL_ALIGNMENT properties of the label IDLgrText object(s) will be set to default values (0.5 for each, indicating centered labels).

Property Type | Boolean
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### XCOORD_CONV

A floating-point vector, [s0, s1], of scaling factors used to convert X coordinates from data units to normalized units. The formula for the conversion is as follows:

NormalizedX = s0 + s1 * DataX

Recommended values are:

[(-Xmin)/(Xmax-Xmin), 1/(Xmax-Xmin)]

The default is [0.0, 1.0]. IDL converts, maintains, and returns this data as double-precision floating-point.

Property Type | Floating-point vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### XRANGE

A two-element double-precision floating-point vector of the form [xmin, xmax] specifying the range of the X data coordinates covered by the contour.

Property Type | Floating-point vector
Name String | not displayed
Get: Yes | Set: No | Init: No | Registered: No

### YCOORD_CONV

A floating-point vector, [s0, s1], of scaling factors used to convert Y coordinates from data units to normalized units. The formula for the conversion is as follows:

NormalizedY = s0 + s1 * DataY

Recommended values are:

[(-Ymin)/(Ymax-Ymin), 1/(Ymax-Ymin)]

The default is [0.0, 1.0]. IDL converts, maintains, and returns this data as double-precision floating-point.

Property Type | Floating-point vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### YRANGE

A two-element double-precision floating-point vector of the form [ymin, ymax] that specifies the range of the Y data coordinates covered by the contour.

Property Type | Floating-point vector
Name String | not displayed
Get: Yes | Set: No | Init: No | Registered: No

### ZCOORD_CONV

A floating-point vector, [s0, s1], of scaling factors that converts Z coordinates from data units to normalized units. The formula for the conversion is as follows:

NormalizedZ = s0 + s1 * DataZ

Recommended values are:

[(-Zmin)/(Zmax-Zmin), 1/(Zmax-Zmin)]

The default is [0.0, 1.0]. IDL converts, maintains, and returns this data as double-precision floating-point.

Property Type | Floating-point vector
Name String | not displayed
Get: Yes | Set: Yes | Init: Yes | Registered: No

### ZRANGE

A two-element double-precision floating-point vector of the form [zmin, zmax] that specifies the range of the Z data coordinates covered by the contour.

Property Type | Floating-point vector
Name String | not displayed
Get: Yes | Set: No | Init: No | Registered: No