ENCUPA   

Equivalent PK functions: PK_CURVE_ask_interval

ENCUPA ( curve, range, bounds, props, nprops, ifail )
=====================================================

  Enquire curve parametrisation

    Can be called from the GO.

Receives:
  KI_tag_curve             *curve          --- Curve for enquiry

Returns:
  KI_dbl                    range[2]       --- Parameter range
  KI_cod_papr               bounds[2]      --- Types of bound
  KI_tag_list_int          *props          --- Parametrisation properties
  KI_int_nitems            *nprops         --- Number of properties
  KI_cod_error             *ifail          --- Failure code

Specific errors:
  KI_invalid_geometry       curve not supported

Description:
  This function returns details about the parametrisation of a specific
  curve.


  'range':
    the parameter of any point on the curve (as returned by ENPAPC) will lie
    between 'range[0]' and 'range[1]'.    'range[0]' < 'range[1]' always.

    If the range is infinite, then finite values will be returned, and these
    will be large enough to ensure that the portion of the curve inside the
    size box is contained within the bounds.

    If the curve is of type TYCUSP (SP-curve), the range parameters will be
    the first and last knot values of the underlying B-spline.


  'bounds':
    The parametrisation may behave in various ways at the end of its range.
    The 'bounds' array returns two tokens, describing the behaviour at the
    start and end of the range respectively. The tokens may take the
    following values:

          PAPRIF - infinite
          PAPRXT - extendable
          PAPRNX - not extendable
          PAPRPE - periodic
          PAPRDP - periodic, but not continuously differentiable across
                   the boundary

    If either end of the range is classified as extendable, then the range of
    the parameter can be altered by subsequent modelling operations, and the
    classification of the bounds can also change. In this case, it is
    advisable to call ENCUPA again. For all other bound classifications,
    the range and bound classification remain unchanged by modelling
    operations.

    The periodic classifications (PAPRPE, PAPRDP) apply to both ends of the
    range - the bounds will be of the same type in these cases. If the type
    is PAPRDP, then the parametrisation function may have a derivative which
    is discontinuous in magnitude across the range boundary.

    If the bound classification is infinite or periodic (PAPRIF, PAPRPE or
    PAPRDP), then the KI function ENPOPC will work on values beyond the
    corresponding range bound. Otherwise (if the classification is PAPRXT
    or PAPRNX) ENPOPC will only work for values within the range, unless the
    curve is a b-curve.


  'props', 'nprops':
    One or more properties of the parametrisation will be returned, in a list
    'props' of length 'nprops'. The list contains tokens, which can take the
    following values:

          PAPRPE - periodic
          PAPRCN - all derivatives continuous  )  exactly one of these two
          PAPRDC - derivatives not necessarily )  properties will be returned
                                   continuous  )
          PAPRLI - linear
          PAPRCI - circular
          PAPRBC - bounds coincident ( 'range[0]' and 'range[1]' correspond
                                       to the same point on the curve )

    The PAPRLI and PAPRCI properties are only returned for lines and circles
    respectively, and are included for compatibility with the surface
    parametrisation functions.

    The PAPRPE property indicates a periodic parametrisation.