PK_TOPOL_clash_o_t   



typedef struct
    {
    int          o_t_version;   --- Version of this PK option structure
    int          n_op_ex;       --- Number of entity pairs that may be ignored
    PK_TOPOL_t  *op_ex1;        --- First half of pairs that may be ignored
    PK_TOPOL_t  *op_ex2;        --- Second half of pairs that may be ignored
                                --- Defaults: 0, NULL, NULL (no ignores)
    PK_LOGICAL_t find_all;      --- Find all clashes, not just the first
    PK_LOGICAL_t find_intersect;--- Examine clashes for true interference
                                --- Defaults: False, False (simplest check)
    PK_LOGICAL_t mul_target_tf; --- There is one transform in tf1 for each
                                --- target entity. Otherwise, the first
                                --- transform is used for all targets.
    PK_LOGICAL_t mul_tool_tf;   --- One transform in tf2 for each tool, as
                                --- per target transforms (above).
                                --- Defaults: False, False (i.e., only one
                                --- transform in each list).
    }
    PK_TOPOL_clash_o_t;



Controls for PK_TOPOL_clash: optional excludes, find_all and find_intersect
controls, single/multiple transforms for tools and targets.


n_op_ex, op_ex1 and op_ex2 describe a list of entity pairs. n_op_ex
is the number of pairs, op_ex1 and op_ex2 hold lists of first and second
elements of pairs respectively.

For each pair (eg, op_ex1[i]' and op_ex2[i]), PK_TOPOL_clash has the option of
using the pair to minimise its task; it is at liberty to ignore any clashes
that it finds between these two entities. If it ignores these clashes, it
won't report them, otherwise it will.

If find_all has the value PK_LOGICAL_false, then the function will return
only a single clash (or none, if none exist). It returns the first one that it
finds. If find_all has the value PK_LOGICAL_true, it will find and return all
the valid clashes that exist.

If find_intersect has the value PK_LOGICAL_true, then for each clash
returned, clash_type gives its classification. This allows interference to be
distinguished from abutment.

If mul_target_tf has the value PK_LOGICAL_true, then PK_TOPOL_clash assumes
that one transform entity has been provided in tf1 for each entity in
targets. Otherwise, tf1 holds only a single transform, which will be
applied to all the entities in targets. mul_tool_tf has exactly the same
effect with respect to tools and tf2.