CRCUPC   

Equivalent PK functions: PK_CURVE_make_bcurve

CRCUPC ( curve, bounds, bc, nseg, ifail )
=========================================

  Create B-curve from general curve

Receives:
  KI_tag_curve             *curve          --- general curve
  KI_vec_position           bounds[2]      --- start and end of curve

Returns:
  KI_tag_b_curve           *bc             --- B-curve
  KI_int_nitems            *nseg           --- number of segments used
  KI_cod_error             *ifail          --- failure indicator

Specific errors:
  KI_bad_end_points         curve not defined between bounds
  KI_coincident             coincident bounds on non-periodic curve
  KI_not_on_curve           end bound not on curve
                            start bound not on curve
  KI_wrong_entity           unsupported curve type

Description:
  This function creates a B-curve that is equivalent to a general
  curve, so that the curve can be used for example in lofting. Only lines,
  circles, ellipses and B-curves are processed by this function. Trimmed curves
  with the aforementioned curves as basis curves are also allowed.
  The B-curve returned will exactly represent the given curve.

  The function may be used to trim curves where a B-curve is required otherwise
  CRTRCU should be used to trim curves.

  The following table shows the type of curve that will be produced by the
  conversion:

        original curve    |   order of    |   number of   |  rational
                          |   new curve   |    segments   |
        -------------------------------------------------------------
                          |               |               |
          line            |       2       |       1       |   no
          circle          |       4       |     1 or 2    |   yes
          ellipse         |       4       |     1 or 2    |   yes
          B-curve         |  as original  | between bounds|   as original
                          |               |  on original  |

  The bounds of the curve 'bounds' must be supplied in order, start then end.
  The new curve will have a parameterisation increasing from start to end.
  If the curve is a trimmed curve the bounds are ignored and any valid vectors
  should be supplied.