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.