PK_boolean_region_select_o_t   

struct PK_boolean_region_select_o_s
    {
    int                          o_t_version;       --- version number
    PK_boolean_region_t          select_type;       --- (PK_boolean_include_c)
    int                          n_region_selectors;--- (0)
    const PK_TOPOL_t            *selectors;         --- (NULL)
    const PK_boolean_select_t   *selector_types;    --- (NULL)
    int                          n_help_points;     --- (0)
    const PK_VECTOR_t           *help_points;       --- (NULL)
    const PK_boolean_region_t   *region_types;      --- (NULL)
    };
typedef struct PK_boolean_region_select_o_s PK_boolean_region_select_o_t;




This option structure is used to identify regions of the tool and/or target
body to be included or excluded from a boolean.

Used in:

PK_FACE_boolean_o_t
PK_FACE_section_o_t


A region in this context is a boundary faceset which lies wholly inside or
outside the other body. (Tool faces which intersect the target body have
been split by the boolean: the resultant faces lie wholly inside or outside
the target body.  The same is true of the target with respect to the tool.)

Each region is identified by a single face, edge or vertex which is interior
to it, or a help point in the interior of the region.  A 'selectors' entry of
PK_ENTITY_null may be given, in which case the closest face from the tool
will be used with the relevant 'help_points' entry.

Regions may all be included or excluded as specified by the 'select_type'.
If 'select_type' is set to PK_boolean_mixed_selection_c, then the
'region_types' entries specify include or exclude for each 'selectors'
entry. All 'selectors' in the same body must have the same value in
'region_types', e.g. all include on the target and exclude on the tool.

Description of fields:



'select_type'        Indicates whether to include or exclude specified regions,
                     permitted values are

                     PK_boolean_include_c
                     PK_boolean_exclude_c
                     PK_boolean_mixed_selection_c


'n_region_selectors' The number of topological entities supplied.


'selectors'          Topological entities which each uniquely identify a
                     region. The array may contain a mixture of faces, edges
                     or vertices, but no other types.
                     The first 'n_help_points' elements of this array are
                     associated with the elements of the 'help_points' array.
                     If a help point is to be associated with the closest tool
                     face, then the appropriate element of this array may
                     be set to PK_ENTITY_null.



'selector_types'     Indicates the type of region selection. This array may
                     be null or contain 'n_region_selectors' elements.
                     If a null array is specified, then a default type of
                     PK_boolean_select_specific_c is assumed.

                     Permitted values are:

                     PK_boolean_select_specific_c
                     PK_boolean_select_adjacent_c
                     PK_boolean_select_propagate_c

                     but if 'select_type' is PK_boolean_mixed_selection_c, then
                     only PK_boolean_select_specific_c is allowed.

                     The PK_boolean_select_propagate_c type is only
                     valid for faces and edges specified as regions.


'n_help_points'      The number of help points (vectors) supplied.


'help_points'        Help points (vectors) which, when combined with the
                     appropriate topological entity from the 'selectors'
                     array, unambiguously identifies a region.
                     The elements of this array are associated with the
                     first 'n_help_points' of the 'selectors' array.

                     Help points may only be associated with a face. If
                     a help point is associated with PK_ENTITY_null,
                     then the tool face closest to the help point is
                     located and used as the face.


'region_types'       If 'select_type' is PK_boolean_exclude_c or
                     PK_boolean_include_c, then this array must be NULL.
                     If 'select_type' is PK_boolean_mixed_selection_c, this
                     array must contain 'n_region_selectors' entries of either
                     PK_boolean_exclude_c or PK_boolean_include_c.