PK_boolean_match_region_o_t   


struct PK_boolean_match_region_o_s
    {
    int                    o_t_version; --- version number
    PK_TOPOL_t             regions[2];  --- (PK_ENTITY_null, PK_ENTITY_null)
    PK_boolean_match_t     match_type;  --- (PK_boolean_match_exact_c)
    double                 tolerance;   --- (0.0)
    };
typedef struct PK_boolean_match_region_o_s PK_boolean_match_region_o_t;




This option structure is used to specify and describe matched regions
of the target and tool body.


This options structure provides a mechanism to inform the boolean
functions of known matched topological regions. A matched region
is a region of overlap between two topological entities which are
geometrically coincident to a specified tolerance. The entities in the
matched region must be in the target or tools of the boolean operation.

The following combinations of topological entities may be
provided as matched regions :
  o Vertex - Vertex
  o Edge   - Edge
  o Face   - Edge
  o Face   - Face

The matched entities or regions are associated with a match_type
which classifies the relationship between the entities :


Vertex-Vertex Regions

o Exact     : Invalid classification.

o Contains  : Invalid classification.

o Overlap   : Invalid classification.

o Imprinted : The vertices are matched due to being paired via an imprinting
              operation.


Edge-Edge Regions

o Exact     : The edge curves are coincident to within the specified
              tolerance. Equivalent edge vertices are coincident to
              within the specified tolerance.

o Contains  : The edge curves are coincident to within the specified
              tolerance. The bounds of the second edge lie
              completely within the first edge.

o Overlap   : The edge curves are coincident to within the specified
              tolerance. There is at least some form of overlap between
              the two edges.

o Imprinted : The edges are matched due to being paired via an imprinting
              operation.


Face-Edge Regions

o Exact     : Invalid classification.

o Contains  : The edge curve is coincident to within the specified
              tolerance of the face surface. The edge lies completely
              within the face. The edge may be coincident with an edge
              of the face.

o Overlap   : The edge curve is coincident to within the specified
              tolerance of the face surface. The edge may intersect
              the boundary (edges) of the face. The edge may be
              coincident with an edge of the face.

o Imprinted : Invalid classification.


Face-Face Regions

o Exact     : The face surfaces are coincident to within the specified
              tolerance. For every edge on the first face there is a
              matching edge on the second face. The edge matches are
              not required to be exact.

o Contains  : The face surfaces are coincident to within the specified
              tolerance. The second face lies completely within the
              first face. None of the edges of the second face may
              intersect the boundary of the first face. Although edges
              of the second face are allowed to be coincident with
              those of the first face.

o Overlap   : The face surfaces are coincident to within the specified
              tolerance. The boundary of one face may intersect the
              boundary of the other face. Edges of one face may be
              coincident with edges of the other face.

o Imprinted : Invalid classification.


Matched Region Operation

o The topological entities supplied with a matched region may only
  consist of vertices, edges or faces.

o The topological entities supplied with a matched region must belong
  to different bodies. Matched regions between two tool bodies is
  permitted.

o The matched regions may be specified in any order. Internally,
  the matched regions are sorted into groups of vertex-vertex,
  edge-edge, face-edge and face-face regions. The matched regions
  are then processed in this order. The order of processing within
  a group depends on the input order.

o A matched region may be specified more than once :
  o Directly   : For example, two edge-edge matches may be input,
                 where the edges specified are the same.
                 The first occurence of the matched region will be
                 processed and the second will be ignored.

  o Indirectly : For example, if two matched regions are specified,
                 an edge-edge and a face-face. The edges may form
                 part of the boundary of the faces.
                 The order of processing is dictated by the internal
                 ordering of the matched regions, described above.
                 In this case, the edge-edge match will be processed
                 first and then the face-face match; the face-face
                 match will ignore the specified edges when they
                 are encountered.

o Edges may be tolerantised as a result of the matching operation.


Matched Region Assumption

The specification of matched regions ultimately specifies an edge
(or two edges) which forms the intersection between a number of
faces. If the 'match_style' field in the PK_boolean_match_o_s structure
is PK_boolean_match_style_basic_c then the implementation of matched regions
assumes that the edge (or edges) specifies a unique intersection between
all the faces that meet at that edge (or edges). The faces that are
adjacent to the edges involved in the matched region are not tested
for intersection. This means, if the faces intersect elsewhere, those
intersections will not be detected (unless those intersections are
specified by additional matched regions).

This assumption is not made if 'match_style' is set to
PK_boolean_match_style_relax_c and Parasolid will find any further
interactions.


Description of fields:



regions            The matched topological entities. Only vertices, edges
                     and faces are considered valid topological entities
                     for matching.


match_type         Classifies the topological match, permitted values
                     are,

                     PK_boolean_match_exact_c
                     PK_boolean_match_contains_c
                     PK_boolean_match_overlap_c
                     PK_boolean_match_imprinted_c


tolerance          The value of the tolerance specifies the maximum
                     deviation between the matched topological entities
                     in the region of overlap.