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.