CRBYGE   

Equivalent PK functions: PK_CURVE_make_wire_body
PK_SURF_make_sheet_body

CRBYGE ( geom, nopts, popts, pdata, by, ifail )
===============================================

  Creates a body from geometry

Receives:
  KI_tag_geometry          *geom           --- curve or surface
 <KI_int_nitems>           *nopts          --- number of options supplied
  KI_cod_cbop               popts[nopts]   --- array of options
 <KI_tag_list>              pdata[nopts]   --- array of option data

Returns:
  KI_tag_body              *by             --- wire or sheet body
  KI_cod_error             *ifail          --- failure indicator

Specific errors:
  KI_cant_extract_geom      failed to extract geometry
  KI_bad_parameter          parametric limits not valid on this geometry
                            
  KI_non_manifold           resulting body would be non manifold
  KI_bad_shared_dep         dependent of entity would be illegally shared
  KI_unsuitable_entity      unsuitable entity
  KI_is_attached            geometric entity is attached to topology
  KI_invalid_geometry       geometry fails to pass checks
  KI_bad_parametric_prop    inappropriate property
  KI_bad_tag_in_list        invalid null tag

Description:
  This function creates a body corresponding to a geometric entity. The
  geometric entity may be any curve or surface type with the exception of a
  blending surface. If the geometric entity is a curve, a wire will be made; if
  it is a surface then a sheet will be made. The wire or sheet may be closed. The
  geometric entity must be capable of passing the checks imposed by CHCKEN.

  The geometric entity must not be a dependent of another entity.

  The options allow the user to supply parameter range information so that a
  body may be made up from part of a geometric entity. If no options are
  supplied then the entire parameter range/ranges is/are used. Note that for
  infinite geometric entities, such as planes and lines, this will fail. Options
  are not permitted if the geometric entity is a trimmed curve.

  The property tokens are CBOPUR and CBOPVR, meaning the u and v parameter
  ranges respectively.  For curves only CBOPUR may be used.  If either or both
  are given then for each a list of two doubles must be supplied as data,
  specifying the appropriate parameter range.  The lists should appear in the
  same order as the corresponding tokens.

  For each pair of parameter limits, the following rules apply:

    (i)   The first element must be less than the second.

    (ii)  Both elements must lie inside the parameter range, as given by
          ENCUPA/ENSUPA, unless the corresponding parameter is periodic.
          In that case the first must lie in the range, and the difference
          between the two may not exceed the period. The resulting wire or
          face will straddle the boundary of the parametrisation.

  CRBYGE will seek to make the topology and geometry of the resulting body
  conform to the 'special checks on geometry attached to topology' rules
  specified in CHCKEN by splitting faces and edges into smaller pieces
  so that they do pass these checks. These rules on attachability of geometry
  are affected in the same way by the value of SLIPCO as outlined in the CHCKEN
  documentation. Note that when a face or edge is split, its underlying
  geometry is also explicitly split.

  The self intersection check is only performed if SLIPSI (see SEINTP) is set to
  a non zero value.