DoFilter(3D)

NAME
DoFilter - Create a filter modifying object

SYNOPSIS
C:
DtObject DoFilter(filter, n, members, setop)
DtFilter filter;
DtInt n;
DtInt members[];
DtSetOperation setop;

FORTRAN:
INTEGER*4 DOFL(FILTER, N, MEMBER, SETOP)
INTEGER*4 FILTER
INTEGER*4 N
INTEGER*4 MEMBER(N)
INTEGER*4 SETOP

DESCRIPTION
DoFilter creates an organizational object for modifying filter attributes. Filter attributes, in conjunction with name set attributes, provide a high-level control over the invisibility and pickability.

Name sets and filters are specified as enumerated sets of members. Currently Dor supports up to 256 members referred to by the numbers 0 through 255. The meaning of a member is defined by the user. For example, the user could reserve member number 0 to indicate red objects and member number 9 to indicate spheres. Then an object whose name set includes members 0 and 9 indicates that that object is a red sphere while a name set including only member number 9 indicates a non-red sphere.

There exists an inclusion and an exclusion filter for invisibility and pickability. Each quality is enabled if the intersection of the current name set with the current inclusion filter for that quality is not empty and if the intersection of the current name set with the corresponding exclusion filter is empty. These qualities are enabled and disabled with the corresponding switch primitive attributes.

Like name sets, filter attribute values are calculated during execution.

Invisibility means that primitive objects will not be displayed. This applies to picking as well as rendering; i.e., invisible objects cannot be picked. Pickability means that objects are eligible to be picked during picking (see DdPickObjs).

The parameter filter specifies the current filter to be affected. Possible choices are:
	DcInvisibilityInclusion <DCINVI>
	DcInvisibilityExclusion <DCINVE>
	DcPickabilityInclusion <DCPCKI>
	DcPickabilityExclusion <DCPCKE>

The parameter members is a list of members of the specified filter to be affected. n is the number of elements in the list. The parameter setop specifies how the status of the members referred to in members is to be affected. The valid choices for setop are:

DcSetAdd <DCSADD>
    Adds members listed in members to the current specified filter.

DcSetDelete <DCSDEL>
    Removes members listed in members from the current specified filter.

DcSetInvert <DCSINV>
    Causes all members of a filter listed in members to take on the opposite of their current values. In other words, if the given members are not in the the current filter, they will be added; if they are included, they will be removed.

DcSetReplace <DCSREP>
    Replaces the current value of the specified filter with one that includes only the members listed in members.

ERRORS
DoFilter will fail if the setop value is invalid.

[FATAL - invalid set operation]

DEFAULTS
All filters default to empty, implying that all primitive objects are not invisible and not pickable.

SEE ALSO
DoInvisSwitch(3D), DoNameSet(3D), DoPickSwitch(3D)