 |
PK_TOPOL_facet_2 |
|
PK_ERROR_code_t PK_TOPOL_facet_2
(
--- received arguments ---
const int n_topols, --- number of entities
const PK_TOPOL_t topols[], --- entities to be facetted
const PK_TRANSF_t topol_transfs[], --- applied transformations
const PK_TOPOL_facet_2_o_t *options, --- options structure [PF]
--- returned arguments ---
PK_TOPOL_facet_2_r_t *const tables --- returned tables
)
Generate a facetted representation of topological entities in tabular form
This function offers partial support for topology that has facet geometry
(meshes & plines) [PF]
Specific Errors:
PK_ERROR_duplicate_array_item topol has duplicates but no transf array
(MILD)
PK_ERROR_bad_component topol transf is inappropriate (MILD)
PK_ERROR_field_of_wrong_type PK_facet_match_topol_c requires cull_none_c
(MILD)
PK_ERROR_unsuitable_topology entity in topols array is not face or body
(MILD)
PK_ERROR_function_not_exclusive 'incremental_facetting' option value is
incompatible with the function running
concurrently in a thread without locked
partitions (MILD)
See here for more information.
Each received topological entity can be a general, solid or sheet body or a
face. If any other type of topological entity appears in 'topols' the error
PK_ERROR_unsuitable_topology will be returned.
If 'topol_transfs' is set to NULL the 'topols' entities are not transformed
(and the 'topols' array cannot contain duplicates).
If 'topol_transfs' is not NULL, it is an array of PK_TRANSF_ts of length
'n_topols'. The 'topols' array can contain duplicates in this case. Each
entity in 'topols' is transformed by its corresponding entity in
'topol_transfs'. Any entry in the 'topol_transfs' array can be PK_ENTITY_null,
indicating that the corresponding entity in 'topols' is not to be transformed.
Transforms may only contain translation, rotation, and reflection components;
scales, shears and perspective are not allowed.
The PK_TOPOL_facet_2_o_t options structure defines two sets of controls
1) how the facet mesh is generated
2) which mesh data are returned to the application.
The mesh generation options include parameters such as the maximum number
of sides per facet and the tolerance values that are to be used when
approximating surfaces by planar facets.
The data selection options indicate whether the function should calculate
and return the following data to the application in tabular form :
- topological data (e.g. which vertices are used to construct which facets)
- geometric data (e.g. values of vertex coordinates and normals)
- tracking data (e.g. which facets were derived from which face entities)
- error data (e.g. which entities fail to meet tolerance criteria)
The data selection options are fields of the PK_TOPOL_facet_choice_2_o_t
structure. Setting these to PK_LOGICAL_true or PK_LOGICAL_false indicates
whether or not the application requires Parasolid to calculate and return the
corresponding data.
Each data selection field name in the PK_TOPOL_facet_choice_2_o_t structure
is matched by a field name in the returned PK_TOPOL_facet_2_r_t structure,
returning details of the underlying topological, geometric, associative
or error data in tabular form.
If derivatives are requested, the cross product dPdu X dPdv points in the
same direction as the surface normal. This is true except in the case where
a transform is supplied for which calling PK_TRANSF_classify on the transform
returns a matrix_type of PK_matrix_type_reflection_c. In this case, each
dPdu X dPdv points in the opposite direction to the corresponding surface
normal.