PK_TOPOL_local_r_t   

struct PK_TOPOL_local_r_s
    {
    PK_local_status_t    status;
    int                  n_error_entities;
    PK_ENTITY_t         *error_entities;
    };
typedef struct PK_TOPOL_local_r_s PK_TOPOL_local_r_t;



This structure is used to return the status of the local operation
and in the case of a failure, any associated entities.

Used in:

PK_BODY_emboss
PK_BODY_enlarge_r_t
PK_BODY_extend
PK_BODY_extrude
PK_BODY_hollow_2
PK_BODY_offset_2
PK_BODY_taper
PK_BODY_thicken_3
PK_BODY_thicken_r_t
PK_BODY_transform_2
PK_EDGE_delete
PK_FACE_change
PK_FACE_delete_blends
PK_FACE_emboss
PK_FACE_hollow_3
PK_FACE_offset_2
PK_FACE_replace_surfs_3
PK_FACE_replace_with_sheet
PK_FACE_taper
PK_FACE_transform_2
PK_TOPOL_local_r_f


When a call to the local operation returns a value of PK_ERROR_no_errors,
then the actual status of the operation is given by the 'status'
field.

If a fault is indicated by the 'status' field, then the number of
entities associated with the fault are given by the field
'n_error_entities', and the entities are returned in the array
'error_entities'.

Description of fields:



'status'            This field indicates the overall state of
                    the local operation. See PK_local_status_t for
                    values and meanings.


'n_error_entities' The number of topological or geometric entities in
                   the 'error_entities' array.


'error_entities'   If the 'status' field of this return structure indicates a
                   failure, this array may contain topological or geometric
                   entities which are associated with the failure.

Error entities returned:

The 'error_entities' array will contain the following entities according
to the value of the 'status' field. The typical class of error entities for
each value of 'status' is given, however exceptions do exist.

Error entities relate to pre-operation topologies and status_values refer
to the class of post-operation topologies derived from them. Options for
some local operations may involve class migration, for instance the option
'PK_EDGE_offset_blend_t' used in thicken operations indicates that the
desired offset representation of an EDGE is a blend FACE derived from
that edge. An error condition arising from such a face will return an entity
of type PK_CLASS_edge and a 'status' value usually associated with FACES.

Similarly, if we encounter an error in determining the vertex or edge geometry
during offset operations, and the error is deemed to have resulted from a
self intersection or failure to offset face, the error entities correspond to
the pre-operation faces which failed to offset, and a 'status' value
'PK_local_status_cant_offset_c'.

The documentation accompanying a local operation or the options used by that
operation will indicate whether class migration may occur.

It is recommended practice to always check the class of error entities before
processing them (after first restoring the modeller to a previous roll mark).

NOTE: Entity classes given in the following represent typical cases.


  PK_local_status_ok_c              : No entities

  PK_local_status_nocheck_c         : No entities

  PK_local_status_fail_c            : No entities

  PK_local_status_cant_get_pt_c     : 1 VERTEX   Failed to find new geometry
                                                 for existing vertex.
                                      n FACEs    Failed to find geometry for
                                                 new vertex.

  PK_local_status_cant_get_cu_c     : 1 EDGE     Failed to find new geometry
                                                 for existing edge.
                                      n FACEs    Failed to find geometry for
                                                 new edge.

  PK_local_status_cant_get_su_c     : n FACEs    Unable to produce offset
                                                 surfaces for these faces.
                                                 No surface replacement is
                                                 performed.

  PK_local_status_cant_offset_c     : n FACEs    Failed to offset the face or
                                                 the face is only partially
                                                 offset. Likely causes are
                                                 self intersection or regions
                                                 of tight curvature on offset
                                                 surfaces.
                                    : n EDGEs    Failed to offset the
                                                 associated entities to provide
                                                 the geometry for these edges.

  PK_local_status_side_cu_fail_c    : 1 EDGE     Failed to find side curve.

  PK_local_status_side_su_fail_c    : 1 FACE     Failed to create a side
                                                 surface.

  PK_local_status_not_same_by_c     : n/a        Not currently returned.

  PK_local_status_fa_fail_c         : 1 FACE     Face which failed check.

  PK_local_status_fa_fa_fail_c      : 2 FACEs    Pair of faces where
                                                 inconsistency found.

  PK_local_status_ed_remains_c      : 1 EDGE     An existing edge should have
                                                 disappeared
                                      n FACEs    A transient edge should have
                                                 disappeared

  PK_local_status_point_contact_c   : 1 VERTEX   Vertex where point contact has
                                                 has been found.

  PK_local_status_bad_reference_c   : 1 EDGE     Taper reference edge is not
                                                 valid.
                                      1 FACE     Taper reference face is not
                                                 valid.
                                      1 SURF     Taper reference surface is not
                                                 valid.

  PK_local_status_not_supported_c   : 1 FACE     Face that has currently
                                                 unsupported combination of
                                                 reference entities.

  PK_local_status_cant_extend_c     : n VERTEXs  Side edges could not be
                                                 extended at the vertices.
                                      1 EDGE     Geometry attached to returned
                                                 edge could not be extended.
                                      1 FACE     Geometry attached to returned
                                                 face could not be extended.

  PK_local_status_sheet_small_c     : 1 FACE     Given sheet is too small.

  PK_local_status_cant_use_cu_c     : 1 EDGE     The supplied/existing curve
                                                 for this edge lies more than
                                                 'tolerance' away from the
                                                 resulting face surfaces.

  PK_local_status_eds_unconnected_c : n VERTEXs  The vertices at which the
                                                 boundary is not simply
                                                 connected.

  PK_local_status_non_laminar_c     : n EDGEs    The non-laminar edges.

  PK_local_status_reference_loop_c  : n EDGEs    Reference edges in the
                                                 inconsistent boundary.
                                      n FACEs    Reference faces in the
                                                 inconsistent regions.

  PK_local_status_lp_outside_fa_c   : n LOOPs    Loops which are outside a
                                                 face.

  PK_local_status_target_missed_c   : n EDGEs    Target entity cannot bound
                                                 the regions that originate
                                                 from these boundary edges.

  PK_local_status_wrong_side_c      : n EDGEs    the side of target entity
                                                 has been specified and the
                                                 boundary formed by these
                                                 edges lies completely on the
                                                 wrong side of the target.

  PK_local_status_miter_fail_c      : n EDGEs    The reference edges where
                                                 mitering has failed.

  PK_local_status_self_shadowing_c  : n EDGEs    The reference edges where
                                                 self-shadowing occurs.

Any space allocated by Parasolid within this structure may be freed by
calling PK_TOPOL_local_r_f.