OUSPPC   

Equivalent PK functions: PK_BCURVE_ask_splinewise

OUSPPC ( bc, pts, npts, props, pdata, nprops, ifail )
=====================================================

  Output B-curve as spline points

Receives:
  KI_tag_b_curve           *bc             --- B-curve

Returns:
  KI_tag_list_dbl          *pts            --- spline points
  KI_int_nitems            *npts           --- number of spline points
  KI_tag_list_int          *props          --- curve properties
  KI_tag_list_<list>       *pdata          --- list of data lists
  KI_int_nitems            *nprops         --- number of curve properties
  KI_cod_error             *ifail          --- failure indicator

Specific errors:
  KI_bad_knots              curve has unsuitable knot vector
  KI_unsuitable_entity      linear or quadratic curve has more than one segemnt
                            order of curve is greater than four

Description:
  This function outputs a B-curve as spline points, end conditions and a knot
  vector. This constitutes sufficient information to recreate the curve
  (via CRSPPC).

  Restrictions
   . The curve must be cubic or lower degree, non-rational and have continuous
     first and second derivatives (note that for a linear or quadratic curve to
     satisfy these continuity requirements, it must consist of a single
     segment).
   . If the curve is periodic it must not have any repeated knots.
   . If the curve is non-periodic it may only have repeated knots at its ends.
   . Any curve created by CRSPPC and not subsequently modified, will satisfy
     these conditions.

  Spline points 'pts', 'npts':
    The spline points are returned in the list of real data 'pts', in order
    along the curve. 'npts' points are returned. They correspond to ends of
    segments in the original curve.

  Curve properties 'props', 'pdata', 'nprops':
    The 'props' array contains 'nprops' tokens from the sequence PAPR00. A
    particular property may be associated with additional data; if so, this
    is returned in a list. The tag of the list is returned in the 'pdata' list,
    in the position corresponding to the token in 'props'.

    The table shows which tokens may be present, and the data associated with
    them. Some tokens are always present, whereas others are only present if the
    curve has a particular property.

      token   |       meaning         |     real data     | always present?
      ---------------------------------------------------------------------
              |                       |                   |
      PAPRPE  |   curve is periodic   |       none        | NO - the default is
              |                       |                   |      non-periodic
              |                       |                   |
      PAPRCS  |  derivative returned  | derivative vector | present unless
              |   at start of curve   |                   | curve is periodic
              |(clamped end condition)|                   |
              |                       |                   |
      PAPRCE  |  derivative returned  | derivative vector | present unless
              |    at end of curve    |                   | curve is periodic
              |(clamped end condition)|                   |
              |                       |                   |
      PAPRKT  |     knot vector       |   knot vector     |   YES
              |                       |                   |
      PAPRCU  |   the curve is cubic  |       none        |   NO
              |                       |                   |

  End conditions PAPRPE, PAPRCS, PAPRCE
    Either clamped or periodic end conditions may be returned. Clamped end
    conditions refer to either the start or end of the curve, whereas the
    periodic end condition refers to both.

  . Clamped end conditions return the first derivative, with respect to a
    parameter varying between 0 and 1 over the first or last interval,
    at the start and end of the curve. The derivative is returned in a
    real list of length 3.

  . Periodic end conditions imply that the curve is closed, so that the curve
    returns to the start point after the final point has been splined. The
    curve meets itself with continuity of tangent and curvature.

  Knot vector PAPRKT:
    A knot vector is always returned. It has the following properties:
    . The knot values form a strictly increasing sequence.
    . If the curve is not periodic there will be 'npts' knot values.
    . If the curve is periodic there will be ('npts'+1) knot values.

  Cubic curve PAPRCU:
    This token indicates that the curve is cubic.