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

Objects of this class have the following properties.

In addition, objects of this class inherit:

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