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

# IDLgrModel Properties

IDLgrModel 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 IDLgrModel::GetProperty. Properties with the word “Yes” in the “Init” column of the property table can be set via IDLgrModel::Init. Properties with the word “Yes” in the “Set” column in the property table can be set via IDLgrModel::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.

- ACTIVE_POSITION
- ALL
- CLIP_PLANES
- DEPTH_TEST_DISABLE
- DEPTH_TEST_FUNCTION
- DEPTH_WRITE_DISABLE
- HIDE
- LIGHTING
- PARENT
- REGISTER_PROPERTIES
- RENDER_METHOD
- SELECT_TARGET
- TRANSFORM

In addition, objects of this class inherit:

- IDL_Container
- IDLitComponent

### ACTIVE_POSITION

This scalar integer property is a zero-based index into the model container. It indicates the container index of the object that is drawn by this model when the value of the RENDER_METHOD property is 1.

This property is ignored when the value of the RENDER_METHOD property is not 1.

The default value of this property is 0, indicating the first object in the container.

If this property specifies an index that does not refer to a valid container index, this model object draws nothing when the value of the RENDER_METHOD property is 1. This can happen when the value of the ACTIVE_POSITION property is less than zero, or greater than or equal to the number of objects currently in the container.

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

Property Type | INTEGER
Name String | Active position
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### ALL

An anonymous structure containing the values of all of the properties associated with this object.

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

### CLIP_PLANES

An 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: Note - Clipping planes are applied in the data space of the objects this model contains (prior to the application of this model’s transform).

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.

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

Property Type | USERDEF
Name String | Clipping planes
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.

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

Property Type | ENUMLIST
Name String | Depth Test Disable
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### 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 | Depth Test Enable
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

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

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

Property Type | ENUMLIST
Name String | Depth Write Disable
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### HIDE

A Boolean value or an enumerated list item indicating whether this object should be drawn:

Value | Property Sheet Value | Description
0 | True | Draw the model and children (the default)
1 | False | Do not draw the model or children

Note: HIDE only controls the display attributes of IDLgrModel children since the IDLgrModel object itself lacks geometry.

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

### LIGHTING

An integer value that indicates whether lighting is to be enabled or disabled for all atomic graphic objects that have this model as a parent. IDLgrModel objects that have this model as a parent will not be effected, as they have their own value for this property. If this value is set to 0, any lights added as children of this model will be used to illuminate any other models in the view hierarchy that have lighting enabled.

- 0 = Disable lighting
- 1 = Enable single-sided lighting
- 2 = Enable double-sided lighting (the default)

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

Property Type | ENUMLIST
Name String | Lighting
Get: Yes | Set: Yes | 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

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

### RENDER_METHOD

This scalar integer property specifies how this model object renders the objects in its container.

If this property is set to a value of 0, the default, the model object draws all objects in its container.

If this property is set to a value of 1, the model object draws only the object specified by the ACTIVE_POSITION property.

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

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

### SELECT_TARGET

A Boolean value that tags the model object as the target object to be returned when any object contained by the model is selected via the IDLgrWindow::Select method.

- 0 = Do not tag the model object as the target object (default).
- 1 = Tag the model object as the target object.

By default, an IDLgrModel object cannot be returned as the target of a SELECT operation since it contains no geometry.

This property is registered as a Boolean property, but it is hidden by default.

Property Type | Boolean
Name String | Select target
Get: Yes | Set: Yes | Init: Yes | Registered: Yes

### TRANSFORM

A 4-by-4 floating-point transformation matrix to be applied to the object. This matrix will be multiplied by its parent’s transformation matrix (if the parent has one). The default is the identity matrix. IDL converts, maintains, and returns this data as double-precision floating-point. See Translating, Rotating, and Scaling Objects and Coordinates of 3D Graphics for more information.

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

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

## See Also

Translating, Rotating and Scaling Objects,