PK_GROUP_create_from_ents_o_t   

struct PK_GROUP_create_from_ents_o_s
    {
    int                        o_t_version;
                                    --- version number
    int                        n_labels;
                                    --- length of arrays 'labelled_entities'
                                    --- and 'labels' (0)
    const int                 *labelled_entities;
                                    --- array of entities to be assigned
                                    --- labels (NULL)
    const int                 *labels;
                                    --- array of labels to be assigned to
                                    --- entities in the group (NULL)
    PK_GROUP_membership_t      membership;
                                    --- behaviour when members of groups are
                                    --- merged
                                    --- (PK_GROUP_membership_inclusive_c)
    PK_GROUP_split_t           split_empty;
                                    --- behaviour for empty groups on split
                                    --- (PK_GROUP_split_never_c)
    PK_GROUP_merge_t           merge_empty;
                                    --- behaviour for empty groups on merge
                                    --- (PK_GROUP_merge_no_c)
    PK_GROUP_merge_t           merge_populated;
                                    --- behaviour for populated groups on merge
                                    --- (PK_GROUP_merge_no_c)
    PK_GROUP_dependants_t      delete_dependants;
                                    --- behaviour of groups which are members
                                    --- groups which are deleted
                                    --- (PK_GROUP_dependants_keep_c)
    int                        n_min_contents;
                                    --- length of arrays 'min_contents_labels'
                                    --- and 'min_contents_minima' (0)
    const int                 *min_contents_labels;
                                    --- array of labels to be assigned
                                    --- a minimum content (NULL)
    const int                 *min_contents_minima;
                                    --- array of limits for the minimum
                                    --- allowed contents of groups (NULL)
    };
typedef struct PK_GROUP_create_from_ents_o_s PK_GROUP_create_from_ents_o_t;



This structure contains optional arguments for PK_GROUP_create_from_entities_2.

Used in:

PK_GROUP_create_from_entities_2


Description of fields:


'n_labels'              The length of the next two arrays in the options,
                        'labelled_entities' and 'labels'. The default
                        value is 0.

'labelled_entities'     An array of entities to be assigned the labels given in
                        the parallel array 'labels'. The default value is NULL.

'labels'                An array of labels to be assigned to entities listed in
                        'labelled_entities'. The default value is NULL.

'membership'            Whether a resultant merged entity belongs to the groups
                        which the original entities belonged to before they
                        were merged. The default value is
                        PK_GROUP_membership_inclusive_c.

'split_empty'           Whether a copy is made in the split-off part for
                        each empty group in a part when that part is
                        split. The default value is PK_GROUP_split_never_c.

'merge_empty'           Whether pairs of identical empty groups, one
                        in each part, are merged into one group in the merged
                        part. "Identical" here means having the same
                        attributes and the same group controls.  The default
                        value is PK_GROUP_merge_no_c.

'merge_populated'       Whether to merge populated groups which become
                        identical as a result of merging their members. Groups
                        are identical if they contain the same members (with
                        the same labels if labels are being used), have the
                        same group controls and have the same attributes. A
                        pair of identical groups will only be merged if there
                        are no other groups identical with them. The default
                        value is PK_GROUP_merge_no_c.

'delete_dependants'     Whether the deletion of a group is propagated to its
                        members which are also groups. Groups which are
                        members of deleted groups will only be deleted if
                        they are not members of any remaining group. The
                        default value is PK_GROUP_dependants_keep_c.

'n_min_contents'        The length of the next two arrays in the options,
                        'min_contents_labels' and 'min_contents_minima'.
                        The default value is 0.

'min_contents_labels'   An array of labels for which the user wishes to
                        specify a minimum number of entities with that label
                        in the group. The minimum number of entities for each
                        label is specified in the corresponding position in
                        the parallel array 'min_contents_minima'. A group
                        is deleted if the number of members with any
                        given label falls below the specified value. This
                        condition is invoked either when a group is
                        split as a result of its owning part being split
                        or when an entity belonging to the group is deleted.
                        If a group is split between parts, the condition is
                        applied to each resulting group. The default
                        value is NULL.

                        If explicit labels are not being used, then it is
                        assumed that all labels are '0', so groups which
                        do not label their contents can still be controlled
                        with this option by specifying a single minimum for
                        label 0.

'min_contents_minima'   An array of minimum contents values corresponding to
                        the labels listed in 'min_contents_labels'. The
                        default value is NULL.