Equivalent PK functions: |
PK_SURF_ask_params PK_SURF_ask_uvbox |
ENSUPA ( surf, urange, vrange, ubound, vbound, uprops, nuprop, vprops, nvprop, =============================================================================== ifail ) ======= Enquire surface parametrisation Receives: KI_tag_surface *surf --- Surface for enquiry Returns: KI_dbl urange[2] --- Parameter range in u KI_dbl vrange[2] --- Parameter range in v KI_cod_papr ubound[2] --- Types of bound for u KI_cod_papr vbound[2] --- Types of bound for v KI_tag_list_int *uprops --- u parametrisation properties KI_int_nitems *nuprop --- Number of properties in u KI_tag_list_int *vprops --- v parametrisation properties KI_int_nitems *nvprop --- Number of properties in v KI_cod_error *ifail --- Failure code Specific errors: KI_invalid_geometry surface not supported Description: This function returns details about the parametrisation of a specific surface. 'urange', 'vrange': The u parameter of any point on the surface (as returned by ENPAPS) will lie between 'urange[0]' and 'urange[1]'; the v parameter will lie between 'vrange[0]' and 'vrange[1]'. 'urange[0]' < 'urange[1]' and 'vrange[0]' < 'vrange[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 surface inside the size box is contained within the bounds. 'ubound', 'vbound': The parametrisation may behave in various ways at the end of its ranges. The 'ubound' and 'vbound' arrays each return two tokens, describing the behaviour at the start and end of the ranges 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 PAPRDG - degenerate 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 ENSUPA 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 ENPOPS will work on values beyond the corresponding range bound. Otherwise (if the classification is PAPRXT or PAPRNX) ENPOPS will only work for values within the range, unless the surface is b-surface or an offset b-surface. If the 'ubound[0]' classification is degenerate, for example, then the v parameter is degenerate when u='urange[0]'. In other words, the derivative of the parametrisation function with respect to v is zero whenever u='urange[0]', for all values of v, and the parameter curve corresponding to u='urange[0]' degenerates to a single point. Note that a parametrisation can only degenerate at the end of its range. 'uprops', 'vprops', 'nuprop', 'nvprop': One or more properties of the parametrisation will be returned, for both u and v, in two lists: 'uprops' of length 'nuprop', and 'vprops' of length 'nvprop'. The lists contain 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 - boundaries at the ends of the parameter range are coincident The PAPRLI property indicates that the corresponding parameter is proportional to the distance along a straight line. The straight line corresponds to a constant value of the other parameter. The PAPRCI property indicates that the corresponding parameter represents an angle around a circle. The circle corresponds to a constant value of the other parameter. The PAPRPE property indicates a periodic parametrisation.