MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::DecimateSettings Struct Reference
Inheritance diagram for meshlib::DecimateSettings:

Public Member Functions

auto assign_from_another (_other:&meshlib::DecimateSettings) -> &mut meshlib::DecimateSettings
auto strategy () const -> &meshlib::DecimateStrategy
auto strategy_mut () -> &mut meshlib::DecimateStrategy
void set_strategy (value:meshlib::DecimateStrategy)
auto max_error () const -> &f32
auto max_error_mut () -> &mut f32
void set_max_error (value:f32)
auto max_edge_len () const -> &f32
auto max_edge_len_mut () -> &mut f32
void set_max_edge_len (value:f32)
auto max_bd_shift () const -> &f32
auto max_bd_shift_mut () -> &mut f32
void set_max_bd_shift (value:f32)
auto max_triangle_aspect_ratio () const -> &f32
auto max_triangle_aspect_ratio_mut () -> &mut f32
void set_max_triangle_aspect_ratio (value:f32)
auto critical_tri_aspect_ratio () const -> &f32
auto critical_tri_aspect_ratio_mut () -> &mut f32
void set_critical_tri_aspect_ratio (value:f32)
auto prevent_normal_flips () const -> &bool
auto prevent_normal_flips_mut () -> &mut bool
void set_prevent_normal_flips (value:bool)
auto tiny_edge_length () const -> &f32
auto tiny_edge_length_mut () -> &mut f32
void set_tiny_edge_length (value:f32)
auto stabilizer () const -> &f32
auto stabilizer_mut () -> &mut f32
void set_stabilizer (value:f32)
auto angle_weighted_dist_to_plane () const -> &bool
auto angle_weighted_dist_to_plane_mut () -> &mut bool
void set_angle_weighted_dist_to_plane (value:bool)
auto optimize_vertex_pos () const -> &bool
auto optimize_vertex_pos_mut () -> &mut bool
void set_optimize_vertex_pos (value:bool)
auto max_deleted_vertices () const -> &core::ffi::c_int
auto max_deleted_vertices_mut () -> &mut core::ffi::c_int
void set_max_deleted_vertices (value:core::ffi::c_int)
auto max_deleted_faces () const -> &core::ffi::c_int
auto max_deleted_faces_mut () -> &mut core::ffi::c_int
void set_max_deleted_faces (value:core::ffi::c_int)
auto region () const -> *const *mut meshlib::ffi::MR_FaceBitSet
auto region_mut () -> *mut *mut meshlib::ffi::MR_FaceBitSet
void set_region (value:Option<&mut meshlib::FaceBitSet >)
auto not_flippable () const -> *const *mut meshlib::ffi::MR_UndirectedEdgeBitSet
auto not_flippable_mut () -> *mut *mut meshlib::ffi::MR_UndirectedEdgeBitSet
void set_not_flippable (value:Option<&mut meshlib::UndirectedEdgeBitSet >)
auto collapse_near_not_flippable () const -> &bool
auto collapse_near_not_flippable_mut () -> &mut bool
void set_collapse_near_not_flippable (value:bool)
auto edges_to_collapse () const -> *const *mut meshlib::ffi::MR_UndirectedEdgeBitSet
auto edges_to_collapse_mut () -> *mut *mut meshlib::ffi::MR_UndirectedEdgeBitSet
void set_edges_to_collapse (value:Option<&mut meshlib::UndirectedEdgeBitSet >)
auto twin_map () const -> *const *mut meshlib::ffi::MR_phmap_flat_hash_map_MR_UndirectedEdgeId_MR_UndirectedEdgeId_phmap_Hash_MR_UndirectedEdgeId_phmap_EqualTo_MR_UndirectedEdgeId_MR_Allocator_std_pair_const_MR_UndirectedEdgeId_MR_UndirectedEdgeId
auto twin_map_mut () -> *mut *mut meshlib::ffi::MR_phmap_flat_hash_map_MR_UndirectedEdgeId_MR_UndirectedEdgeId_phmap_Hash_MR_UndirectedEdgeId_phmap_EqualTo_MR_UndirectedEdgeId_MR_Allocator_std_pair_const_MR_UndirectedEdgeId_MR_UndirectedEdgeId
void set_twin_map (value:Option<&mut meshlib::phmap::phmap_flat_hash_map_MR_UndirectedEdgeId_MR_UndirectedEdgeId_phmap_Hash_MR_UndirectedEdgeId_phmap_EqualTo_MR_UndirectedEdgeId_MR_Allocator_std_pair_const_MR_UndirectedEdgeId_MR_UndirectedEdgeId >)
auto touch_near_bd_edges () const -> &bool
auto touch_near_bd_edges_mut () -> &mut bool
void set_touch_near_bd_edges (value:bool)
auto touch_bd_verts () const -> &bool
auto touch_bd_verts_mut () -> &mut bool
void set_touch_bd_verts (value:bool)
auto bd_verts () const -> *const *mut meshlib::ffi::MR_VertBitSet
auto bd_verts_mut () -> *mut *mut meshlib::ffi::MR_VertBitSet
void set_bd_verts (value:Option<&mut meshlib::VertBitSet >)
auto region_edges () const -> *const *const meshlib::ffi::MR_UndirectedEdgeBitSet
auto region_edges_mut () -> *mut *const meshlib::ffi::MR_UndirectedEdgeBitSet
void set_region_edges (value:Option<&meshlib::UndirectedEdgeBitSet >)
auto max_angle_change () const -> &f32
auto max_angle_change_mut () -> &mut f32
void set_max_angle_change (value:f32)
auto pre_collapse () const -> &meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref
 The user can provide this optional callback that is invoked immediately before edge collapse;.
auto pre_collapse_mut () -> &mut meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref
 The user can provide this optional callback that is invoked immediately before edge collapse;.
void set_pre_collapse (value:&meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref)
 The user can provide this optional callback that is invoked immediately before edge collapse;.
auto adjust_collapse () const -> &meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref
 The user can provide this optional callback for adjusting error introduced by this edge collapse and the collapse position.
auto adjust_collapse_mut () -> &mut meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref
 The user can provide this optional callback for adjusting error introduced by this edge collapse and the collapse position.
void set_adjust_collapse (value:&meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref)
 The user can provide this optional callback for adjusting error introduced by this edge collapse and the collapse position.
auto on_edge_del () const -> &meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId
auto on_edge_del_mut () -> &mut meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId
void set_on_edge_del (value:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId)
auto vert_forms () const -> *const *mut meshlib::ffi::MR_Vector_MR_QuadraticForm3f_MR_VertId
 If not null, then vertex quadratic forms are stored there; if on input the vector is not empty then initialization is skipped in favor of values from there; on output: quadratic form for each remaining vertex is returned there.
auto vert_forms_mut () -> *mut *mut meshlib::ffi::MR_Vector_MR_QuadraticForm3f_MR_VertId
 If not null, then vertex quadratic forms are stored there; if on input the vector is not empty then initialization is skipped in favor of values from there; on output: quadratic form for each remaining vertex is returned there.
void set_vert_forms (value:Option<&mut meshlib::Vector_MR_QuadraticForm3f_MR_VertId >)
 If not null, then vertex quadratic forms are stored there; if on input the vector is not empty then initialization is skipped in favor of values from there; on output: quadratic form for each remaining vertex is returned there.
