 |
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.