Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

DoClipSwitch(3D)

DoClipVol(3D)  —  Kubota Pacfic Computer Inc. (\*(Dd)

NAME

DoClipVol − Create a primitive attribute object defining a model clipping volume

SYNOPSIS

C:

DtObject DoClipVol(operator, numhalfspaces, halfspaces)
DtClipOperator operator;
DtInt numhalfspaces ;
DtHalfSpace halfspaces[] ;

FORTRAN:

INTEGER∗4 DOCV(OPRATR, NHLFSP, HLFSPS)
INTEGER∗4 OPRATR
INTEGER∗4 NHLFSP
REAL∗8 HLFSPS(6∗NHLFSP)

DESCRIPTION

DoClipVol creates a model clipping volume primitive attribute object.  This object is used to modify the volume against which subsequently executed primitive objects are clipped when model clipping (or sectioning) is enabled. 

The arguments of DoClipVol are as follows:

operator
Specifies how the volume defined by halfspaces will be combined with the current value of the model clipping volume primitive attribute. 

numhalfspaces
Specifies the number of elements in the array halfspaces. 

halfspaces
Specifies an array of half spaces or sectioning planes.

Each halfspace is defined by a point in model coordinates and a vector that is the normal to the plane defining the boundary of the half space.  This normal points in the direction of the acceptance region.  The half spaces intersect to define a clipping volume.  During display execution, this computed clipping volume is transformed by the current transformation matrix and combined with the current model clipping volume based on the specified operator. 

The following table defines the available model clipping constants.  T denotes the current value of the model clipping volume attribute, and S denotes the volume defined by the halfspaces. 

FORTRANClipping Acceptance
ConstantRegion
DcClipAll<DCCALL>everything clipped
DcClipAnd<DCCAND> T and S
DcClipAndReverse<DCCARV>T and (not S)
DcClipNoOp<DCCNOP> T
DcClipAndInverted<DCCAIN>(not T) and S
DcClipReplace<DCCREP>S
DcClipXOr<DCCXOR> T xor S
DcClipOr<DCCOR>T or S
DcClipNor<DCCNOR>(not T) and (not S)
DcClipEqv<DCCEQV>T eqv S [i.e. not (T xor S)]
DcClipInvertVolume<DCCIVV> not S
DcClipOrReverse<DCCORR>T or (not S)
DcClipInvert<DCCINV> not T
DcClipOrInverted<DCCORI>(not T) or S
DcClipNAnd<DCCNAN> (not T) or (not S)
DcClipNone<DCCNON> nothing clipped

Note that model clipping is considerably more powerful than clipping performed in the viewing operation for the following reasons:

Any number of clipping planes can be specified. 

The model clipping planes are oriented arbitrarily with respect to each other and to the coordinate axes. 

An arbitrary boolean operator can be used to combine the volume defined by the specified set of half spaces and the current model clipping volume. 

DEFAULTS

The default DoClipVol is all of world space, i.e., no clipping. 

SEE ALSO

DoClipSwitch(3D)

September 02, 1992

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026