PK_TOPOL_render_line   

PK_ERROR_code_t                 PK_TOPOL_render_line
(
--- received arguments ---
const int                       n_topols,        --- number of entities
const PK_TOPOL_t                topols[],        --- entities to rendered
const PK_TRANSF_t               topol_transfs[], --- applied transformations
const PK_TRANSF_t               view_transf,     --- viewing transformation
const PK_TOPOL_render_line_o_t *options          --- options structure [PF]
)


Render an array of topological entities through GO as either a view-independent
wire-frame drawing, a view-dependent wire-frame drawing or a hidden-line
drawing according to values supplied in an options structure.

This function offers partial support for facet geometry [PF]


Specific Errors:
    PK_ERROR_duplicate_array_item   topol has duplicates but no transf array
                                    (MILD)
    PK_ERROR_bad_component          topol or view transf is inappropriate
                                    (MILD)
    PK_ERROR_field_of_wrong_type    options are inconsistent with each other
                                    (MILD)
    PK_ERROR_unsuitable_topology    entity in topols array is not an edge, face
                                    or body (MILD)
    PK_ERROR_bad_tolerance          is_<tol> is true but used with a bad <tol>
                                    (MILD)
    PK_ERROR_distance_too_small     unsuitable hatch line separation (MILD)

    PK_ERROR_bad_2d_viewport        2D viewport has not been properly specified
                                    (MILD)
    PK_ERROR_missing_geom           'ske_missing' is set to
                                    PK_render_ske_missing_no_c but topol has
                                    incomplete geometry (MILD)

    PK_ERROR_function_not_exclusive an option value is incompatible with the
                                    function running concurrently in a thread
                                    without locked partitions (MILD)


This function produces a 3D line drawing of topological entities in the world
coordinate system via GO. Each topological entity may be a body, face or edge,
if any other type of topological entity appears in 'topols' the error
PK_ERROR_unsuitable_topology will be returned.

The function arguments determine what type of line drawing is created :

       -   a view-independent wire-frame drawing
       -   a view-dependent wire-frame drawing
       -   a hidden-line drawing

View-independent wire-frame drawings are created using the default visibility
and silhouette settings defined by the macro PK_TOPOL_render_line_o_m.

All view-dependent wire-frame drawings require the 'silhouette' option
switched to a value other than 'PK_render_silhouette_no_c'.

Hidden-line drawings require the same arguments as for view-dependent
wire-frame drawings and the 'visibility' option switched to a value other
than 'PK_render_vis_no_c'.

See Rendering functions for more information.


'topol_transfs'
If 'topol_transfs' is set to NULL, entities in 'topols' are not transformed.
The 'topols' array may not contain duplicates in this case.

If 'topol_transfs' is not set to NULL, it refers to an array of TRANSFs of
length 'n_topols'. The 'topols' array may contain duplicates in this case.
Each entity in 'topols' is transformed by the corresponding entry in
'topol_transfs'.

For both wire-frame rendering and hidden-line rendering, the 'topol_transfs'
matrices may only contain translation, rotation, and reflection components;
they may not contain scales, shears or perspective terms. The components of a
transformation matrix can be determined using PK_TRANSF_classify.

If a 'topol_transfs' entry is set to PK_ENTITY_null, it implies that the
corresponding entity in 'topols' is not to be transformed.

See View independent topology for more information.

'view_transf'
The 'view_transf' argument is needed when generating silhouettes for
view-dependent wire-frame and hidden-line drawings.

The application frustrum must apply a copy of its underlying view matrix to
all graphics data passed through GO (which are output in a world coordinate
system).

A 'view_transf' argument of PK_ENTITY_null is equivalent to providing the
identity matrix. A perspective view is generated if 'view_transf' contains
non-zero perspective terms.

See Parasolid View Matrices for more information.

Restrictions:
The following restrictions apply when generating view-independent wire-frame
drawings:

    -  the 'smoothness' option must not be set to PK_render_smooth_draft_c
    -  unfixed blends cannot be drawn when a viewport is specified

The following restrictions apply when generating view-dependent wire-frame
drawings:

    -  the 'smoothness' option must not be set to PK_render_smooth_draft_c
    -  unfixed blends are drawn using the original unblended edge

The following restrictions apply when generating hidden-line drawings:

    -   only complete bodies are drawn
        (any other topological entities in the 'topol's array are ignored).
    -   if using PK_render_vis_inv_draft_c ( or PK_render_vis_extended_c
            with invisible set to PK_render_invisible_yes_c and drafting
            set to PK_render_drafting_yes_c ) the 'view_transf' matrix
            must not contain non-zero perspective terms
    -   the 'silhouette' option must not be set to PK_render_silhouette_no_c
    -   unfixed blends are drawn using the original unblended edge

The following restrictions apply when running concurrently in a thread without
locked partitions:

    -   the 'ignore' option must be set to PK_render_ignore_no_c
    -   the 'unfix' option must be set to PK_render_unfix_no_c.
    -   the 'viewport_clipping' option must be set to
        PK_render_viewport_clip_no_c