 |
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
)
Render an array of topological entities through GO as
a) a view independant wire frame drawing
b) a view dependant wire frame drawing
or c) a hidden line drawing,
according to values supplied in an options structure.
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)
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 independant wire frame drawing
- a view dependant wire frame drawing
- a hidden line drawing
View independent drawings are created using the default visibility and
silhouette settings defined by the macro PK_TOPOL_render_line_o_m.
View dependent drawings require the 'silhouette' option switched to a value
other than PK_render_silhouette_no_c and for a view entity argument to be
given.
Hidden line drawings require the same arguments as for view dependent drawings
and the 'visibility' option switched to a value other than PK_render_vis_no_c
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.
The 'topol_transfs' matrices may not contain perspective terms. They may only
contain translation and rotation components. Reflections, scales and shears are
not allowed.
If a topol_transfs entry is set to PK_ENTITY_null, it implies that the
corresponding entity in topols is not to be transformed.
view_transf
The view_transf argument is needed when generating silhouettes for view
dependent 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 a unit matrix. A perspective
view is generated if view_transf contains non-zero perspective terms.
restrictions
The following restrictions apply when generating view independant 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 dependant 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 topols 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
Generated on: Fri, 15 Dec 2023 13:19:05 GMT