CLABYS   

Equivalent PK functions: PK_TOPOL_clash

CLABYS ( body1, trans1, body2, trans2, lfull, fclst1, fclst2, nclash, ifail )
=============================================================================

  Clash bodies

Receives:
  KI_tag_body              *body1          --- first body
 <KI_tag_transform>        *trans1         --- transformation for 'body1'
  KI_tag_body              *body2          --- second body
 <KI_tag_transform>        *trans2         --- transformation for 'body2'
  KI_cod_logical           *lfull          --- true if exhaustive test required

Returns:
  KI_tag_list_face         *fclst1         --- list of faces in 'body1' which
                                           --- clash with 'body2'
  KI_tag_list_face         *fclst2         --- list of faces in 'body2' which
                                           --- clash with 'body1'
 <KI_int_nitems>           *nclash         --- length of face lists
  KI_cod_error             *ifail          --- failure indicator

Specific errors:
  KI_cant_do_clash          clash failure
  KI_wire_body              one of the bodies is a wire
  KI_wrong_transf           trans2 has shearing or non-uniform scaling
                            trans1 has shearing or non-uniform scaling

Description:
  If 'lfull' is true, then 'body1', transformed by 'trans1', is compared with
  'body2', transformed by 'trans2'. Every clash between a face of 'body1' and
  a face of 'body2' is entered in the lists, the face from 'body1' going into
  'fclst1', and the face from 'body2' going into 'fclst2'. 'nclash' is set to
  the number of such clashes. A face may occur many times in one of the lists,
  paired with different faces from the other body. Two face lists will be
  returned even if 'nclash' is 1.

  If 'lfull' is false, the test will proceed only until the first clash is
  found. If a clash is found, it will return the clashing faces (NOT lists)
  in 'fclst1' and 'fclst2', and return 'nclash' as 1.

  If no clashes are found, irrespective of 'lfull', 'nclash' will be returned as
  0 and 'fclst1' and 'fclst2' as the null tag.

  If either of the transformations is given as the null tag, it will be taken
  to mean the identity transformation.

  Only clashes between faces are found, therefore it is possible that no clashes
  will be found when one body is completely contained in the other.
  Also, if either body is a general body, clashes between a wireframe
  edge in one body and a face or wireframe edge in the other will not be
  found.

  If either of the transformations is supplied it may only contain translation,
  rotation, reflection and global scale components. Local scales and shears are
  not allowed.