For an overview, see Primitives and Attributes.
The attributes that affect all surface primitives are:
------------------------------------------------------------------------------------------------------------- Facet Culling Mode OC PEXOCCSetFacetCullingMode Facet Distinguish Flag OC PEXOCCSetFacetDistinguishFlag Interior Bundle Index OC PEXOCCSetInteriorBundleIndex Back-face Reflectance Bundle Index OC(a) PEXOCCSetBFReflectanceBundleIndex Back-face Surface Reflection PEXOCCSetBFReflectionAttributes Attributes (ASF) Back-face Surface Reflection Model PEXOCCSetBFReflectionModel OC (ASF) Reflectance Bundle Index OC(b) PEXOCCSetReflectanceBundleIndex Surface Reflection Attributes OC PEXOCCSetReflectionAttributes (ASF) Surface Reflection Model OC (ASF) PEXOCCSetReflectionModel Interior Bundle Table RA Interior Bundle Table (LUT) and Interior Bundle Table (Renderer) Light Source State OC PEXOCCSetLightSourceState Light Table RA Light Table and Light Table (Renderer) PHIGS Interior Bundle Mode RA PHIGS Interior Bundle Mode Vertex Order OC PEXOCCSetVertexOrder -------------------------------------------------------------------------------------------------------------
The PEXlib surface primitives affected by the above attributes include:
--------------------------------------------------------------------------------------------- Arc Areas PEXOCCArcAreas Cell Array 3D PEXOCCCellArray Cell Array 2D PEXOCCCellArray2D Cone Set with Data PEXOCCCones Extended Cell Array PEXOCCExtendedCellArray Fill Area PEXOCCFillArea Fill Area Set PEXOCCFillAreaSet Indexed Fill Area Sets PEXOCCIndexedFillAreaSets Indexed Triangles PEXOCCIndexedTriangles Non-uniform B-spline Surface PEXOCCNURBSurface PolyTriangle PEXOCCPolyTriangle Quadrilateral Mesh with Data PEXOCCQuadrilateralMesh Spheres PEXOCCSpheres Triangle Fan PEXOCCTriangleFan Triangles PEXOCCTriangles Triangle Strip PEXOCCTriangleStrip ---------------------------------------------------------------------------------------------
For Fill Areas, if no surface area facet normal is provided, then one is computed by determining the first three non-colinear vertices A,B, and C, and computing the cross product of the vector from A to B with the vector from A to C. If the surface area is degenerate (for example, does not contain three non-colinear vertices) then the resultant value of the normal is implementation-dependent.
For Arc Areas, the geometric normal is the normalized cross product of the major and minor axes (major x minor). For elliptical arc areas, the axes are explicitly defined by the primitive. For circular arc areas, the major axis is the MC space X-axis and the minor axis is the MC space Y-axis.
For Spheres, the geometric normal of each facet of a sphere is the unit vector perpendicular to the facet and in the direction of a vector from the sphere's center through the facet.
For Cones, the geometric normal of each facet of a cone is the unit vector perpendicular to the facet and in the direction of a vector from the cone's axis through the facet.