DoBoundingVol(3D)

NAME
DoBoundingVol - Create a bounding volume object

SYNOPSIS
C:
DtObject DoBoundingVol(volume, alternate_object)
DtVolume *volume;
DtObject alternate_object;

FORTRAN:
INTEGER*4 DOBV(VOLUME, ALTOBJ)
REAL*8 VOLUME(6)
INTEGER*4 ALTOBJ

DESCRIPTION
DoBoundingVol returns a bounding volume object. volume defines a box in modeling coordinates that is assumed to completely enclose all objects below it in the scene data base, i.e., all child branches rooted below that point in the display database. When a bounding volume object is executed, the given volume is projected onto the device. If there is no intersection with the device or if the diagonal of the smallest right rectangle that can enclose this projection in X and Y is smaller than the DoMinBoundingVolExt <DOMBVE>, then the rest of the current group is not executed. However, if the bounding volume is visible but under the minimum size, then the optional alternate_object is executed.

If the projection is larger than the DoMinBoundingVolExt <DOMBVE>, the alternate_object is ignored and the rest of the current group is executed.

Alternate objects are simpler versions of the objects being skipped to avoid a lot of complex rendering that would contribute little to the final image. One may want to have more than one alternate object; i.e., execute object2 if object1 is too small or execute object3 if object2 is too small, and so on. In this case, the alternate object will be a group object that contains a new shorter minimum bounding extension and a bounding volume containing the even simpler alternate object. If alternate_object is a null object pointer, DcNullObject <DCNULL>, then nothing will be drawn if the bounded objects do not cover the minimum area on the device.

The volume parameter is a user-supplied three-dimensional space specifying the bounding volume. DsCompBoundingVol <DSCBV> can be used to compute a volume that contains a user-supplied object.

If the current bounding volume switch DoBoundingVolSwitch <DOBVS> is DcOff <DCOFF>, then bounding volume calculations will be skipped.

SEE ALSO
DoBoundingVolSwitch(3D), DoMinBoundingVolExt(3D), DsCompBoundingVol(3D)