DoExecSet(3D)

NAME
DoExecSet - Create an object that modifies the executability of objects

SYNOPSIS
C:
DtObject DoExecSet(n, list, setop)
DtInt n;
DtInt list[];
DtSetOperation setop;

FORTRAN:
INTEGER*4 DOES(N, LIST, SETOP)
INTEGER*4 N
INTEGER*4 LIST(N)
INTEGER*4 SETOP

DESCRIPTION
DoExecSet creates an organizational object that modifies the executability set. The executability set is a set of classes (object types) that are currently eligible to be executed as definition or display objects. By default, all classes are included in this set.

The parameter list is a list of class identifiers. A class identifier is determined from the class name with DsInqClassId <DSQCI>.
 n is the number of elements in the list. Each element of the list refers to a member of the executability set (a class) to be affected. The argument setop specifies how the status of those members are to be affected. Possible choices for setop are:

DcSetAdd <DCSADD>
    Adds the classes listed in list to the current executability set.

DcSetDelete <DCSDEL>
    Removes the classes listed in list from the current executability set.

DcSetInvert <DCSINV>
    Causes all classes referred to in list to take on the opposite of their current status. In other words, if the given classes are not members of the current executability set, they will be added; if they currently are included, they will be removed.

DcSetReplace <DCSREP>
    Replaces the current executability set with one that includes only the classes given in list.

When a class is non-executable, the effect is the same as if no objects of that type existed below that point in the tree until that class is made executable again. This is useful for making a temporary global change to an entire subtree.

For instance, imagine a complex scene containing hundreds of objects that are defined with many different representation types. To render either the entire scene or some portion of it all in the same representation type would require extensive editing of the scene. The same could be accomplished using DoExecSet by adding just two new group elements at the beginning of the group to be affected: a DoRepType <DOREPT> to set the desired representation type and a DoExecSet to remove representation type from the current executability set. Other classes subject to this form of manipulation include any of the appearance attributes. In fact, some very bizarre effects can result from disabling other group element types like geometric attributes.

Note that this is a useful, flexible, and powerful function but capable of disastrous effects if not used carefully. It is highly recommended that this be used only to temporarily disable executability of one or more attribute objects for a single subtree. It is further advised that DcSetDelete <DCSDEL> be the only setop used as above; the other set operations exist mainly for the sake of consistency.

ERRORS
DoExecSet will fail if the setop value is invalid.

[FATAL - invalid set operation]

DEFAULTS
The default DoExecSet includes all currently defined objects that can be placed in the database.

SEE ALSO
DoNameSet(3D), DoFilter(3D), DoRepType(3D) DsInqClassId(3d)