[ Previous | Next | Contents | Glossary | Home | Search ]
The graPHIGS Programming Interface : Subroutine Reference

GPPGD3 - Polygon 3 With Data

GPPGD3 (pflags, pdata, saflags, sawidth, sadata, vxflags, vxwidth, vxdata)

Purpose

Use GPPGD3 to insert a Polygon 3 With Data structure element into the open structure following the element pointer or replace the element pointed at by the element pointer with a Polygon 3 With Data structure element depending on the current edit mode.

When encountered during structure traversal, this element generates a polygon with the specified number of subareas. You may specify optional data to further control the rendering of this primitive. The optional data consists of:

  • Convexity flag.

    The convexity flag indicates that the application determined the convexity of the polygon primitive. Therefore, the system rendering code does not have to determine the convexity every time the primitive is rendered. To determine the convexity of a set of polygons, the graPHIGS API on the RISC System/6000 contains a sample program under the AIX directory: /usr/lpp/graPHIGS/samples/convexcheck

  • Normals.

    You can specify a geometric normal of the polygon and/or a normal for each vertex of the polygon. The normals are used in the lighting process to produce more realistic effects.

  • Vertex colors.

    When rendering this primitive, if the primitive is not to be highlighted, then the graPHIGS API uses the specified vertex color. The colors are used in the lighting process to produce more realistic effects.

  • Boundary flags.

    When rendering this primitive, if the current edge flag attribute is set to 2=ON , then the graPHIGS API renders as part of the edge, only the parts of the polygon defined by the boundary flags to be part of the edge. If there are no boundary flags specified, then it is treated the same as a polygon (i.e. all boundaries are rendered as edges)

  • Transparency Coefficients.

    You can specify a transparency coefficient per vertex. The graPHIGS API uses these values when producing transparency effects for the rendered primitive.

  • Vertex morphing vectors.

    You can supply vertex morphing vectors per vertex. The graPHIGS API combines these vectors with the vertices and vertex morphing scale factors (GPVMF) to create new vertex coordinate values for the rendered primitive.

  • Data mapping data.

    You can specify data mapping data per vertex. The graPHIGS API uses these values to determine the colors of the rendered primitive.

  • Data morphing vectors.

    You can specify data morphing vectors per vertex. The graPHIGS API combines these vectors with the data morphing scale factors (GPDMF) and (GPBDMF) and the vertex data mapping values to create new data mapping data values for the rendered primitive.

  • See The graPHIGS Programming Interface: Understanding Concepts for a more complete explanation of how the graPHIGS API uses the various optional data values.

    Note:

    This note applies ONLY to applications which will be run on the High Performance 3D Color Graphics Processor (8 or 24 bit). Use of any optional data other than the convexity flag, polygon normal, vertex normals, vertex colors, and boundary flags may cause unpredictable results (including locking the display) on this graphics processor. If only the High Performance 3D Color Graphics Processor is used, you should include only the supported optional data values. If your application must support multiple graphics processors INCLUDING this particular processor, the Inquire Workstation Description (GPQWDT) subroutine must be used to determine the functions that each workstation supports. See also the workstation description in The graPHIGS Programming Interface: Technical Reference for the High Performance 3D Color Graphics Processor.

    All points specified must lie in the same plane, the graPHIGS API makes no check to verify this. The system behavior is undefined in this case.

    Polygon attributes are applied to this primitive.

    GPPGD3 is identified as GDP 1016.

    Note:

    Not all GDPs are supported on all workstations. Use the Inquire List of Generalized Drawing Primitives (GPQGD) subroutine to determine the GDPs supported by an opened workstation. See also the workstation description in The graPHIGS Programming Interface: Technical Reference

    Parameters

    pflags -- specified by user, fullword integer

    Shows what optional data is specified for the primitive. The value specified should be the sum of the following values based on the fields that are included in the pdata parameter.

    Value

    Corresponding Field

    0

    Number of subareas

    1

    Geometric normal is specified.

    2

    Convexity flag is specified.

    4

    Count of vertex morphing vectors is specified.

    8

    Count of data mapping data is specified.

    16

    Count of data morphing vectors is specified.

    pdata -- specified by user, array of primitive data

    Contains specific information about the entire primitive. The presence of optional fields is determined by the value of the pflags parameter. The fields must be specified in the order defined below and no space is allowed between those that are present.

    Number of Subareas -- fullword integer (>=0)

    Number of contours in the polygon definition. This field is required.

    Geometric Normal -- 3 short floating-point numbers (MC)

    Geometric normal to be used in processing this polygon. This field is optional.

    Convexity Flag -- fullword integer

    This data indicates that the application determined the convexity of the polygon (0=CONCAVE, 1=CONVEX ) This field is optional.

    Vertex Morphing Vector Count -- fullword integer (>=0)

    This number of vertex morphing vectors specified at each vertex. The number of fullwords of vertex morphing vector data added to the other fullwords of vertex data specified per vertex cannot exceed 255 fullwords. This field is optional.

    Data Mapping Data Count -- fullword integer (>=0)

    The number of data mapping values specified at each vertex. The number of data mapping values added to the other fullwords of vertex data specified per vertex cannot exceed 255 fullwords. This field is optional.

    Data Morphing Vector Count -- fullword integer (>=0)

    The number of data morphing vectors specified at each vertex. The number of fullwords of data morphing vector data added to the other fullwords of vertex data specified per vertex cannot exceed 255 fullwords. This field is optional.

    saflags -- specified by user, fullword integer

    Shows what optional data is specified for each subarea. The value specified should be the sum of the following values based on the fields that are included in the sadata parameter.

    Value

    Corresponding Field

    0

    Number of vertices (There is no optional data currently defined. This field must be set to zero)

    sawidth -- specified by user, fullword integer

    Number of words between subsequent entries of the sadata parameter array (>=1)

    sadata -- specified by user, array of per subarea data

    Contains specific information about each subarea in the primitive. The length of this array is defined by the contents of the number of subareas field in the pdata parameter. The presence of optional fields is determined by the value of the saflags parameter. The fields must be specified in the order defined below and no space is allowed between those that are present.

    Number of Vertices -- fullword integer (>=0)

    Number of vertices in each subarea. If the number is less than three, the result is workstation dependent. This field is required for each subarea.

    vxflags -- specified by user, fullword integer

    Shows what optional data is specified for each vertex. The value specified should be the sum of the following values based on the fields that are specified in the vxdata parameter.

    Value

    Meaning

    0

    Vertex coordinates are specified.

    1

    Vertex normals are specified.

    2

    Vertex colors are specified.

    4

    Boundary flags are specified.

    8

    Transparency coefficient is specified.

    16

    Vertex morphing vectors are specified.

    32

    Data mapping data is specified.

    64

    Data morphing vectors are specified (valid only if data mapping data is specified also).

    vxwidth -- specified by user, fullword integer

    Number of words between subsequent entries of the vxdata parameter array (>=3)

    vxdata -- specified by user, array of vertex data

    Contains specific information about each vertex in the primitive. The length of this array is equal to the sum of the number of vertices fields in the sadata parameter. The presence of optional fields is determined by the value of the vxflags parameter. The fields must be specified in the order defined below and no space is allowed between those that are present.

    Coordinates -- 3 short floating-point numbers (MC)

    x, y, and z coordinates of a vertex. This field is required.

    Normal -- 3 short floating-point numbers (MC)

    The three components of a vector that is to be used as the normal of the polygon at the corresponding vertex. This field is optional.

    Color -- 3 short floating-point numbers

    The three components of a color in the current color model as contained in the graPHIGS API state list. This field is optional.

    Boundary Flags -- fullword integer

    Specifies whether the corresponding boundary is to be treated as an edge of the polygon (1=NOT_AN_EDGE, 2=IS_AN_EDGE ) These flags allow control over which parts of the polygon's boundary are to be treated as edges. The edge attributes are only applied to boundary segments that have a boundary flag set to the value of 2=IS_AN_EDGE

    Each flag specifies whether the boundary from the corresponding vertex to the following vertex is to be drawn. The last entry for each subarea corresponds to the boundary from the last vertex to the first. This field is optional.

    Transparency Coefficient -- short floating-point number (0.0 <= transparency coefficient <=1.0)

    The transparency coefficient value used when performing transparency processing. A value of 0.0 is fully opaque; a value of 1.0 is fully transparent. This field is optional.

    Vertex Morphing Vectors -- array of short floating-point numbers

    The vertex morphing vectors dx1 , dy1 , dz1 , dx2 , dy2 , dz2 , ..., dxn , dyn , dzn . The number, n, of vectors in this array is specified in the pdata parameter as the vertex morphing vector count. The array must be the same length for every vertex. This field is optional.

    Data Mapping Data -- array of short floating-point numbers

    The data mapping data values x1 , x2 , x3 , ..., xn The number, n, of values in this array is specified in the pdata parameter as the data mapping data count. The array must be the same length for every vertex. This field is optional.

    Data Morphing Vectors -- array of short floating-point numbers

    The data morphing vectors d11 >, d12 >, d13 >, ..., d1n >, d21 >, d22 >, d23 >, ..., d2n >, ..., dm1 , dm2 , dm3 , ..., dmn The number, n, is specified in the pdata parameter as the data mapping data count, and the number, m is specified in the pdata parameter as the data morphing vector count. The array must be the same length for every vertex. This field is optional.

    Error Codes

    5
    FUNCTION REQUIRES STATE STOP OR NROP (NOT STCL)
    96
    COLOR PARAMETER OUT OF RANGE FOR CURRENT COLOR MODEL
    115
    TRANSPARENT COEFFICIENT IS INVALID
    198
    NUMBER OF SUBAREAS < ZERO
    199
    POLYGON SUBAREA HAS < ZERO POINTS
    349
    NORMAL VECTOR HAS ZERO LENGTH
    351
    OPTIONAL DATA AVAILABILITY FLAG IS INVALID
    352
    BOUNDARY FLAG IS INVALID
    509
    DATA LENGTH VALUE < ZERO OR REQUIRED LENGTH
    557
    WIDTH PARAMETER < MINIMUM ALLOWED
    636
    FULLWORDS OF VERTEX DATA EXCEEDS MAXIMUM OF 255

    Related Subroutines

    GPBDMI
    Set Back Data Mapping Index
    GPBDMF
    Set Back Data Morphing Factors
    GPBICD
    Set Back Interior Color Direct
    GPBICI
    Set Back Interior Color Index
    GPBISM
    Set Back Interior Shading Method
    GPBSCD
    Set Back Specular Color Direct
    GPBSCI
    Set Back Specular Color Index
    GPBSPR
    Set Back Surface Properties
    GPBTCO
    Set Back Transparency Coefficient
    GPDMI
    Set Data Mapping Index
    GPDMF
    Set Data Morphing Factors
    GPECD
    Set Edge Color Direct
    GPECI
    Set Edge Color Index
    GPEI
    Set Edge Index
    GPELT
    Set Edge Linetype
    GPESC
    Set Edge Scale Factor
    GPFDMO
    Set Face Distinguish Mode
    GPICD
    Set Interior Color Direct
    GPICI
    Set Interior Color Index
    GPII
    Set Interior Index
    GPIS
    Set Interior Style
    GPISI
    Set Interior Style Index
    GPISM
    Set Interior Shading Method
    GPPGC
    Set Polygon Culling
    GPSCD
    Set Specular Color Direct
    GPSCI
    Set Specular Color Index
    GPSPR
    Set Surface Properties
    GPTCO
    Set Transparency Coefficient
    GPVMF
    Set Vertex Morphing Factors

    RCP code

    201342209 (X'0C003D01')


    [ Previous | Next | Contents | Glossary | Home | Search ]