PK_MESH_fix_defects_o_t   

struct PK_MESH_fix_defects_o_s
    {
    int                         o_t_version;
                                            --- version number of option
                                            --- structure
    PK_LOGICAL_t                have_tolerance;
                                            --- whether a tolerance is provided
                                            --- (PK_LOGICAL_false)
    double                      tolerance;
                                            --- tolerance to which linear
                                            --- defects are found
    PK_MESH_defect_tolerances_t defect_tolerances;
                                            --- tolerance structure which can
                                            --- assign a different tolerance
                                            --- to each defect type
    PK_MFACET_fix_defect_t      mfacet_fix_defects;
                                            --- level of geometric repair to be
                                            --- performed on the mesh
                                            --- (PK_MFACET_fix_defect_degen_c)
    PK_MESH_fix_self_int_t      mesh_fix_self_ints;
                                            --- level of self intersection
                                            --- repair to be performed on the
                                            --- mesh
                                            --- (PK_MESH_fix_self_int_all_c)
    PK_MESH_fix_foldover_t      mesh_fix_foldovers;
                                            --- level of foldover repair to be
                                            --- performed on the mesh
                                            --- (PK_MESH_fix_foldover_none_c)
    double                      max_foldover_angle;
                                            --- angle (in radians) used to
                                            --- define a foldover (0.2)
    PK_MESH_fix_disjoint_t      mesh_fix_disjoint;
                                            --- method to use to fix a disjoint
                                            --- mesh
                                            --- (PK_MESH_fix_disjoint_no_c)
    };
typedef struct PK_MESH_fix_defects_o_s PK_MESH_fix_defects_o_t;


Holds optional data for the function PK_MESH_fix_defects.


Specific Errors:
    PK_ERROR_bad_tolerance          both 'tolerance' and 'defect_tolerances'
                                    have been provided (MILD)

Used in:

PK_MESH_fix_defects


The option structure defines options applicable to fixing defects in the mesh.
It includes the following fields:

    'have_tolerance'
        Whether the parameter 'tolerance' is supplied.

    'tolerance'
        If 'have_tolerance' is set to PK_LOGICAL_true then the values of
        'tolerance' will be used for determining when points should be
        considered equal. The default accuracy will be the linear precision of
        the modeller.

    'defect_tolerances'
        A structure to specify different tolerances for different types
        of defects. If 'have_tolerance' is set to PK_LOGICAL_true, this
        structure should not be specified.

    'mfacet_fix_defects'
        What level of repair is to be performed on the geometry of the mesh.

    'mesh_fix_self_ints'
        What level of repair is to be performed on the self intersections of
        the mesh.

    'mesh_fix_foldovers'
        What level of repair is to be performed on the foldovers of the mesh.

    'max_foldover_angle'
        If 'mesh_fix_foldovers' is set to PK_MESH_fix_foldover_all_c then
        'max_foldover_angle' will be used for identifying foldovers. A fold
        is where the smaller of the two angles between two mfin-adjacent
        mfacets is less than or equal to 'max_foldover_angle'. From this, a
        foldover is formed from chains of folded or laminar mfins which bound
        a region of facets whose normals are opposed to those of their
        neighbouring regions and which are within 'tolerance' of those
        neighbours.

    'mesh_fix_disjoint'
        What method is to be used to fix a disjoint mesh.
        If 'mesh_fix_disjoint' is set to PK_MESH_fix_disjoint_split_c and the
        mesh is disjoint, then it will be split into distinct meshes, where
        each resultant mesh is mfin connected.