auto pack_mesh () const -> &bool
auto pack_mesh_mut () -> &mut bool
void set_pack_mesh (value:bool)
auto progress_callback () const -> &meshlib::std_function_bool_from_float
auto progress_callback_mut () -> &mut meshlib::std_function_bool_from_float
void set_progress_callback (value:&meshlib::std_function_bool_from_float)
auto subdivide_parts () const -> &core::ffi::c_int
auto subdivide_parts_mut () -> &mut core::ffi::c_int
void set_subdivide_parts (value:core::ffi::c_int)
auto parts_mode () const -> &meshlib::DecimatePartsMode
auto parts_mode_mut () -> &mut meshlib::DecimatePartsMode
void set_parts_mode (value:meshlib::DecimatePartsMode)
auto decimate_between_parts () const -> &bool
auto decimate_between_parts_mut () -> &mut bool
void set_decimate_between_parts (value:bool)
auto part_faces () const -> *const *mut meshlib::ffi::MR_std_vector_MR_FaceBitSet
auto part_faces_mut () -> *mut *mut meshlib::ffi::MR_std_vector_MR_FaceBitSet
void set_part_faces (value:Option<&mut meshlib::std_vector_MR_FaceBitSet >)
auto min_faces_in_part () const -> &core::ffi::c_int
auto min_faces_in_part_mut () -> &mut core::ffi::c_int
void set_min_faces_in_part (value:core::ffi::c_int)

Static Public Member Functions

static auto new () -> meshlib::Owned< meshlib::DecimateSettings >
static auto construct_from (strategy:meshlib::DecimateStrategy, maxError:f32, maxEdgeLen:f32, maxBdShift:f32, maxTriangleAspectRatio:f32, criticalTriAspectRatio:f32, preventNormalFlips:bool, tinyEdgeLength:f32, stabilizer:f32, angleWeightedDistToPlane:bool, optimizeVertexPos:bool, maxDeletedVertices:core::ffi::c_int, maxDeletedFaces:core::ffi::c_int, region:Option<&mut meshlib::FaceBitSet >, notFlippable:Option<&mut meshlib::UndirectedEdgeBitSet >, collapseNearNotFlippable:bool, edgesToCollapse:Option<&mut meshlib::UndirectedEdgeBitSet >, twinMap:Option<&mut meshlib::phmap::phmap_flat_hash_map_MR_UndirectedEdgeId_MR_UndirectedEdgeId_phmap_Hash_MR_UndirectedEdgeId_phmap_EqualTo_MR_UndirectedEdgeId_MR_Allocator_std_pair_const_MR_UndirectedEdgeId_MR_UndirectedEdgeId >, touchNearBdEdges:bool, touchBdVerts:bool, bdVerts:Option<&mut meshlib::VertBitSet >, regionEdges:Option<&meshlib::UndirectedEdgeBitSet >, maxAngleChange:f32, preCollapse:&meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref, adjustCollapse:&meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref, onEdgeDel:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId, vertForms:Option<&mut meshlib::Vector_MR_QuadraticForm3f_MR_VertId >, packMesh:bool, progressCallback:&meshlib::std_function_bool_from_float, subdivideParts:core::ffi::c_int, partsMode:meshlib::DecimatePartsMode, decimateBetweenParts:bool, partFaces:Option<&mut meshlib::std_vector_MR_FaceBitSet >, minFacesInPart:core::ffi::c_int) -> meshlib::Owned< meshlib::DecimateSettings >
static auto construct_from_another (_other:&meshlib::DecimateSettings) -> meshlib::Owned< meshlib::DecimateSettings >
Static Public Member Functions inherited from meshlib::CppClass
static void destroy (ptr:*mut Self)
Static Public Member Functions inherited from meshlib::CppCopy
static auto copy (ptr:*const Self) -> *mut Self

Member Function Documentation

◆ adjust_collapse()

auto meshlib::DecimateSettings::adjust_collapse ( ) const -> &meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref

The user can provide this optional callback for adjusting error introduced by this edge collapse and the collapse position.

On input the callback gets the squared error and position computed by standard means, and callback can modify any of them. The larger the error, the later this edge will be collapsed. This callback can be called from many threads in parallel and must be thread-safe. This callback can be called many times for each edge before real collapsing, and it is important to make the same adjustment.

Returns a pointer to a member variable of class MR::DecimateSettings named adjustCollapse.

Calls MR_DecimateSettings_Get_adjustCollapse(). The reference to this object might be preserved as the return value.

◆ adjust_collapse_mut()

auto meshlib::DecimateSettings::adjust_collapse_mut ( ) -> &mut meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref

The user can provide this optional callback for adjusting error introduced by this edge collapse and the collapse position.

On input the callback gets the squared error and position computed by standard means, and callback can modify any of them. The larger the error, the later this edge will be collapsed. This callback can be called from many threads in parallel and must be thread-safe. This callback can be called many times for each edge before real collapsing, and it is important to make the same adjustment.

Returns a mutable pointer to a member variable of class MR::DecimateSettings named adjustCollapse.

Calls MR_DecimateSettings_GetMutable_adjustCollapse(). The reference to this object might be preserved as the return value.

◆ angle_weighted_dist_to_plane()

auto meshlib::DecimateSettings::angle_weighted_dist_to_plane ( ) const -> &bool

if false, then quadratic error metric is equal to the sum of distances to the planes of original mesh triangles; if true, then the sum is weighted, and the weight is equal to the angle of adjacent triangle at the vertex divided on PI (to get one after summing all 3 vertices of the triangle) Returns a pointer to a member variable of class MR::DecimateSettings named angleWeightedDistToPlane.

Calls MR_DecimateSettings_Get_angleWeightedDistToPlane(). The reference to this object might be preserved as the return value.

◆ angle_weighted_dist_to_plane_mut()

auto meshlib::DecimateSettings::angle_weighted_dist_to_plane_mut ( ) -> &mut bool

if false, then quadratic error metric is equal to the sum of distances to the planes of original mesh triangles; if true, then the sum is weighted, and the weight is equal to the angle of adjacent triangle at the vertex divided on PI (to get one after summing all 3 vertices of the triangle) Returns a mutable pointer to a member variable of class MR::DecimateSettings named angleWeightedDistToPlane.

Calls MR_DecimateSettings_GetMutable_angleWeightedDistToPlane(). The reference to this object might be preserved as the return value.

◆ assign_from_another()

auto meshlib::DecimateSettings::assign_from_another ( _other:&meshlib::DecimateSettings ) -> &mut meshlib::DecimateSettings

Generated from method MR::DecimateSettings::operator=.

Calls MR_DecimateSettings_AssignFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in this object.

◆ bd_verts()

auto meshlib::DecimateSettings::bd_verts ( ) const -> *const *mut meshlib::ffi::MR_VertBitSet

if touchNearBdEdges=false or touchBdVerts=false then the algorithm needs to know about all boundary vertices; if the pointer is not null then boundary vertices detection is replaced with testing values in this bit-set; the algorithm updates this set if it packs the mesh Returns a pointer to a member variable of class MR::DecimateSettings named bdVerts.

