PK_SURF_fix_self_int_o_t   

struct PK_SURF_fix_self_int_o_s
    {
    int                  o_t_version;    --- version number of option structure
    PK_fix_method_t      fix_method;     --- method used to generate new
                                         --- surfaces
                                         --- (PK_fix_method_extract_c)
    PK_LOGICAL_t         allow_multiple; --- whether to allow multiple surfaces
                                         --- to be generated (PK_LOGICAL_true)
    PK_SURF_split_t      split;          --- whether to prefer splitting the
                                         --- surfaces in the u parametric
                                         --- direction or the v parametric
                                         --- direction
                                         --- (PK_SURF_split_prefer_u_c)
    double               tolerance;      --- tolerance for approximating
                                         --- surfaces (1.0e-5)
    PK_LOGICAL_t         have_uv_param;  --- whether uv parameters are supplied
                                         --- (PK_LOGICAL_false)
    PK_UV_t              uv_param;       --- uv parameters used to select the
                                         --- region of interest (0.0, 0.0)
    };

typedef struct PK_SURF_fix_self_int_o_s PK_SURF_fix_self_int_o_t;



This structure holds optional controls for fixing self-intersections on a
surface.

Used in:

PK_SURF_fix_self_int


The option structure for fixing self-intersections on a surface has the
following fields :

'fix_method'        If set to PK_fix_method_extract_c, then the function will
                    generate surfaces by extracting from the input 'surf'.
                    Regions of the surface which cannot be fixed by extracting
                    will be ignored.

                    If set to PK_fix_method_approx_c, then the function will
                    produce surfaces which are either exactly coincident with
                    'surf' or an approximation.
                    (PK_fix_method_extract_c)

'allow_multiple'    If set to PK_LOGICAL_false, then only a single surface will
                    be returned. If 'fix_method' is set to
                    PK_fix_method_extract_c, then the function will attempt to
                    extract a non-self-intersecting region from 'surf'. The
                    region extracted can be controlled with the 'have_uv_param'
                    and 'uv_param' options. If 'fix_method' is set to
                    PK_fix_method_approx_c, then the function will attempt to
                    generate a single approximation for the entire surface.

                    If set to PK_LOGICAL_true, then multiple surfaces may be
                    returned.
                    (PK_LOGICAL_true)

'split'             When extracting surfaces, or (when 'fix_method' is set to
                    PK_fix_method_approx_c) if the function is unable to return
                    a single surface representing the entire input surface, it
                    must choose to split in the u or v parametric directions.
                    This option controls which directions to allow splitting,
                    and whether to prefer splits in the u or v directions.
                    (PK_SURF_split_prefer_u_c)

'tolerance'         The tolerance to be used when approximating surfaces.
                    (1.0e-5)

'have_uv_param'     In some cases, there may be more than one valid region of
                    a surface. If set to PK_LOGICAL_true, then 'uv_param' is
                    used to select the region of interest. The resultant
                    surface(s) will include the point at parameters 'uv_param'
                    on the input 'surf'. If set to PK_LOGICAL_false, then the
                    resultant surface(s) will include the point at the low u
                    and v parametric ranges of the 'surf'.
                    (PK_LOGICAL_false)

'uv_param'          The u and v parameters used to select the region of
                    interest, if 'have_uv_param' is set to PK_LOGICAL_true.
                    (0.0, 0.0)