PEXOCCSetParaSurfCharacteristics - Set Parametric Surface Characteristics (5.0)


Synopsis

 
   void PEXOCCSetParaSurfCharacteristics(
        PEXOCC context,
        int psc_type,
        PEXPSCData *characteristics
   )
 

 
   void PEXSetParaSurfCharacteristics(
        Display *display,
        XID resource_id,
        PEXOCRequestType req_type,
        int psc_type,
        PEXPSCData *characteristics
   )
 

Arguments

context
An OC context returned by a successful PEXCreateOCC call.

display (OCC)
A pointer to a display structure returned by a successful XOpenDisplay call.

resource_id (OCC)
The resource identifier of the renderer or structure.

req_type (OCC)
The request type for the output command (PEXOCRender, PEXOCStore, PEXOCRenderSingle or PEXOCStoreSingle).

psc_type
The parametric surface characteristic type (PEXPSCNone, PEXPSCImpDep, PEXPSCIsoCurves, PEXPSCMCLevelCurves or PEXPSCWCLevelCurves).

characteristics
A pointer to data defining the parametric surface characteristics.

Returns

None.

Description

Invoke PEXOCCSetParaSurfCharacteristics to create an attribute output command which sets the parametric surface characteristics in the renderer's pipeline state according to the value specified by psc_type.

By setting the parametric surface characteristics attribute's ASF to PEXIndividual (see PEXOCCSetIndividualASF), you use the pipeline state's parametric surface characteristics entry to apply aids when visualizing the shape of parametric surfaces. When you set the parametric surface characteristics attribute's ASF to PEXBundled, the implementation uses the parametric surface characteristics from the interior bundle table.

PEXlib defines the following parametric surface characteristics (characteristics):

PEXPSCNone -
does not apply any special aids when visualizing the shape of a parametric surface. No data is required for this type. (5.0)

PEXPSCImpDep -
applies an implementation-dependent aid when visualizing the shade of a parametric surface. Back-facing portions of the surface are not distinguished. The appearance of the representation is controlled by the appropriate set of primitive attributes for the representation. It is implementation-dependent how the representation interacts with any interior rendering indicated by the interior attributes. No data is defined for this type, therefore characteristics is ignored. (5.0)

PEXPSCIsoCurves -
draws isoparametric curves on the surface. The data pointed to by characteristics contains the number of curves to draw in each of the parameter dimensions and their placement. If the placement is Uniform, then the specified number of curves are evenly spaced between the parameter limits of the surface; curves are also drawn at the parameter limits. If the placement is NonUniform, then the specified number of curves are evenly spaced between each pair of knots; curves are also drawn at the knots. In both cases, only the portions of the isoparametric curves are drawn that are within the interior of the surface as defined by any trimming curves. (5.0)

Back-facing portions of the surface are not distinguished. The tessellation and appearance of the isoparametric curves are controlled by the surface approximation criteria and the polyline attributes, respectively. The isoparametric curves are drawn in addition to any interior rendering indicated by the interior style or back interior style attributes. Isoparametric curves have higher visual priority than the primitive's filled or hollow interiors, but lower priority than the primitive's edges.

If the placement is not Uniform or NonUniform, then the implementation issues a BadPEXOutputCommand error.

PEXPSCMCLevelCurves -
Draws level curves on the surface. The curves correspond to the intersections of the surface and a finite set of places perpendicular to a modeling coordinate direction vector. The positions of the planes are specified by a sequence of intersecting points along an infinite line defined by a modeling coordinate origin point, P0, and a direction vector,

The ti are a sequence of parameters specifying the intersection points. They are in the range:

The Pi are the intersection points of the perpendicular planes with the infinite line. P0 is a specified origin point in modeling clipping coordinates, and is the specified direction vector in modeling coordinates. The ith plane is perpendicular to the direction vector, , and intersects the infinite line at point Pi.

Back-facing portions of the surface are not distinguished. The tessellation and appearance of the level curves are controlled by the surface approximation criteria and the polyline attributes, respectively. The curves are drawn in addition to any interior rendering indicated by the interior style or back-facing interior style attributes. Level curves have higher visual priority than a primitive's filled or hollowed interiors, but lower priority than its edges. (5.0)

If you specify a direction vector length of zero, then the implementation issues a BadPEXOutputCommand error.

PEXPSCWCLevelCurves - draws level curves on the surface. This type is identical to type PEXPSCMCLevelCurves except that the origin point, P0, and the direction vector, , are defined in world coordinates instead of modeling coordinates. (5.0)

If the implementation does not support the specified parametric surface characteristics type (psc_type), then the parametric surface characteristics type defaults to PEXPSCNone. Inquire the supported values for the parametric surface characteristic types by invoking the PEXGetEnumTypeInfo function.

This function is a member of the parametric surface attribute set.

Errors

BadPEXOutputCommand
The output command contains an invalid value.

BadPEXRenderer
The specified renderer resource identifier is invalid.

BadPEXStructure
The specified structure resource identifier is invalid.

See Also

For an overview and for a list of output attribute functions, see Output Attribute Functions.