Calls MR_DecimateSettings_Get_bdVerts(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ bd_verts_mut()

auto meshlib::DecimateSettings::bd_verts_mut ( ) -> *mut *mut meshlib::ffi::MR_VertBitSet

if touchNearBdEdges=false or touchBdVerts=false then the algorithm needs to know about all boundary vertices; if the pointer is not null then boundary vertices detection is replaced with testing values in this bit-set; the algorithm updates this set if it packs the mesh Returns a mutable pointer to a member variable of class MR::DecimateSettings named bdVerts.

Calls MR_DecimateSettings_GetMutable_bdVerts(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ collapse_near_not_flippable()

auto meshlib::DecimateSettings::collapse_near_not_flippable ( ) const -> &bool

Whether to allow collapse of edges incident to notFlippable edges, which can move vertices of notFlippable edges unless they are fixed Returns a pointer to a member variable of class MR::DecimateSettings named collapseNearNotFlippable.

Calls MR_DecimateSettings_Get_collapseNearNotFlippable(). The reference to this object might be preserved as the return value.

◆ collapse_near_not_flippable_mut()

auto meshlib::DecimateSettings::collapse_near_not_flippable_mut ( ) -> &mut bool

Whether to allow collapse of edges incident to notFlippable edges, which can move vertices of notFlippable edges unless they are fixed Returns a mutable pointer to a member variable of class MR::DecimateSettings named collapseNearNotFlippable.

Calls MR_DecimateSettings_GetMutable_collapseNearNotFlippable(). The reference to this object might be preserved as the return value.

◆ construct_from()

auto meshlib::DecimateSettings::construct_from ( strategy:meshlib::DecimateStrategy ,
maxError:f32 ,
maxEdgeLen:f32 ,
maxBdShift:f32 ,
maxTriangleAspectRatio:f32 ,
criticalTriAspectRatio:f32 ,
preventNormalFlips:bool ,
tinyEdgeLength:f32 ,
stabilizer:f32 ,
angleWeightedDistToPlane:bool ,
optimizeVertexPos:bool ,
maxDeletedVertices:core::ffi::c_int ,
maxDeletedFaces:core::ffi::c_int ,
region:Option<&mut meshlib::FaceBitSet > ,
notFlippable:Option<&mut meshlib::UndirectedEdgeBitSet > ,
collapseNearNotFlippable:bool ,
edgesToCollapse:Option<&mut meshlib::UndirectedEdgeBitSet > ,
twinMap:Option<&mut meshlib::phmap::phmap_flat_hash_map_MR_UndirectedEdgeId_MR_UndirectedEdgeId_phmap_Hash_MR_UndirectedEdgeId_phmap_EqualTo_MR_UndirectedEdgeId_MR_Allocator_std_pair_const_MR_UndirectedEdgeId_MR_UndirectedEdgeId > ,
touchNearBdEdges:bool ,
touchBdVerts:bool ,
bdVerts:Option<&mut meshlib::VertBitSet > ,
regionEdges:Option<&meshlib::UndirectedEdgeBitSet > ,
maxAngleChange:f32 ,
preCollapse:&meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref ,
adjustCollapse:&meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref ,
onEdgeDel:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId ,
vertForms:Option<&mut meshlib::Vector_MR_QuadraticForm3f_MR_VertId > ,
packMesh:bool ,
progressCallback:&meshlib::std_function_bool_from_float ,
subdivideParts:core::ffi::c_int ,
partsMode:meshlib::DecimatePartsMode ,
decimateBetweenParts:bool ,
partFaces:Option<&mut meshlib::std_vector_MR_FaceBitSet > ,
minFacesInPart:core::ffi::c_int  ) -> meshlib::Owned< meshlib::DecimateSettings >
static

Constructs MR::DecimateSettings elementwise.

Calls MR_DecimateSettings_ConstructFrom(). The reference to the parameter strategy might be preserved in the constructed object. The reference to the parameter region might be preserved in the constructed object. The reference to the parameter notFlippable might be preserved in the constructed object. The reference to the parameter edgesToCollapse might be preserved in the constructed object. The reference to the parameter twinMap might be preserved in the constructed object. The reference to the parameter bdVerts might be preserved in the constructed object. The reference to the parameter regionEdges might be preserved in the constructed object. The reference to the parameter preCollapse might be preserved in the constructed object. The reference to the parameter adjustCollapse might be preserved in the constructed object. The reference to the parameter onEdgeDel might be preserved in the constructed object. The reference to the parameter vertForms might be preserved in the constructed object. The reference to the parameter progressCallback might be preserved in the constructed object. The reference to the parameter partsMode might be preserved in the constructed object. The reference to the parameter partFaces might be preserved in the constructed object.

◆ construct_from_another()

auto meshlib::DecimateSettings::construct_from_another ( _other:&meshlib::DecimateSettings ) -> meshlib::Owned< meshlib::DecimateSettings >
static

Generated from constructor MR::DecimateSettings::DecimateSettings.

Calls MR_DecimateSettings_ConstructFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.

◆ critical_tri_aspect_ratio()

auto meshlib::DecimateSettings::critical_tri_aspect_ratio ( ) const -> &f32

the algorithm will ignore dihedral angle check if one of triangles had aspect ratio equal or more than this value; and the algorithm will permit temporary increase in aspect ratio after collapse, if before collapse one of the triangles had larger aspect ratio Returns a pointer to a member variable of class MR::DecimateSettings named criticalTriAspectRatio.

Calls MR_DecimateSettings_Get_criticalTriAspectRatio(). The reference to this object might be preserved as the return value.

◆ critical_tri_aspect_ratio_mut()

auto meshlib::DecimateSettings::critical_tri_aspect_ratio_mut ( ) -> &mut f32

the algorithm will ignore dihedral angle check if one of triangles had aspect ratio equal or more than this value; and the algorithm will permit temporary increase in aspect ratio after collapse, if before collapse one of the triangles had larger aspect ratio Returns a mutable pointer to a member variable of class MR::DecimateSettings named criticalTriAspectRatio.

Calls MR_DecimateSettings_GetMutable_criticalTriAspectRatio(). The reference to this object might be preserved as the return value.

◆ decimate_between_parts()

auto meshlib::DecimateSettings::decimate_between_parts ( ) const -> &bool

Whether to decimate near the borders of individual parts to eliminate small edges there: as soon as two sibling nodes in the binary tree of parts are decimated, their union is decimated in parallel with other nodes, and only the border between two halves of the mesh remains for the final decimation of whole mesh region Returns a pointer to a member variable of class MR::DecimateSettings named decimateBetweenParts.

Calls MR_DecimateSettings_Get_decimateBetweenParts(). The reference to this object might be preserved as the return value.

◆ decimate_between_parts_mut()

auto meshlib::DecimateSettings::decimate_between_parts_mut ( ) -> &mut bool

Whether to decimate near the borders of individual parts to eliminate small edges there: as soon as two sibling nodes in the binary tree of parts are decimated, their union is decimated in parallel with other nodes, and only the border between two halves of the mesh remains for the final decimation of whole mesh region Returns a mutable pointer to a member variable of class MR::DecimateSettings named decimateBetweenParts.

Calls MR_DecimateSettings_GetMutable_decimateBetweenParts(). The reference to this object might be preserved as the return value.

◆ edges_to_collapse()

auto meshlib::DecimateSettings::edges_to_collapse ( ) const -> *const *mut meshlib::ffi::MR_UndirectedEdgeBitSet

If pointer is not null, then only edges from here can be collapsed (and some nearby edges can disappear); the algorithm updates this map during collapses, removing or replacing elements Returns a pointer to a member variable of class MR::DecimateSettings named edgesToCollapse.

Calls MR_DecimateSettings_Get_edgesToCollapse(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ edges_to_collapse_mut()

auto meshlib::DecimateSettings::edges_to_collapse_mut ( ) -> *mut *mut meshlib::ffi::MR_UndirectedEdgeBitSet

If pointer is not null, then only edges from here can be collapsed (and some nearby edges can disappear); the algorithm updates this map during collapses, removing or replacing elements Returns a mutable pointer to a member variable of class MR::DecimateSettings named edgesToCollapse.

Calls MR_DecimateSettings_GetMutable_edgesToCollapse(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ max_angle_change()

auto meshlib::DecimateSettings::max_angle_change ( ) const -> &f32

Permit edge flips (in addition to collapsing) to improve Delone quality of the mesh if it does not change dihedral angle more than on this value (negative value prohibits any edge flips) Returns a pointer to a member variable of class MR::DecimateSettings named maxAngleChange.

Calls MR_DecimateSettings_Get_maxAngleChange(). The reference to this object might be preserved as the return value.

◆ max_angle_change_mut()

auto meshlib::DecimateSettings::max_angle_change_mut ( ) -> &mut f32

Permit edge flips (in addition to collapsing) to improve Delone quality of the mesh if it does not change dihedral angle more than on this value (negative value prohibits any edge flips) Returns a mutable pointer to a member variable of class MR::DecimateSettings named maxAngleChange.

Calls MR_DecimateSettings_GetMutable_maxAngleChange(). The reference to this object might be preserved as the return value.

◆ max_bd_shift()

auto meshlib::DecimateSettings::max_bd_shift ( ) const -> &f32

Maximal shift of a boundary during one edge collapse Returns a pointer to a member variable of class MR::DecimateSettings named maxBdShift.

Calls MR_DecimateSettings_Get_maxBdShift(). The reference to this object might be preserved as the return value.

◆ max_bd_shift_mut()

auto meshlib::DecimateSettings::max_bd_shift_mut ( ) -> &mut f32

Maximal shift of a boundary during one edge collapse Returns a mutable pointer to a member variable of class MR::DecimateSettings named maxBdShift.

Calls MR_DecimateSettings_GetMutable_maxBdShift(). The reference to this object might be preserved as the return value.

◆ max_deleted_faces()

auto meshlib::DecimateSettings::max_deleted_faces ( ) const -> &core::ffi::c_int

Limit on the number of deleted faces Returns a pointer to a member variable of class MR::DecimateSettings named maxDeletedFaces.

Calls MR_DecimateSettings_Get_maxDeletedFaces(). The reference to this object might be preserved as the return value.

◆ max_deleted_faces_mut()

auto meshlib::DecimateSettings::max_deleted_faces_mut ( ) -> &mut core::ffi::c_int

Limit on the number of deleted faces Returns a mutable pointer to a member variable of class MR::DecimateSettings named maxDeletedFaces.

Calls MR_DecimateSettings_GetMutable_maxDeletedFaces(). The reference to this object might be preserved as the return value.

◆ max_deleted_vertices()

auto meshlib::DecimateSettings::max_deleted_vertices ( ) const -> &core::ffi::c_int

Limit on the number of deleted vertices Returns a pointer to a member variable of class MR::DecimateSettings named maxDeletedVertices.

Calls MR_DecimateSettings_Get_maxDeletedVertices(). The reference to this object might be preserved as the return value.

◆ max_deleted_vertices_mut()

auto meshlib::DecimateSettings::max_deleted_vertices_mut ( ) -> &mut core::ffi::c_int

Limit on the number of deleted vertices Returns a mutable pointer to a member variable of class MR::DecimateSettings named maxDeletedVertices.

Calls MR_DecimateSettings_GetMutable_maxDeletedVertices(). The reference to this object might be preserved as the return value.

◆ max_edge_len()

auto meshlib::DecimateSettings::max_edge_len ( ) const -> &f32

Maximal possible edge length created during decimation Returns a pointer to a member variable of class MR::DecimateSettings named maxEdgeLen.

Calls MR_DecimateSettings_Get_maxEdgeLen(). The reference to this object might be preserved as the return value.

◆ max_edge_len_mut()

auto meshlib::DecimateSettings::max_edge_len_mut ( ) -> &mut f32

Maximal possible edge length created during decimation Returns a mutable pointer to a member variable of class MR::DecimateSettings named maxEdgeLen.

Calls MR_DecimateSettings_GetMutable_maxEdgeLen(). The reference to this object might be preserved as the return value.

◆ max_error()

auto meshlib::DecimateSettings::max_error ( ) const -> &f32

for DecimateStrategy::MinimizeError: stop the decimation as soon as the estimated distance deviation from the original mesh is more than this value for DecimateStrategy::ShortestEdgeFirst only: stop the decimation as soon as the shortest edge in the mesh is greater than this value Returns a pointer to a member variable of class MR::DecimateSettings named maxError.

Calls MR_DecimateSettings_Get_maxError(). The reference to this object might be preserved as the return value.

◆ max_error_mut()

auto meshlib::DecimateSettings::max_error_mut ( ) -> &mut f32

for DecimateStrategy::MinimizeError: stop the decimation as soon as the estimated distance deviation from the original mesh is more than this value for DecimateStrategy::ShortestEdgeFirst only: stop the decimation as soon as the shortest edge in the mesh is greater than this value Returns a mutable pointer to a member variable of class MR::DecimateSettings named maxError.

Calls MR_DecimateSettings_GetMutable_maxError(). The reference to this object might be preserved as the return value.

◆ max_triangle_aspect_ratio()

auto meshlib::DecimateSettings::max_triangle_aspect_ratio ( ) const -> &f32

Maximal possible aspect ratio of a triangle introduced during decimation Returns a pointer to a member variable of class MR::DecimateSettings named maxTriangleAspectRatio.

Calls MR_DecimateSettings_Get_maxTriangleAspectRatio(). The reference to this object might be preserved as the return value.

◆ max_triangle_aspect_ratio_mut()

auto meshlib::DecimateSettings::max_triangle_aspect_ratio_mut ( ) -> &mut f32

Maximal possible aspect ratio of a triangle introduced during decimation Returns a mutable pointer to a member variable of class MR::DecimateSettings named maxTriangleAspectRatio.

Calls MR_DecimateSettings_GetMutable_maxTriangleAspectRatio(). The reference to this object might be preserved as the return value.

◆ min_faces_in_part()

auto meshlib::DecimateSettings::min_faces_in_part ( ) const -> &core::ffi::c_int

minimum number of faces in one subdivision part for ( subdivideParts > 1 ) mode Returns a pointer to a member variable of class MR::DecimateSettings named minFacesInPart.

Calls MR_DecimateSettings_Get_minFacesInPart(). The reference to this object might be preserved as the return value.

◆ min_faces_in_part_mut()

auto meshlib::DecimateSettings::min_faces_in_part_mut ( ) -> &mut core::ffi::c_int

minimum number of faces in one subdivision part for ( subdivideParts > 1 ) mode Returns a mutable pointer to a member variable of class MR::DecimateSettings named minFacesInPart.

Calls MR_DecimateSettings_GetMutable_minFacesInPart(). The reference to this object might be preserved as the return value.

◆ new()

auto meshlib::DecimateSettings::new ( ) -> meshlib::Owned< meshlib::DecimateSettings >
static

Constructs an empty (default-constructed) instance.

Calls MR_DecimateSettings_DefaultConstruct().

◆ not_flippable()

auto meshlib::DecimateSettings::not_flippable ( ) const -> *const *mut meshlib::ffi::MR_UndirectedEdgeBitSet

Edges specified by this bit-set will never be flipped, but they can be collapsed or replaced during collapse of nearby edges so it is updated during the operation Returns a pointer to a member variable of class MR::DecimateSettings named notFlippable.

Calls MR_DecimateSettings_Get_notFlippable(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ not_flippable_mut()

auto meshlib::DecimateSettings::not_flippable_mut ( ) -> *mut *mut meshlib::ffi::MR_UndirectedEdgeBitSet

Edges specified by this bit-set will never be flipped, but they can be collapsed or replaced during collapse of nearby edges so it is updated during the operation Returns a mutable pointer to a member variable of class MR::DecimateSettings named notFlippable.

Calls MR_DecimateSettings_GetMutable_notFlippable(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ on_edge_del()

auto meshlib::DecimateSettings::on_edge_del ( ) const -> &meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId

this function is called each time edge (del) is deleted; if valid (rem) is given then dest(del) = dest(rem) and their origins are in different ends of collapsing edge, (rem) shall take the place of (del) Returns a pointer to a member variable of class MR::DecimateSettings named onEdgeDel.

Calls MR_DecimateSettings_Get_onEdgeDel(). The reference to this object might be preserved as the return value.

◆ on_edge_del_mut()

auto meshlib::DecimateSettings::on_edge_del_mut ( ) -> &mut meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId

this function is called each time edge (del) is deleted; if valid (rem) is given then dest(del) = dest(rem) and their origins are in different ends of collapsing edge, (rem) shall take the place of (del) Returns a mutable pointer to a member variable of class MR::DecimateSettings named onEdgeDel.

Calls MR_DecimateSettings_GetMutable_onEdgeDel(). The reference to this object might be preserved as the return value.

◆ optimize_vertex_pos()

auto meshlib::DecimateSettings::optimize_vertex_pos ( ) const -> &bool

if true then after each edge collapse the position of remaining vertex is optimized to minimize local shape change, if false then the edge is collapsed in one of its vertices, which keeps its position Returns a pointer to a member variable of class MR::DecimateSettings named optimizeVertexPos.

Calls MR_DecimateSettings_Get_optimizeVertexPos(). The reference to this object might be preserved as the return value.

◆ optimize_vertex_pos_mut()

auto meshlib::DecimateSettings::optimize_vertex_pos_mut ( ) -> &mut bool

if true then after each edge collapse the position of remaining vertex is optimized to minimize local shape change, if false then the edge is collapsed in one of its vertices, which keeps its position Returns a mutable pointer to a member variable of class MR::DecimateSettings named optimizeVertexPos.

Calls MR_DecimateSettings_GetMutable_optimizeVertexPos(). The reference to this object might be preserved as the return value.

◆ pack_mesh()

auto meshlib::DecimateSettings::pack_mesh ( ) const -> &bool

whether to pack mesh at the end Returns a pointer to a member variable of class MR::DecimateSettings named packMesh.

Calls MR_DecimateSettings_Get_packMesh(). The reference to this object might be preserved as the return value.

◆ pack_mesh_mut()

auto meshlib::DecimateSettings::pack_mesh_mut ( ) -> &mut bool

whether to pack mesh at the end Returns a mutable pointer to a member variable of class MR::DecimateSettings named packMesh.

Calls MR_DecimateSettings_GetMutable_packMesh(). The reference to this object might be preserved as the return value.

◆ part_faces()

auto meshlib::DecimateSettings::part_faces ( ) const -> *const *mut meshlib::ffi::MR_std_vector_MR_FaceBitSet

if not null, then it contains the faces of each subdivision part on input, which must not overlap, and after decimation of all parts, the region inside each part is put here; decimateBetweenParts=true or packMesh=true are not compatible with this option Returns a pointer to a member variable of class MR::DecimateSettings named partFaces.

Calls MR_DecimateSettings_Get_partFaces(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ part_faces_mut()

auto meshlib::DecimateSettings::part_faces_mut ( ) -> *mut *mut meshlib::ffi::MR_std_vector_MR_FaceBitSet

if not null, then it contains the faces of each subdivision part on input, which must not overlap, and after decimation of all parts, the region inside each part is put here; decimateBetweenParts=true or packMesh=true are not compatible with this option Returns a mutable pointer to a member variable of class MR::DecimateSettings named partFaces.

Calls MR_DecimateSettings_GetMutable_partFaces(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ parts_mode()

auto meshlib::DecimateSettings::parts_mode ( ) const -> &meshlib::DecimatePartsMode

how the parts are found for subdivideParts > 1; ignored if partFaces is given Returns a pointer to a member variable of class MR::DecimateSettings named partsMode.

Calls MR_DecimateSettings_Get_partsMode(). The reference to this object might be preserved as the return value.

◆ parts_mode_mut()

auto meshlib::DecimateSettings::parts_mode_mut ( ) -> &mut meshlib::DecimatePartsMode

how the parts are found for subdivideParts > 1; ignored if partFaces is given Returns a mutable pointer to a member variable of class MR::DecimateSettings named partsMode.

Calls MR_DecimateSettings_GetMutable_partsMode(). The reference to this object might be preserved as the return value.

◆ pre_collapse()

auto meshlib::DecimateSettings::pre_collapse ( ) const -> &meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref

The user can provide this optional callback that is invoked immediately before edge collapse;.

It receives the edge being collapsed: its destination vertex will disappear, and its origin vertex will get new position (provided as the second argument) after collapse; If the callback returns false, then the collapse is prohibited

Returns a pointer to a member variable of class MR::DecimateSettings named preCollapse.

Calls MR_DecimateSettings_Get_preCollapse(). The reference to this object might be preserved as the return value.

◆ pre_collapse_mut()

auto meshlib::DecimateSettings::pre_collapse_mut ( ) -> &mut meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref

The user can provide this optional callback that is invoked immediately before edge collapse;.

It receives the edge being collapsed: its destination vertex will disappear, and its origin vertex will get new position (provided as the second argument) after collapse; If the callback returns false, then the collapse is prohibited

Returns a mutable pointer to a member variable of class MR::DecimateSettings named preCollapse.

Calls MR_DecimateSettings_GetMutable_preCollapse(). The reference to this object might be preserved as the return value.

◆ prevent_normal_flips()

auto meshlib::DecimateSettings::prevent_normal_flips ( ) const -> &bool

whether to prohibit a collapse if it inverts the normal of a remaining triangle, or folds two triangles onto each other; turning it off (together with maxTriangleAspectRatio = FLT_MAX) makes decimation faster, but some triangles may appear inverted Returns a pointer to a member variable of class MR::DecimateSettings named preventNormalFlips.

Calls MR_DecimateSettings_Get_preventNormalFlips(). The reference to this object might be preserved as the return value.

◆ prevent_normal_flips_mut()

auto meshlib::DecimateSettings::prevent_normal_flips_mut ( ) -> &mut bool

whether to prohibit a collapse if it inverts the normal of a remaining triangle, or folds two triangles onto each other; turning it off (together with maxTriangleAspectRatio = FLT_MAX) makes decimation faster, but some triangles may appear inverted Returns a mutable pointer to a member variable of class MR::DecimateSettings named preventNormalFlips.

Calls MR_DecimateSettings_GetMutable_preventNormalFlips(). The reference to this object might be preserved as the return value.

◆ progress_callback()

auto meshlib::DecimateSettings::progress_callback ( ) const -> &meshlib::std_function_bool_from_float

callback to report algorithm progress and cancel it by user request Returns a pointer to a member variable of class MR::DecimateSettings named progressCallback.

Calls MR_DecimateSettings_Get_progressCallback(). The reference to this object might be preserved as the return value.

◆ progress_callback_mut()

auto meshlib::DecimateSettings::progress_callback_mut ( ) -> &mut meshlib::std_function_bool_from_float

callback to report algorithm progress and cancel it by user request Returns a mutable pointer to a member variable of class MR::DecimateSettings named progressCallback.

Calls MR_DecimateSettings_GetMutable_progressCallback(). The reference to this object might be preserved as the return value.

◆ region()

auto meshlib::DecimateSettings::region ( ) const -> *const *mut meshlib::ffi::MR_FaceBitSet

Region on mesh to be decimated, it is updated during the operation Returns a pointer to a member variable of class MR::DecimateSettings named region.

Calls MR_DecimateSettings_Get_region(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ region_edges()

auto meshlib::DecimateSettings::region_edges ( ) const -> *const *const meshlib::ffi::MR_UndirectedEdgeBitSet

if region is not null and this pointer is not null, then it shall contain all edges incident to region faces (as returned by getIncidentEdges( topology, *region )), and the algorithm does not compute them itself Returns a pointer to a member variable of class MR::DecimateSettings named regionEdges.

Calls MR_DecimateSettings_Get_regionEdges(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ region_edges_mut()

auto meshlib::DecimateSettings::region_edges_mut ( ) -> *mut *const meshlib::ffi::MR_UndirectedEdgeBitSet

if region is not null and this pointer is not null, then it shall contain all edges incident to region faces (as returned by getIncidentEdges( topology, *region )), and the algorithm does not compute them itself Returns a mutable pointer to a member variable of class MR::DecimateSettings named regionEdges.

Calls MR_DecimateSettings_GetMutable_regionEdges(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ region_mut()

auto meshlib::DecimateSettings::region_mut ( ) -> *mut *mut meshlib::ffi::MR_FaceBitSet

Region on mesh to be decimated, it is updated during the operation Returns a mutable pointer to a member variable of class MR::DecimateSettings named region.

Calls MR_DecimateSettings_GetMutable_region(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ set_adjust_collapse()

void meshlib::DecimateSettings::set_adjust_collapse ( value:&meshlib::std_function_void_from_MR_UndirectedEdgeId_float_ref_MR_Vector3f_ref )

The user can provide this optional callback for adjusting error introduced by this edge collapse and the collapse position.

On input the callback gets the squared error and position computed by standard means, and callback can modify any of them. The larger the error, the later this edge will be collapsed. This callback can be called from many threads in parallel and must be thread-safe. This callback can be called many times for each edge before real collapsing, and it is important to make the same adjustment.

Modifies a member variable of class MR::DecimateSettings named adjustCollapse.

Calls MR_DecimateSettings_Set_adjustCollapse(). The reference to the parameter value might be preserved in this object in element adjustCollapse.

◆ set_angle_weighted_dist_to_plane()

void meshlib::DecimateSettings::set_angle_weighted_dist_to_plane ( value:bool )

if false, then quadratic error metric is equal to the sum of distances to the planes of original mesh triangles; if true, then the sum is weighted, and the weight is equal to the angle of adjacent triangle at the vertex divided on PI (to get one after summing all 3 vertices of the triangle) Modifies a member variable of class MR::DecimateSettings named angleWeightedDistToPlane.

Calls MR_DecimateSettings_Set_angleWeightedDistToPlane().

◆ set_bd_verts()

void meshlib::DecimateSettings::set_bd_verts ( value:Option<&mut meshlib::VertBitSet > )

if touchNearBdEdges=false or touchBdVerts=false then the algorithm needs to know about all boundary vertices; if the pointer is not null then boundary vertices detection is replaced with testing values in this bit-set; the algorithm updates this set if it packs the mesh Modifies a member variable of class MR::DecimateSettings named bdVerts.

Calls MR_DecimateSettings_Set_bdVerts(). The reference to the parameter value might be preserved in this object in element bdVerts.

◆ set_collapse_near_not_flippable()

void meshlib::DecimateSettings::set_collapse_near_not_flippable ( value:bool )

Whether to allow collapse of edges incident to notFlippable edges, which can move vertices of notFlippable edges unless they are fixed Modifies a member variable of class MR::DecimateSettings named collapseNearNotFlippable.

Calls MR_DecimateSettings_Set_collapseNearNotFlippable().

◆ set_critical_tri_aspect_ratio()

void meshlib::DecimateSettings::set_critical_tri_aspect_ratio ( value:f32 )

the algorithm will ignore dihedral angle check if one of triangles had aspect ratio equal or more than this value; and the algorithm will permit temporary increase in aspect ratio after collapse, if before collapse one of the triangles had larger aspect ratio Modifies a member variable of class MR::DecimateSettings named criticalTriAspectRatio.

Calls MR_DecimateSettings_Set_criticalTriAspectRatio().

◆ set_decimate_between_parts()

void meshlib::DecimateSettings::set_decimate_between_parts ( value:bool )

Whether to decimate near the borders of individual parts to eliminate small edges there: as soon as two sibling nodes in the binary tree of parts are decimated, their union is decimated in parallel with other nodes, and only the border between two halves of the mesh remains for the final decimation of whole mesh region Modifies a member variable of class MR::DecimateSettings named decimateBetweenParts.

Calls MR_DecimateSettings_Set_decimateBetweenParts().

◆ set_edges_to_collapse()

void meshlib::DecimateSettings::set_edges_to_collapse ( value:Option<&mut meshlib::UndirectedEdgeBitSet > )

If pointer is not null, then only edges from here can be collapsed (and some nearby edges can disappear); the algorithm updates this map during collapses, removing or replacing elements Modifies a member variable of class MR::DecimateSettings named edgesToCollapse.

Calls MR_DecimateSettings_Set_edgesToCollapse(). The reference to the parameter value might be preserved in this object in element edgesToCollapse.

◆ set_max_angle_change()

void meshlib::DecimateSettings::set_max_angle_change ( value:f32 )

Permit edge flips (in addition to collapsing) to improve Delone quality of the mesh if it does not change dihedral angle more than on this value (negative value prohibits any edge flips) Modifies a member variable of class MR::DecimateSettings named maxAngleChange.

Calls MR_DecimateSettings_Set_maxAngleChange().

◆ set_max_bd_shift()

void meshlib::DecimateSettings::set_max_bd_shift ( value:f32 )

Maximal shift of a boundary during one edge collapse Modifies a member variable of class MR::DecimateSettings named maxBdShift.

Calls MR_DecimateSettings_Set_maxBdShift().

◆ set_max_deleted_faces()

void meshlib::DecimateSettings::set_max_deleted_faces ( value:core::ffi::c_int )

Limit on the number of deleted faces Modifies a member variable of class MR::DecimateSettings named maxDeletedFaces.

Calls MR_DecimateSettings_Set_maxDeletedFaces().

◆ set_max_deleted_vertices()

void meshlib::DecimateSettings::set_max_deleted_vertices ( value:core::ffi::c_int )

Limit on the number of deleted vertices Modifies a member variable of class MR::DecimateSettings named maxDeletedVertices.

Calls MR_DecimateSettings_Set_maxDeletedVertices().

◆ set_max_edge_len()

void meshlib::DecimateSettings::set_max_edge_len ( value:f32 )

Maximal possible edge length created during decimation Modifies a member variable of class MR::DecimateSettings named maxEdgeLen.

Calls MR_DecimateSettings_Set_maxEdgeLen().

◆ set_max_error()

void meshlib::DecimateSettings::set_max_error ( value:f32 )

for DecimateStrategy::MinimizeError: stop the decimation as soon as the estimated distance deviation from the original mesh is more than this value for DecimateStrategy::ShortestEdgeFirst only: stop the decimation as soon as the shortest edge in the mesh is greater than this value Modifies a member variable of class MR::DecimateSettings named maxError.

Calls MR_DecimateSettings_Set_maxError().

◆ set_max_triangle_aspect_ratio()

void meshlib::DecimateSettings::set_max_triangle_aspect_ratio ( value:f32 )

Maximal possible aspect ratio of a triangle introduced during decimation Modifies a member variable of class MR::DecimateSettings named maxTriangleAspectRatio.

Calls MR_DecimateSettings_Set_maxTriangleAspectRatio().

◆ set_min_faces_in_part()

void meshlib::DecimateSettings::set_min_faces_in_part ( value:core::ffi::c_int )

minimum number of faces in one subdivision part for ( subdivideParts > 1 ) mode Modifies a member variable of class MR::DecimateSettings named minFacesInPart.

Calls MR_DecimateSettings_Set_minFacesInPart().

◆ set_not_flippable()

void meshlib::DecimateSettings::set_not_flippable ( value:Option<&mut meshlib::UndirectedEdgeBitSet > )

Edges specified by this bit-set will never be flipped, but they can be collapsed or replaced during collapse of nearby edges so it is updated during the operation Modifies a member variable of class MR::DecimateSettings named notFlippable.

Calls MR_DecimateSettings_Set_notFlippable(). The reference to the parameter value might be preserved in this object in element notFlippable.

◆ set_on_edge_del()

void meshlib::DecimateSettings::set_on_edge_del ( value:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId )

this function is called each time edge (del) is deleted; if valid (rem) is given then dest(del) = dest(rem) and their origins are in different ends of collapsing edge, (rem) shall take the place of (del) Modifies a member variable of class MR::DecimateSettings named onEdgeDel.

Calls MR_DecimateSettings_Set_onEdgeDel(). The reference to the parameter value might be preserved in this object in element onEdgeDel.

◆ set_optimize_vertex_pos()

void meshlib::DecimateSettings::set_optimize_vertex_pos ( value:bool )

if true then after each edge collapse the position of remaining vertex is optimized to minimize local shape change, if false then the edge is collapsed in one of its vertices, which keeps its position Modifies a member variable of class MR::DecimateSettings named optimizeVertexPos.

Calls MR_DecimateSettings_Set_optimizeVertexPos().

◆ set_pack_mesh()

void meshlib::DecimateSettings::set_pack_mesh ( value:bool )

whether to pack mesh at the end Modifies a member variable of class MR::DecimateSettings named packMesh.

Calls MR_DecimateSettings_Set_packMesh().

◆ set_part_faces()

void meshlib::DecimateSettings::set_part_faces ( value:Option<&mut meshlib::std_vector_MR_FaceBitSet > )

if not null, then it contains the faces of each subdivision part on input, which must not overlap, and after decimation of all parts, the region inside each part is put here; decimateBetweenParts=true or packMesh=true are not compatible with this option Modifies a member variable of class MR::DecimateSettings named partFaces.

Calls MR_DecimateSettings_Set_partFaces(). The reference to the parameter value might be preserved in this object in element partFaces.

◆ set_parts_mode()

void meshlib::DecimateSettings::set_parts_mode ( value:meshlib::DecimatePartsMode )

how the parts are found for subdivideParts > 1; ignored if partFaces is given Modifies a member variable of class MR::DecimateSettings named partsMode.

Calls MR_DecimateSettings_Set_partsMode(). The reference to the parameter value might be preserved in this object in element partsMode.

◆ set_pre_collapse()

void meshlib::DecimateSettings::set_pre_collapse ( value:&meshlib::std_function_bool_from_MR_EdgeId_const_MR_Vector3f_ref )

The user can provide this optional callback that is invoked immediately before edge collapse;.

It receives the edge being collapsed: its destination vertex will disappear, and its origin vertex will get new position (provided as the second argument) after collapse; If the callback returns false, then the collapse is prohibited

Modifies a member variable of class MR::DecimateSettings named preCollapse.

Calls MR_DecimateSettings_Set_preCollapse(). The reference to the parameter value might be preserved in this object in element preCollapse.

◆ set_prevent_normal_flips()

void meshlib::DecimateSettings::set_prevent_normal_flips ( value:bool )

whether to prohibit a collapse if it inverts the normal of a remaining triangle, or folds two triangles onto each other; turning it off (together with maxTriangleAspectRatio = FLT_MAX) makes decimation faster, but some triangles may appear inverted Modifies a member variable of class MR::DecimateSettings named preventNormalFlips.

Calls MR_DecimateSettings_Set_preventNormalFlips().

◆ set_progress_callback()

void meshlib::DecimateSettings::set_progress_callback ( value:&meshlib::std_function_bool_from_float )

callback to report algorithm progress and cancel it by user request Modifies a member variable of class MR::DecimateSettings named progressCallback.

Calls MR_DecimateSettings_Set_progressCallback(). The reference to the parameter value might be preserved in this object in element progressCallback.

◆ set_region()

void meshlib::DecimateSettings::set_region ( value:Option<&mut meshlib::FaceBitSet > )

Region on mesh to be decimated, it is updated during the operation Modifies a member variable of class MR::DecimateSettings named region.

Calls MR_DecimateSettings_Set_region(). The reference to the parameter value might be preserved in this object in element region.

◆ set_region_edges()

void meshlib::DecimateSettings::set_region_edges ( value:Option<&meshlib::UndirectedEdgeBitSet > )

if region is not null and this pointer is not null, then it shall contain all edges incident to region faces (as returned by getIncidentEdges( topology, *region )), and the algorithm does not compute them itself Modifies a member variable of class MR::DecimateSettings named regionEdges.

Calls MR_DecimateSettings_Set_regionEdges(). The reference to the parameter value might be preserved in this object in element regionEdges.

◆ set_stabilizer()

void meshlib::DecimateSettings::set_stabilizer ( value:f32 )

Small stabilizer is important to achieve good results on completely planar mesh parts, if your mesh is not-planer everywhere, then you can set it to zero Modifies a member variable of class MR::DecimateSettings named stabilizer.

Calls MR_DecimateSettings_Set_stabilizer().

◆ set_strategy()

void meshlib::DecimateSettings::set_strategy ( value:meshlib::DecimateStrategy )

Modifies a member variable of class MR::DecimateSettings named strategy.

Calls MR_DecimateSettings_Set_strategy(). The reference to the parameter value might be preserved in this object in element strategy.

◆ set_subdivide_parts()

void meshlib::DecimateSettings::set_subdivide_parts ( value:core::ffi::c_int )

If this value is more than 1, then virtually subdivides the mesh on given number of parts to process them in parallel (using many threads); IMPORTANT: with default partsMode, please call mesh.packOptimally() before calling decimating with subdivideParts > 1, otherwise performance will be bad Modifies a member variable of class MR::DecimateSettings named subdivideParts.

Calls MR_DecimateSettings_Set_subdivideParts().

◆ set_tiny_edge_length()

void meshlib::DecimateSettings::set_tiny_edge_length ( value:f32 )

edges not longer than this value will be collapsed even if it results in appearance of a triangle with high aspect ratio Modifies a member variable of class MR::DecimateSettings named tinyEdgeLength.

Calls MR_DecimateSettings_Set_tinyEdgeLength().

◆ set_touch_bd_verts()

void meshlib::DecimateSettings::set_touch_bd_verts ( value:bool )

touchBdVerts=true: allow moving and eliminating boundary vertices during edge collapses; touchBdVerts=false: allow only collapsing an edge having only one boundary vertex in that vertex, so position and count of boundary vertices do not change; this setting is ignored if touchNearBdEdges=false Modifies a member variable of class MR::DecimateSettings named touchBdVerts.

Calls MR_DecimateSettings_Set_touchBdVerts().

◆ set_touch_near_bd_edges()

void meshlib::DecimateSettings::set_touch_near_bd_edges ( value:bool )

Whether to allow collapsing or flipping edges having at least one vertex on (region) boundary Modifies a member variable of class MR::DecimateSettings named touchNearBdEdges.

Calls MR_DecimateSettings_Set_touchNearBdEdges().

◆ set_twin_map()

if an edge present as a key in this map is flipped or collapsed, then same happens to the value-edge (with same collapse position); the algorithm updates this map during collapses, removing or replacing elements Modifies a member variable of class MR::DecimateSettings named twinMap.

Calls MR_DecimateSettings_Set_twinMap(). The reference to the parameter value might be preserved in this object in element twinMap.

◆ set_vert_forms()

void meshlib::DecimateSettings::set_vert_forms ( value:Option<&mut meshlib::Vector_MR_QuadraticForm3f_MR_VertId > )

If not null, then vertex quadratic forms are stored there; if on input the vector is not empty then initialization is skipped in favor of values from there; on output: quadratic form for each remaining vertex is returned there.

Modifies a member variable of class MR::DecimateSettings named vertForms.

Calls MR_DecimateSettings_Set_vertForms(). The reference to the parameter value might be preserved in this object in element vertForms.

◆ stabilizer()

auto meshlib::DecimateSettings::stabilizer ( ) const -> &f32

Small stabilizer is important to achieve good results on completely planar mesh parts, if your mesh is not-planer everywhere, then you can set it to zero Returns a pointer to a member variable of class MR::DecimateSettings named stabilizer.

Calls MR_DecimateSettings_Get_stabilizer(). The reference to this object might be preserved as the return value.

◆ stabilizer_mut()

auto meshlib::DecimateSettings::stabilizer_mut ( ) -> &mut f32

Small stabilizer is important to achieve good results on completely planar mesh parts, if your mesh is not-planer everywhere, then you can set it to zero Returns a mutable pointer to a member variable of class MR::DecimateSettings named stabilizer.

Calls MR_DecimateSettings_GetMutable_stabilizer(). The reference to this object might be preserved as the return value.

◆ strategy()

auto meshlib::DecimateSettings::strategy ( ) const -> &meshlib::DecimateStrategy

Returns a pointer to a member variable of class MR::DecimateSettings named strategy.

Calls MR_DecimateSettings_Get_strategy(). The reference to this object might be preserved as the return value.

◆ strategy_mut()

auto meshlib::DecimateSettings::strategy_mut ( ) -> &mut meshlib::DecimateStrategy

Returns a mutable pointer to a member variable of class MR::DecimateSettings named strategy.

Calls MR_DecimateSettings_GetMutable_strategy(). The reference to this object might be preserved as the return value.

◆ subdivide_parts()

auto meshlib::DecimateSettings::subdivide_parts ( ) const -> &core::ffi::c_int

If this value is more than 1, then virtually subdivides the mesh on given number of parts to process them in parallel (using many threads); IMPORTANT: with default partsMode, please call mesh.packOptimally() before calling decimating with subdivideParts > 1, otherwise performance will be bad Returns a pointer to a member variable of class MR::DecimateSettings named subdivideParts.

Calls MR_DecimateSettings_Get_subdivideParts(). The reference to this object might be preserved as the return value.

◆ subdivide_parts_mut()

auto meshlib::DecimateSettings::subdivide_parts_mut ( ) -> &mut core::ffi::c_int

If this value is more than 1, then virtually subdivides the mesh on given number of parts to process them in parallel (using many threads); IMPORTANT: with default partsMode, please call mesh.packOptimally() before calling decimating with subdivideParts > 1, otherwise performance will be bad Returns a mutable pointer to a member variable of class MR::DecimateSettings named subdivideParts.

Calls MR_DecimateSettings_GetMutable_subdivideParts(). The reference to this object might be preserved as the return value.

◆ tiny_edge_length()

auto meshlib::DecimateSettings::tiny_edge_length ( ) const -> &f32

edges not longer than this value will be collapsed even if it results in appearance of a triangle with high aspect ratio Returns a pointer to a member variable of class MR::DecimateSettings named tinyEdgeLength.

Calls MR_DecimateSettings_Get_tinyEdgeLength(). The reference to this object might be preserved as the return value.

◆ tiny_edge_length_mut()

auto meshlib::DecimateSettings::tiny_edge_length_mut ( ) -> &mut f32

edges not longer than this value will be collapsed even if it results in appearance of a triangle with high aspect ratio Returns a mutable pointer to a member variable of class MR::DecimateSettings named tinyEdgeLength.

Calls MR_DecimateSettings_GetMutable_tinyEdgeLength(). The reference to this object might be preserved as the return value.

◆ touch_bd_verts()

auto meshlib::DecimateSettings::touch_bd_verts ( ) const -> &bool

touchBdVerts=true: allow moving and eliminating boundary vertices during edge collapses; touchBdVerts=false: allow only collapsing an edge having only one boundary vertex in that vertex, so position and count of boundary vertices do not change; this setting is ignored if touchNearBdEdges=false Returns a pointer to a member variable of class MR::DecimateSettings named touchBdVerts.

Calls MR_DecimateSettings_Get_touchBdVerts(). The reference to this object might be preserved as the return value.

◆ touch_bd_verts_mut()

auto meshlib::DecimateSettings::touch_bd_verts_mut ( ) -> &mut bool

touchBdVerts=true: allow moving and eliminating boundary vertices during edge collapses; touchBdVerts=false: allow only collapsing an edge having only one boundary vertex in that vertex, so position and count of boundary vertices do not change; this setting is ignored if touchNearBdEdges=false Returns a mutable pointer to a member variable of class MR::DecimateSettings named touchBdVerts.

Calls MR_DecimateSettings_GetMutable_touchBdVerts(). The reference to this object might be preserved as the return value.

◆ touch_near_bd_edges()

auto meshlib::DecimateSettings::touch_near_bd_edges ( ) const -> &bool

Whether to allow collapsing or flipping edges having at least one vertex on (region) boundary Returns a pointer to a member variable of class MR::DecimateSettings named touchNearBdEdges.

Calls MR_DecimateSettings_Get_touchNearBdEdges(). The reference to this object might be preserved as the return value.

◆ touch_near_bd_edges_mut()

auto meshlib::DecimateSettings::touch_near_bd_edges_mut ( ) -> &mut bool

Whether to allow collapsing or flipping edges having at least one vertex on (region) boundary Returns a mutable pointer to a member variable of class MR::DecimateSettings named touchNearBdEdges.

Calls MR_DecimateSettings_GetMutable_touchNearBdEdges(). The reference to this object might be preserved as the return value.

◆ twin_map()

auto meshlib::DecimateSettings::twin_map ( ) const -> *const *mut meshlib::ffi::MR_phmap_flat_hash_map_MR_UndirectedEdgeId_MR_UndirectedEdgeId_phmap_Hash_MR_UndirectedEdgeId_phmap_EqualTo_MR_UndirectedEdgeId_MR_Allocator_std_pair_const_MR_UndirectedEdgeId_MR_UndirectedEdgeId

if an edge present as a key in this map is flipped or collapsed, then same happens to the value-edge (with same collapse position); the algorithm updates this map during collapses, removing or replacing elements Returns a pointer to a member variable of class MR::DecimateSettings named twinMap.

Calls MR_DecimateSettings_Get_twinMap(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ twin_map_mut()

auto meshlib::DecimateSettings::twin_map_mut ( ) -> *mut *mut meshlib::ffi::MR_phmap_flat_hash_map_MR_UndirectedEdgeId_MR_UndirectedEdgeId_phmap_Hash_MR_UndirectedEdgeId_phmap_EqualTo_MR_UndirectedEdgeId_MR_Allocator_std_pair_const_MR_UndirectedEdgeId_MR_UndirectedEdgeId

if an edge present as a key in this map is flipped or collapsed, then same happens to the value-edge (with same collapse position); the algorithm updates this map during collapses, removing or replacing elements Returns a mutable pointer to a member variable of class MR::DecimateSettings named twinMap.

Calls MR_DecimateSettings_GetMutable_twinMap(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ vert_forms()

auto meshlib::DecimateSettings::vert_forms ( ) const -> *const *mut meshlib::ffi::MR_Vector_MR_QuadraticForm3f_MR_VertId

If not null, then vertex quadratic forms are stored there; if on input the vector is not empty then initialization is skipped in favor of values from there; on output: quadratic form for each remaining vertex is returned there.

Returns a pointer to a member variable of class MR::DecimateSettings named vertForms.

Calls MR_DecimateSettings_Get_vertForms(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.

◆ vert_forms_mut()

auto meshlib::DecimateSettings::vert_forms_mut ( ) -> *mut *mut meshlib::ffi::MR_Vector_MR_QuadraticForm3f_MR_VertId

If not null, then vertex quadratic forms are stored there; if on input the vector is not empty then initialization is skipped in favor of values from there; on output: quadratic form for each remaining vertex is returned there.

Returns a mutable pointer to a member variable of class MR::DecimateSettings named vertForms.

Calls MR_DecimateSettings_GetMutable_vertForms(). Some types are raw C types, see the C bindings for the details. The reference to this object might be preserved as the return value.


The documentation for this struct was generated from the following file: