IDLgrPolygon Properties
IDLgrPolygon 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 IDLgrPolygon::GetProperty. Properties with the word “Yes” in the “Init” column of the property table can be set via IDLgrPolygon::Init. Properties with the word “Yes” in the “Set” column in the property table can be set via IDLgrPolygon::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.
|
|
ALPHA_CHANNEL | AMBIENT |
STYLE | TEXTURE_COORD |
TEXTURE_INTERP | TEXTURE_MAP |
THICK | VERT_COLORS |
XCOORD_CONV | XRANGE |
YCOORD_CONV | YRANGE |
ZCOORD_CONV | ZERO_OPACITY_SKIP |
ZRANGE |
|
In addition, objects of this class inherit:
ALL
An anonymous structure containing the values of all of the properties associated with the state of this object. State information about the object includes things like color, range, tick direction, etc., but not image, vertex, or connectivity data, or user values.
Note: The fields of this structure may change in subsequent releases of IDL.
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 polygon. The default value of 1.0 causes IDL to draw the polygon completely opaque. If the value of this property is less than 1.0, then the pixels of the polygon are blended with the pixels already on the screen. The color of the polygon 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. Note that since a single polygon object may contain many polygons, the ordering of the polygons within the object (POLYGONS property) must be considered as well.
This property has no effect on devices using indexed color mode.
If VERT_COLORS are supplied, then the value of this property is used for the vertex color alpha if the VERT_COLORS do not contain alpha values (3-channel RGB colors). If the VERT_COLORS do contain alpha values (4-channel RGBA colors), then the alpha for each vertex color is used.
When used with textures, the ALPHA_CHANNEL value controls the opacity of the polygon in the same manner as when not using a texture. If the texture contains alpha information, the effective alpha of each texel is the texel’s alpha multiplied by the polygon’s alpha value (ALPHA_CHANNEL property).
Property Type |
Float-point value |
||
Name String |
Transparency |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
AMBIENT
Set this property to a three-element vector [red, green, blue] to specify the ambient reflective color of the object. The default is black or [0,0,0], which specifies that the value of the COLOR property determines the ambient reflective color of the object. Setting an ambient color other than black makes the object use that color for ambient reflectance. Ambient reflectance affects the overall color of the object and is most noticeable where the object is not directly lit by a light source. This property has no effect on devices using indexed color mode.
Property Type |
COLOR |
||
Name String |
Ambient reflective color |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
ANTIALIAS
A Boolean value that indicates whether anti-aliasing should be used when drawing the polygon. The default is 0, which disables anti-aliasing.
Property Type |
BOOLEAN |
||
Name String |
Anti-aliasing |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
BOTTOM
A scalar or three-element vector [red, green, blue] specifying the color used for drawing the backs of the polygons. (The back of a polygon is the side opposite the normal direction). Set this property to a scalar to draw the backs of the polygons with the same color as the front. If set to a scalar, IDL returns the default value of -1 if the property is retrieved with GetProperty. Setting a bottom color is only supported when the destination device uses RGB color mode.
In a property sheet, this property appears as a color property.
Property Type |
COLOR |
||
Name String |
Bottom color |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
CLIP_PLANES
A 4-by-N floating-point array 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 property 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
A color index or a three-element vector [red, green, blue] specifying the color used to draw polygons. The default color is [0, 0, 0] (black). If the TEXTURE_MAP property is used, the final color is modulated by the texture map pixel values. This property is ignored if the VERT_COLORS property is provided.
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
A 2-by-n or a 3-by-n array of any type which defines, respectively, the 2-D or 3‑D vertex data. This property is stored as double precision floating point values if the property variable is of type DOUBLE or if the DOUBLE property parameter is also specified, otherwise it is converted to single precision floating point.
Specifying this property is the same as specifying the optional X, Y, and Z arguments to the IDLgrPolygon::Init method.
Property Type |
Array of any type |
||
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_OFFEST has no effect unless the value of the STYLE property is 2 (Filled).
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 |
DIFFUSE
Set this property to a three-element vector [red, green, blue] to specify the diffuse reflectance color of the object. The default is black or [0,0,0], which specifies that the value of the COLOR property determines the diffuse reflective color of the object. Setting a diffuse color other than black makes the object use that color for diffuse reflectance. Diffuse reflectance is an important factor in determining the color of the object and is affected by the color and angle of the light sources in a scene. This property has no effect on devices using indexed color mode.
Property Type |
COLOR |
||
Name String |
Diffuse reflective color |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
DOUBLE
A Boolean value that indicates whether data provided by any of the input arguments will be stored in this object as using double-precision floating-point format.
- Set this property equal to 1 to convert input data to double-precision floating-point format.
- Set this property equal to 0 to convert input data to single-precision floating-point format.
- If you do not specify a value for this property, no data type conversion will be performed, and the data will be stored with its original precision.
Setting this property may be desirable if the data consists of large integers that cannot be accurately represented in single-precision floating-point arithmetic. This property is also automatically set to 1 if any of the input arguments are stored using a variable of type DOUBLE.
Property Type |
Boolean |
||
Name String |
not displayed |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: No |
EMISSION
Set this property to a three-element vector [red, green, blue] to specify the emissive color of the object. The default is black or [0,0,0], which specifies that the object contributes no additional color in an emissive sense. Setting an emission color other than black makes the object appear as if it were emitting that color. This property is used to simulate light sources or other objects that emit light in a scene. This property has no effect on devices using indexed color mode.
Property Type |
COLOR |
||
Name String |
Emissive color |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
FILL_PATTERN
An object reference to an IDLgrPattern object that specifies the fill pattern to use for filling the polygons. By default, FILL_PATTERN is set to a null object reference, specifying a solid fill.
Note: Objects specified via this property are not automatically cleaned up when the IDLgrPolygon object is destroyed.
Property Type |
Object reference |
||
Name String |
not displayed |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: No |
HIDDEN_LINES
A Boolean value that determines whether to draw point and wireframe surfaces using hidden line (point) removal. By default, hidden line removal is disabled.
Property Type |
Boolean |
||
Name String |
Remove hidden |
||
Get: No |
Set: Nos |
Init: Yes |
Registered: Yes |
HIDE
A Boolean value or enumerated list item that indicates whether this object should be drawn:
Value |
Property Sheet Value |
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 |
LINESTYLE
An integer value that indicates the line style that should be used to draw the polygon. The value can be either an integer value specifying a pre-defined line style, or a two-element vector specifying a stippling pattern.
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 |
To define your own stippling pattern, specify a two-element vector [repeat, bitmask], where repeat indicates the number of times consecutive runs of 1’s or 0’s in the bitmask should be repeated. (That is, if three consecutive 0’s appear in the bitmask and the value of repeat is 2, then the line that is drawn will have six consecutive bits turned off.) The value of repeat must be in the range 1 ≤ repeat ≤ 255.
The bitmask indicates which pixels are drawn and which are not along the length of the line. Bitmask is most conveniently specified as a 16-bit hexadecimal value.
For example, LINESTYLE = [2, 'F0F0'X]
describes a dashed line (8 bits on, 8 bits off, 8 bits on, 8 bits off).
In a property sheet, this property appears as follows:
Property Type |
Linestyle |
||
Name String |
Line style |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
NORMALS
A 3-by-n floating-point array of unit polygon normals at each vertex. If this property is not set, vertex normals are computed by averaging shared polygon normals at each vertex. Normals are computed using the Right Hand Rule; that is, if the polygon is facing the viewer, vertices are taken in counterclockwise order. To remove previously specified normals, set NORMALS to a scalar.
If you do not use the NORMALS property, IDL calculates normals the first time it draws the IDLgrPolygon. IDL reuses those normals for subsequent draws unless it determines that a fresh recalculation of normals is required, such as if the vertices of the IDLgrPolygon are changed, or you supply new normals via the NORMALS property.
Property Type |
Floating-point array |
||
Name String |
not displayed |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: No |
PALETTE
An object reference to a palette object (an instance of the IDLgrPalette object class). 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 IDLgrPolygon 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 object.
Property Type |
Object reference |
||
Name String |
not displayed |
||
Get: Yes |
Set: No |
Init: No |
Registered: No |
POLYGONS
An integer array of one or more polygon descriptions. IDL converts and stores this array as 32-bit signed integers. Set this property to a scalar to remove a polygon description array from the object, returning it to its initial empty state. When this property does not contain an array of polygon descriptions, IDL draws a single polygon using the vertices in the order they appear in the vertex list (see the DATA 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.
Tip: To ignore an entry in the POLYGONS array, set the entry to 0.
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 |
REJECT
An integer value or an enumerated list item that rejects polygons as being hidden depending on the orientation of their normals. Select from one of the following values:
Value |
Property Sheet Value |
Description |
0 |
None |
No polygons are hidden |
1 |
Normals point away |
Polygons whose normals point away from the viewer are hidden |
2 |
Normals point toward |
Polygons whose normals point toward the viewer are hidden |
Set this property to zero to draw all polygons regardless of the direction of their normals.
Note: The REJECT property has no effect on non-filled polygons (where STYLE is 0 or 1).
Property Type |
ENUMLIST |
||
Name String |
Polygon rejection |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
RESET_DATA
A Boolean value that determines whether to treat the data provided via the DATA property as a new data set unique to this object, rather than overwriting data that is shared by other objects. There is no reason to use this property if the object on which the property is being set does not currently share data with another object (that is, if the SHARE_DATA property is not in use). This property has no effect if no new data is provided via the DATA property.
Property Type |
Boolean |
||
Name String |
not displayed |
||
Get: No |
Set: Yes |
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. The default is [0, 255]. This property is ignored when the polygons are 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 polygon 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 polygon 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 an enumerated list item that represents the type of shading to use:
Value |
Property Sheet Value |
Description |
0 |
Flat |
The color of the first vertex in each polygon is used to define the color for the entire polygon. The color has a constant intensity based upon the normal vector (the default). |
1 |
Gouraud |
The colors along each line are interpolated between vertex colors, and then along scanlines from each of the edge intensities. |
Gouraud shading may be slower than flat shading, but results in a smoother appearance.
Property Type |
ENUMLIST |
||
Name String |
Shading |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
SHARE_DATA
An object reference to an object with which data is to be shared by this polygon(s). Polygons may only share data with another polygons object or a polyline. The SHARE_DATA property is intended for use when data values are not set via an argument to the object’s Init method or by setting the object’s DATA property.
Note: Objects specified via this property are not automatically cleaned up when the IDLgrPolygon object is destroyed.
Property Type |
Object reference |
||
Name String |
not displayed |
||
Get: No |
Set: Yes |
Init: Yes |
Registered: No |
SHININESS
Set this property to a floating-point value between 0.0 and 128.0, inclusive. The default value is 25.0. Higher values of shininess concentrate specular highlights into smaller and brighter areas, while lower values will spread out specular highlights over a wider area and make them appear dimmer.
Property Type |
FLOAT |
||
Name String |
Shininess |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
SPECULAR
Set this property to a three-element vector [red, green, blue] to specify the color of the specular highlights of an object. The default is white or [255,255,255]. This property is used to simulate and control reflective highlights on an object. This property has no effect on devices using indexed color mode.
Property Type |
COLOR |
||
Name String |
Specular highlight color |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
STENCIL_BUFFER_FILL
Set this property to fill polygons using an OpenGL® stencil buffer method, which is faster than using the IDLgrTessellator object. The stencil buffer method is described in the following reference:
Shreiner, D. "Drawing Filled, Concave Polygons Using the Stencil Buffer." In OpenGL® Programming Guide, 7th edition. Addison-Wesley, 2009.
Setting this property is particularly useful when you need to fill complicated or concave polygons.
This property only applies if the STYLE property is set to a value of 2.
Property Type |
STENCIL_BUFFER_FILL |
||
Name String |
Stencil buffer fill |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: No |
STYLE
An integer value or an enumerated list item that specifies how the polygon should be drawn:
Value |
Property Sheet Value |
Description |
0 |
Points |
Only vertices are drawn, using either COLOR or VERT_COLORS |
1 |
Lines |
Each polygon is outlined by connecting vertices |
2 |
Filled |
The polygon faces are shaded (the default) |
Property Type |
ENUMLIST |
||
Name String |
Style |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
TEXTURE_COORD
A 2 by n array containing the texture map coordinates, where n is the number of polygon vertices. Each two-element entry in this array specifies the texture coordinates for the corresponding vertex in the vertex list. One texture coordinate pair should exist for each vertex. Use this property in conjunction with the TEXTURE_MAP property to wrap images over 2-D and 3-D polygons. Default coordinates are not provided.
Texture coordinates are normalized. This means that the m x n image object specified via the TEXTURE_MAP property is mapped into the range [0.0, 0.0] to [1.0, 1.0]. If texture coordinates outside the range [0.0, 0.0] to [1.0, 1.0] are specified, the image object is tiled into the larger range.
For example, suppose the image object specified via TEXTURE_MAP is a 256 x 256 array, and we want to map the image into a square two units on each side. To completely fill the square with a single copy of the image:
TEXTURE_COORD = [[0,0], [1,0], [1,1], [0,1]]
To fill the square with four tiled copies of the image:
TEXTURE_COORD = [[0,0], [2,0], [2,2], [0,2]]
Property Type |
Floating-point array |
||
Name String |
not displayed |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: No |
TEXTURE_INTERP
A Boolean value or an enumerated list item that indicates whether bilinear sampling is to be used for texture mapping an image onto the polygon(s).
Value |
Property Sheet Value |
Description |
0 |
Nearest neighbor |
Surveys the value of the nearest pixel (the default) |
1 |
Bilinear |
Surveys the 4 closest pixels |
Property Type |
ENUMLIST |
||
Name String |
Texture interpolation |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
TEXTURE_MAP
An object reference to an IDLgrImage object to be texture mapped onto the polygons. The tiling or mapping of the texture is defined expressly by TEXTURE_COORD. If this property is omitted, polygons are filled with the color specified by the COLOR or VERT_COLORS property. If both TEXTURE_MAP and COLORS or VERT_COLORS properties exist, the color of the texture is modulated by the base color of the object. (This means that for the clearest display of the texture image, the COLOR property should be set equal to [255,255,255].) To remove a texture map, set TEXTURE_MAP equal to a null object reference.
Setting TEXTURE_MAP to the object reference of an IDLgrImage that contains an alpha channel allows you to create a transparent IDLgrPolygon object. If an alpha channel is present in the IDLgrImage object, IDL blends the texture using the blend function src=alpha and dst=1 – alpha, which corresponds to a BLEND_FUNCTION of (3,4) as described for the IDLgrImage object.
If the width and/or height of the provided image is not an exact power of two, then the texture map will consist of the given image pixel values resampled to the nearest larger dimensions that are exact powers of two.
Note: Texture mapping is disabled when rendering to a destination object that uses Indexed color mode.
Note: Texture mapping is applied to all styles that are set by the STYLE property.
Note: Objects specified via this property are not automatically cleaned up when the IDLgrPolygon object is destroyed.
This property is registered as a user-defined property, but it is hidden by default.
Property Type |
USERDEF |
||
Name String |
Texture map |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
THICK
A floating-point value between 0.0 and 10.0, specifying the size of the points or the thickness of the lines to be drawn when STYLE is set to either 0 (Points) or 1 (Lines), in points. A thickness of 0 displays a thin hairline on the chosen device. Out-of-range values are quietly clamped to the allowed range. The default is 1.0 points.
Note: The value of this property is ignored if STYLE is set to 2 (Filled).
In a property sheet, this property appears as follows:
Property Type |
Thickness |
||
Name String |
Thickness |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
VERT_COLORS
A vector of colors used to specify the color of a polygon vertex. 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 vertex colors after they have been set, set VERT_COLORS to a scalar.
If VERT_COLORS is not specified, the entire polygon is drawn in the single color provided by the COLOR property, which is the default action.
If SHADING is set to 0 (Flat, the default) the color of a polygon is the color of the first vertex of that polygon. Color is interpolated between vertices if SHADING is set to 1 (Gouraud).
If there are more vertices than elements in VERT_COLORS, the elements of VERT_COLORS are cyclically repeated.
Note: If the polygon object is being rendered on a destination device that uses the Indexed color model, and the view that contains the polygon also contains one or more light objects, the VERT_COLORS property is ignored and the SHADE_RANGE property is used instead.
This property is registered as a user-defined property, but it is hidden by default.
Property Type |
USERDEF |
||
Name String |
Vertex colors |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
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 floating-point vector of the form [xmin, xmax] that specifies the range of x data coordinates covered by the graphic object. IDL maintains and returns this property in double-precision floating-point.
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 floating-point vector of the form [ymin, ymax] that specifies the range of y data coordinates covered by the graphic object. IDL maintains and returns this property in double-precision floating-point.
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 used to convert 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 |
ZERO_OPACITY_SKIP
A Boolean value that makes it possible to gain finer control over the rendering of textured polygon pixels (texels) with an opacity of 0 in the texture map. Texels with zero opacity do not affect the color of a screen pixel since they have no opacity.
- 1 = Any texels are “skipped” and not rendered at all (the default).
- 0 = The Z-buffer is updated for these pixels and the display image is not affected as noted above.
By updating the Z-buffer without updating the display image, the polygon can be used as a clipping surface for other graphics primitives drawn after the current graphics object. The default value for this property is 1.
Note: This property has no effect if no texture map is used or if the texture map in use does not contain an opacity channel.
Property Type |
Boolean |
||
Name String |
Skip zero opacity |
||
Get: Yes |
Set: Yes |
Init: Yes |
Registered: Yes |
ZRANGE
A two-element floating-point vector of the form [zmin, zmax] that specifies the range of z data coordinates covered by the graphic object. IDL maintains and returns this property in double-precision floating-point.
Property Type |
Floating-point vector |
||
Name String |
not displayed |
||
Get: Yes |
Set: No |
Init: No |
Registered: No |