DoSubDivSpec(3D)

NAME
DoSubDivSpec - Create a subdivision specification primitive attribute object

SYNOPSIS
C:
DtObject DoSubDivSpec(type,parms)
DtInt type;
DtReal parms[];

FORTRAN:
INTEGER*4 DOSDS(TYPE,PARMS)
INTEGER*4 TYPE
REAL*8 PARMS(*)

DESCRIPTION
DoSubDivSpec creates a subdivision specification primitive attribute object. DoSubDivSpec specifies how to subdivide subsequent analytic primitive objects.

Some primitive objects, such as spheres, cylinders, tori, and patches, are analytic objects. That is, they are described by an equation rather than a set of data.

For rendering, these objects must sometimes be decomposed into smaller elements, for example, triangles. These smaller elements are approximations of the original analytic surfaces. The finer the decomposition of these surfaces, the closer they approximate the actual object.

The argument type can be one of the following:

DcSubDivFixed <DCSDFX>
    For this type, the number of segments along an edge will be equal to 2 to the power of (parms[0]-1).

DcSubDivSegments <DCSDSG>
    For this type, the number of segments along an edge will be equal to parms[0] whenever possible. When this is not possible, the number of segments along an edge will be as close to parms[0] as possible, depending on the primitive being subdivided.

DcSubDivAbsolute <DCSDAB>
    For this type, parms[0] equals the maximum deviation allowed anywhere between the curved surface and the nearest plane in the planar approximation of the object.

DcSubDivRelative <DCSDRL>
    For this type, parms[0] equals the ratio of the deviation to the length of the side of the approximating polygon. In general, specifying a deviation between 1.5 percent and 4 percent for relative subdivision will result in a reasonable representation of many objects.

DEFAULTS
The default values for DoSubDivSpec are DcSubDivRelative <DCSDRL> with a parms[0] value of 0.1.

SEE ALSO
DoPatch(3D), DoPrimSurf(3D), DoSphereList(3D), DoTorus(3D)