 |
PK_FACE_change |
|
PK_ERROR_code_t PK_FACE_change
(
--- received arguments ---
int n_faces, --- number of faces
const PK_FACE_t faces[], --- faces to change
const int mapping[], --- face-operation mapping
int n_operations, --- number of operations
PK_FACE_change_t operations[], --- change operations to apply
--- [PF]
double tolerance, --- tolerance
const PK_FACE_change_o_t *options, --- options [PF]
--- returned arguments ---
PK_TOPOL_track_r_t *const tracking, --- tracking information
PK_TOPOL_local_r_t *const results --- status information
)
This function changes the given faces by applying the related given operation
to each of them.
This function combines the features of : PK_FACE_offset_2, PK_FACE_taper,
PK_FACE_transform_2, PK_FACE_replace_surfs_3 and some of PK_FACE_make_blend.
This function offers partial support for facet geometry [PF]
Specific Errors:
PK_ERROR_wrong_entity_in_array (MILD) given topols are not from same
body
PK_ERROR_unsuitable_topology (MILD) laminar reference edge(s) for
normal method taper
PK_ERROR_bad_tolerance (MILD) proposed tolerance is too small
PK_ERROR_bad_angle (MILD) inconsistent taper angles
specified for multi angle taper
PK_ERROR_duplicate_array_item (MILD) duplication in faces array
PK_ERROR_wrong_transf (MILD) transform type is not compatible
with transform step face option
PK_ERROR_not_in_same_partition (MILD) faces and replacement orphan
geometry not in same partition
PK_ERROR_laminar_edge (MILD) face to be replaced in a patch
operation has a laminar edge and
the face to be replaced isn't part
of patch data associated with the
patch operation
PK_ERROR_not_on_surface (MILD) geometry of given edges is not
coincident with geometry of faces
PK_ERROR_bad_combination (MILD) a mixture of facet and classic
geometry has been supplied
PK_ERROR_wrong_surface (MILD) the surface of a face in a radiate
operation does not have an axis of
rotation
PK_ERROR_non_manifold (SERIOUS) 'faces' are not locally manifold
and 'edge_geom_data' has not been
supplied for non-manifold edges
that are to be modified which have
more than 2 surfaces belonging to
their adjacent faces.
PK_ERROR_evaluator_failed (SERIOUS) user-supplied evaluator failed, or
failed to evaluate user-supplied
expression
PK_ERROR_failed_to_bend (SERIOUS) bend operation failed
PK_ERROR_failed_to_blend (SERIOUS) blend operation failed
PK_ERROR_failed_to_deform (SERIOUS) deform operation failed
PK_ERROR_failed_to_offset (SERIOUS) offset operation failed
PK_ERROR_failed_to_radiate (SERIOUS) radiate operation failed
PK_ERROR_failed_to_replace (SERIOUS) replace face operation failed
PK_ERROR_failed_to_taper (SERIOUS) taper operation failed
PK_ERROR_failed_to_transform (SERIOUS) transform operation failed
PK_ERROR_failed_to_change (SERIOUS) a fault was generated and the
results have been output to the
Parasolid report.
Introduction
See also Local Ops: Generic Face Editing for more information.
To each face in 'faces' is applied the associated operation from 'operations'.
The face/operation association is realised through the 'mapping' array,
parallel to the 'faces' array. It contains the indexes of the operations to
apply to the faces.
For a face of index i_fa in 'faces', its associated operation is :
operations[mapping[i_fa]]
An operation is defined by its type, its parameters and its eventual specific
options.
The operation types, their parameters and their specific options are passed
to the function using the 'operations' array of PK_FACE_change_t types.
See Specifying operations for more information.
If the faces belong to a general body, non-manifold edges can be modified,
provided either
*the geometry for them has been explicitly supplied via 'edge_geom_data' or
*there are no more than 2 unique surfaces belonging to their adjacent faces.
The operation cannot cause topology change along non-manifold edges of the
body.
User options
The PK_FACE_change_o_t structure contains user control options. See
its documentation for detail.
Tracking
The PK_TOPOL_track_t structure contains topology tracking information on
the operation. See its documentation for details.
Error handling
If this function returns PK_ERROR_no_errors, the result of the operation
will be indicated by the value of the 'status' field of the 'results'
structure. When this value is not PK_local_status_ok_c or
PK_local_status_nocheck_c, it indicates an operation failure and an array
of entities involved in this failure is returned through the field
'error_entities' of the 'results' structure, when possible.
For more information regarding the failure status code and the error_entities,
refer to the PK documentation of the PK_TOPOL_local_r_t structure.