PK_FACE_make_3_face_blend   

PK_ERROR_code_t                      PK_FACE_make_3_face_blend
(
--- received arguments ---
int                                  n_left_wall_faces,   --- number of faces
                                                          --- in left wall
const PK_FACE_t                      left_wall_faces[],   --- left wall faces
int                                  n_right_wall_faces,  --- number of faces
                                                          --- in right wall
const PK_FACE_t                      right_wall_faces[],  --- right wall faces
int                                  n_centre_wall_faces, --- number of faces
                                                          --- in centre wall
const PK_FACE_t                      centre_wall_faces[], --- centre wall faces
PK_BODY_t                            guide,               --- wire body for
                                                          --- blend planes
const PK_FACE_make_3_face_blend_o_t *options,             --- options structure

--- returned arguments ---
PK_FACE_make_3_face_blend_r_t *const results,             --- results of blend
PK_TOPOL_track_r_t            *const tracking             --- tracking
)


This function makes a three-face blend from the given faces.

This function does not support facet geometry [NF]


Specific Errors:
    PK_ERROR_not_in_same_partition  Faces are not all in the same partition
                                    (MILD)
    PK_ERROR_bad_type               Guide is not a wire body (MILD)
    PK_ERROR_bad_partition          User supplied partition is invalid (MILD)
    PK_ERROR_bad_combination        User supplied options are incompatible
                                    (MILD)
    PK_ERROR_failed_to_blend        Could not create blend (SERIOUS)
    PK_ERROR_general_body           General body (MILD)
    PK_ERROR_instanced_body         The faces in the left and right walls are
                                    from different bodies, and the right wall
                                    faces belong to a body that is instanced
                                    (MILD)
    PK_ERROR_facet_geometry         The faces in one of the walls are from a
                                    body with facet geometry (MILD)


This function creates one or more blends between the three sets of faces
provided. For further details see Three-face Blending in the
Functional Description.

The function receives:

'left_wall_faces'   An array of the faces which make up the left wall.
                    These faces must all lie in the same shell of the same
                    body.

'right_wall_faces'  An array of the faces which make up the right wall.
                    These faces must all lie in the same shell of the same
                    body.

'centre_wall_faces' An array of the faces which make up the centre wall.
                    These faces must all lie in the same shell of the same
                    body.

'guide'             A wire body defining the cross-section planes of the
                    blend.  This must be a manifold connected wire that is
                    G1 continuous and contains no tolerant vertices.

The three walls may be faces from either sheet or solid bodies.

If the left body is solid, the faces of the right wall must also lie in that
body. If the right body is solid, the faces in the left wall must also lie
in that body.

Three face blending does not support general bodies, if any of the supplied
wall faces are associated with general bodies the PK_ERROR_general_body
error will be reported.

If the left and right walls lie in different bodies and if 'walls' is set to
'PK_blend_walls_attach_c' or 'PK_blend_walls_solid_c', their bodies will
be combined, with the body containing the 'left_wall_faces' being
considered the target body. The body of the 'right_wall_faces' may be negated
before combining, if necessary to achieve a consistent result.

The blend must pass through at least one of the master faces of the
supplied walls, where the master face of each wall is the first face supplied.

Further options can be supplied to the function in the
PK_FACE_make_3_face_blend_o_t option structure.

If PK_FACE_make_3_face_blend has successfully created a blend or has not
failed with a serious error, then:

'results'      will consist of a PK_FACE_make_3_face_blend_r_t structure
               containing a token indicating the status of the blending
               operation, the orientations used, and information associated
               with any failure of the blending operation.

'tracking'     will contain topology tracking information of type
               PK_TOPOL_track_create_c, reporting blend faces created
               and the ( possibly dead ) tags of the originating topology.
               In general this will be the tags of the left, right and
               centre wall faces and any other data that determined the
               geometry of the blend face.

               For capping faces the array will contain the tag/tags
               of the appropriate original entities from which they
               were derived. For capping faces derived from
               user-supplied limiting topology/geometry the array will
               contain the tag of the relevant user-supplied entity.

               For capping faces the array may contain faces, edges,
               planes or fins. Fins will be returned when they have
               been supplied in the user-supplied 'limits' array and the
               capping face has arisen from using them to stop the blend.

               For each limit or capping entity, two capping faces may be
               created. To distinguish between them in addition to the
               tag of the entity, a tag of a face from the corresponding
               side and a tag of a face from the centre wall are added.

               If the result is a sheet body and the field 'track_edges'
               is set to PK_blend_track_edges_laminar_c in the options
               structure, additional tracking information will be
               returned associated with the laminar edges of the sheet
               body. For laminar edges the array may contain faces,
               edges or planes.