PK_CURVE_make_spcurves_2   

PK_ERROR_code_t                   PK_CURVE_make_spcurves_2
(
--- received arguments ---
PK_CURVE_t                        curve,       --- curve
PK_INTERVAL_t                     range,       --- parameter bounds of required
                                               --- part of curve
PK_SURF_t                         surf,        --- surface on which curve lies
double                            tolerance,   --- required accuracy if
                                               --- solution is approximate
const PK_CURVE_make_spcurves_o_t *options,     --- options structure

--- returned arguments ---
int                        *const n_spcurves,  --- number of SP-curves produced
PK_SPCURVE_t              **const spcurves     --- SP-curves produced
)


This function creates an SP-curve representation of a curve which lies,
possibly approximately, in a surface.

NOTE: This function supersedes PK_CURVE_make_spcurves.

This function does not support facet geometry [NF]


Specific Errors:
    PK_ERROR_bad_precision           tolerance less than modelling resolution
    PK_ERROR_tolerances_too_tight    tolerance too tight
    PK_ERROR_failed_to_create_sp     no SP-curves made


This function approximates 'curve' which lies approximately on 'surf' by an
SP-curve or series of SP-curves, lying on 'surf'.

The arguments are:


'curve'

   Curve to be approximated by SP-curve(s).

   Lies approximately on 'surf'.


'range'

   Parametric extent of the part of the given 'curve' to be represented by one
   or more SP-Curves.

   If the 'range' is sufficiently long to overhang the parameter range of a
   limited surface, then the surface may be extended in order to accommodate
   the SP-curve(s).

   If the given 'curve' is a trimmed curve, then the 'range' must be contained
   within the bounds of the trimmed curve.

'surf'

   Surface upon which to create SP-curve(s), 'surf' forms the basis surface
   of the new SP-curve(s).

   If 'surf' is construction geometry or is attached to a face, within a
   body, the SP-curve will be created as construction geometry
   in that body, and may only be attached to topology within that body.


'tolerance'

   The SP-curve will be created to the distance tolerance 'tolerance', i.e. it
   lies within 'tolerance' of the image of 'curve' in the surface. The image of
   'curve' in this context means the curve formed by the locus of points
   on 'surf' closest to corresponding points on 'curve'.

   If the required tolerance cannot be met then the function will fail with
   error PK_ERROR_tolerances_too_tight indicating that
   a larger tolerance may allow a successful approximation.


'options'

   The options associated with this function.


The returns are


'n_spcurves'

   Number of SP-curves produced.


'spcurves'

   Array of SP-curves of length n_spcurves.



Ownership

The ownership of the newly created SP-curve(s) is determined by the ownership
of 'surf' as follows

    |____________________|___________________|
    | 'surf' owner       | SP-curve owner    |
    |____________________|___________________|
    | Partition          | Partition         |
    | Assembly           | Assembly          |
    | Body               | Body              |
    | Face               | Body owning face  |
    _____________________|___________________|

Click here for more information.