PK_BODY_enlarge   

PK_ERROR_code_t            PK_BODY_enlarge
(
--- received arguments ---
PK_BODY_t                  body,            --- body to enlarge
PK_scale_factor_t          factor,          --- scale factor
PK_TRANSF_t                transf,          --- transformation
double                     tolerance,       --- tolerance
const PK_BODY_enlarge_o_t *options,         --- options structure

--- returned arguments ---
PK_BODY_enlarge_r_t *const returns          --- returns
)


This function creates a new body by enlarging the body by the given factor.



Specific Errors:
    PK_ERROR_unsuitable_entity     body is not a sheet or solid body (MILD)
    PK_ERROR_bad_value             scaling factor takes body out of valid
                                   range (MILD)
    PK_ERROR_outside_box           the enlarged body is outside the size box or
                                   the supplied trimming box (MILD)
    PK_ERROR_wrong_transf          'transf' contains scale, shear, or
                                   perspective component.  (MILD)



This function creates a new body copied from the supplied 'body' whose geometry
is derived from the original geometry by enlarging it by the given scale factor
and then transforming it through the given transformation. The centre of
scaling is the origin.

Replacement surfaces will satisfy the first possible of the following list
of criteria:

 1 - be of the same class as the original geometry,
 2 - be exactly coincident with the enlargement of the original geometry,
 3 - not deviate by more than the given 'tolerance' from the enlargement of
     the original geometry.

Replacement curves will satisfy the same criteria in order of precedence
unless the curve lies on an edge which is at the junction of faces, of which
at least one of the attached surfaces has been approximated (criterion 3), in
which case, the edge curve will be re-computed as the intersection of the
faces' surfaces.

Replacement points are all computed by putting the original point through the
enlargement.

The enlarged body will be trimmed to fit inside the size box or an optionally
provided trimming box. This trimming might result in multiple result bodies or
optionally a single disjoined body.  Where a solid region is trimmed, its
solidity will be preserved by bounding it with additional faces from the box.

Tracking information is optionally returned to map the original entities to the
enlarged entities.

If the input 'body' has system attribute SDL/TYSA_SCALE_FACTOR attached, the
integer value of this attribute representing the scale factor will be updated
on the returned enlarged body(ies).