MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::mesh_components Namespace Reference

Classes

struct  ComponentsFaces
struct  ExpandToComponentsParams
struct  FaceIncidence
struct  LargeByAreaComponentsSettings
struct  VolumeSelection

Functions

auto get_component (meshPart:&meshlib::MeshPart, id:meshlib::FaceId, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::FaceBitSet >
auto get_component_verts (mesh:&meshlib::Mesh, id:meshlib::VertId, region:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::VertBitSet >
auto get_largest_component_verts (mesh:&meshlib::Mesh, region:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::VertBitSet >
auto get_large_component_verts (mesh:&meshlib::Mesh, minVerts:core::ffi::c_int, region:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::VertBitSet >
auto get_largest_component_area (meshPart:&meshlib::MeshPart, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >, largestComponent:Option<&mut meshlib::FaceBitSet >, numSmallerComponents:Option<&mut core::ffi::c_int >) -> f64
auto get_largest_component (meshPart:&meshlib::MeshPart, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >, minArea:Option< f32 >, numSmallerComponents:Option<&mut core::ffi::c_int >) -> meshlib::Owned< meshlib::FaceBitSet >
auto get_largest_component_volume (meshPart:&meshlib::MeshPart, selection:Option< meshlib::mesh_components::VolumeSelection >, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >, largestComponent:Option<&mut meshlib::FaceBitSet >, numSmallerComponents:Option<&mut core::ffi::c_int >) -> f64
auto get_components_4 (meshPart:&meshlib::MeshPart, seeds:&meshlib::FaceBitSet, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::FaceBitSet >
auto get_components_5 (topology:&meshlib::MeshTopology, seeds:&meshlib::FaceBitSet, region:Option<&meshlib::FaceBitSet >, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::FaceBitSet >
auto get_large_by_area_components (meshPart:&meshlib::MeshPart, minArea:f32, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::FaceBitSet >
auto get_large_by_volume_components (meshPart:&meshlib::MeshPart, minVolume:f32) -> meshlib::Owned< meshlib::FaceBitSet >
auto get_large_by_area_components_union_find (meshPart:&meshlib::MeshPart, unionFind:&mut meshlib::BaseUnionFind_MR_FaceId, minArea:f32, outBdEdgesBetweenLargeComps:Option<&mut meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::FaceBitSet >
auto expand_to_components (mp:&meshlib::MeshPart, seeds:&meshlib::FaceBitSet, params:Option<&meshlib::mesh_components::ExpandToComponentsParams >) -> meshlib::Owned< meshlib::expected_MR_FaceBitSet_std_string >
auto get_n_large_by_area_components (meshPart:&meshlib::MeshPart, settings:&meshlib::mesh_components::LargeByAreaComponentsSettings) -> meshlib::Owned< meshlib::std_vector_MR_FaceBitSet >
auto get_large_by_area_smooth_components (meshPart:&meshlib::MeshPart, minArea:f32, angleFromPlanar:f32, outBdEdgesBetweenLargeComps:Option<&mut meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::FaceBitSet >
auto get_components_verts (mesh:&meshlib::Mesh, seeds:&meshlib::VertBitSet, region:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::VertBitSet >
auto get_num_components (meshPart:&meshlib::MeshPart, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> usize
auto get_all_components_3 (meshPart:&meshlib::MeshPart, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::std_vector_MR_FaceBitSet >
auto get_all_components_4_mr_mesh_part (meshPart:&meshlib::MeshPart, maxComponentCount:core::ffi::c_int, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::std_pair_std_vector_MR_FaceBitSet_int >
auto get_all_components_4_mr_face2_region_map (componentsMap:&mut meshlib::Face2RegionMap, componentsCount:core::ffi::c_int, region:&meshlib::FaceBitSet, maxComponentCount:core::ffi::c_int) -> meshlib::Owned< meshlib::std_vector_MR_FaceBitSet >
auto get_all_components_map (meshPart:&meshlib::MeshPart, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::std_pair_MR_Face2RegionMap_int >
auto get_all_components_map_by_sharp_edges (meshPart:&meshlib::MeshPart, angleThreshold:Option< f32 >) -> meshlib::Owned< meshlib::std_pair_MR_Face2RegionMap_int >
auto get_all_components_faces_mr_mesh_part (meshPart:&meshlib::MeshPart, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::mesh_components::ComponentsFaces >
auto get_all_components_faces_mr_face2_region_map (componentsMap:&meshlib::Face2RegionMap, componentsCount:core::ffi::c_int, region:&meshlib::FaceBitSet) -> meshlib::Owned< meshlib::mesh_components::ComponentsFaces >
auto get_face_pair_region_map (mesh:&meshlib::Mesh, facePairs:&meshlib::std_vector_MR_FaceFace, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::std_pair_MR_Face2RegionMap_int >
auto get_region_areas (meshPart:&meshlib::MeshPart, regionMap:&meshlib::Face2RegionMap, numRegions:core::ffi::c_int) -> meshlib::Owned< meshlib::Vector_double_MR_RegionId >
auto get_large_by_area_regions (meshPart:&meshlib::MeshPart, regionMap:&meshlib::Face2RegionMap, numRegions:core::ffi::c_int, minArea:f32) -> meshlib::Owned< meshlib::std_pair_MR_FaceBitSet_int >
auto get_all_components_verts (mesh:&meshlib::Mesh, region:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::std_vector_MR_VertBitSet >
auto get_all_components_verts_separated_by_path (mesh:&meshlib::Mesh, path:&meshlib::std_vector_MR_EdgePoint) -> meshlib::Owned< meshlib::std_vector_MR_VertBitSet >
auto get_all_components_verts_separated_by_paths (mesh:&meshlib::Mesh, paths:&meshlib::std_vector_std_vector_MR_EdgePoint) -> meshlib::Owned< meshlib::std_vector_MR_VertBitSet >
auto get_all_components_edges (mesh:&meshlib::Mesh, edges:&meshlib::EdgeBitSet) -> meshlib::Owned< meshlib::std_vector_MR_EdgeBitSet >
auto get_all_components_undirected_edges (mesh:&meshlib::Mesh, edges:&meshlib::UndirectedEdgeBitSet) -> meshlib::Owned< meshlib::std_vector_MR_UndirectedEdgeBitSet >
auto has_fully_selected_component_mr_mesh (mesh:&meshlib::Mesh, selection:&meshlib::VertBitSet) -> bool
auto has_fully_selected_component_mr_mesh_topology (topology:&meshlib::MeshTopology, selection:&meshlib::VertBitSet) -> bool
void exclude_fully_selected_components (mesh:&meshlib::Mesh, selection:&mut meshlib::VertBitSet)
auto get_union_find_structure_faces_3 (meshPart:&meshlib::MeshPart, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >
auto get_union_find_structure_faces_4 (topology:&meshlib::MeshTopology, region:Option<&meshlib::FaceBitSet >, incidence:Option< meshlib::mesh_components::FaceIncidence >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >
auto get_union_find_structure_faces_per_edge_2 (meshPart:&meshlib::MeshPart, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >
auto get_union_find_structure_faces_per_edge_3 (topology:&meshlib::MeshTopology, region:Option<&meshlib::FaceBitSet >, isCompBd:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >
auto get_union_find_structure_verts_const_mr_mesh_ref_const_mr_vert_bit_set_ptr (mesh:&meshlib::Mesh, region:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >
auto get_union_find_structure_verts_const_mr_mesh_topology_ref (topology:&meshlib::MeshTopology, region:Option<&meshlib::VertBitSet >) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >
auto get_union_find_structure_verts_const_mr_mesh_ref_mr_edge_bit_set (mesh:&meshlib::Mesh, edges:&meshlib::EdgeBitSet) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >
auto get_union_find_structure_verts_const_mr_mesh_ref_mr_undirected_edge_bit_set (mesh:&meshlib::Mesh, edges:&meshlib::UndirectedEdgeBitSet) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >
auto get_union_find_structure_verts_ex (mesh:&meshlib::Mesh, ignoreEdges:&meshlib::UndirectedEdgeBitSet) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >
auto get_union_find_structure_verts_separated_by_path (mesh:&meshlib::Mesh, path:&meshlib::std_vector_MR_EdgePoint, outPathVerts:Option<&mut meshlib::VertBitSet >) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >
 gets union-find structure for vertices, separating vertices by given path (either closed or from boundary to boundary)
auto get_union_find_structure_verts_separated_by_paths (mesh:&meshlib::Mesh, paths:&meshlib::std_vector_std_vector_MR_EdgePoint, outPathVerts:Option<&mut meshlib::VertBitSet >) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >
auto get_union_find_structure_undirected_edges (mesh:&meshlib::Mesh, allPointToRoots:Option< bool >) -> meshlib::Owned< meshlib::UnionFind_MR_UndirectedEdgeId >
auto get_components_undirected_edges (mesh:&meshlib::Mesh, seeds:&meshlib::UndirectedEdgeBitSet) -> meshlib::Owned< meshlib::UndirectedEdgeBitSet >

Function Documentation

◆ exclude_fully_selected_components()

void meshlib::mesh_components::exclude_fully_selected_components ( mesh:&meshlib::Mesh ,
selection:&mut meshlib::VertBitSet  )

if all vertices of a mesh connected component are present in selection, excludes these vertices Generated from function MR::MeshComponents::excludeFullySelectedComponents.

Calls MR_MeshComponents_excludeFullySelectedComponents().

◆ expand_to_components()

auto meshlib::mesh_components::expand_to_components ( mp:&meshlib::MeshPart ,
seeds:&meshlib::FaceBitSet ,
params:Option<&meshlib::mesh_components::ExpandToComponentsParams >  ) -> meshlib::Owned< meshlib::expected_MR_FaceBitSet_std_string >

expands given seeds to whole components Generated from function MR::MeshComponents::expandToComponents.

Calls MR_MeshComponents_expandToComponents().

◆ get_all_components_3()

auto meshlib::mesh_components::get_all_components_3 ( meshPart:&meshlib::MeshPart ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::std_vector_MR_FaceBitSet >

gets all connected components of mesh part

Note
be careful, if mesh is large enough and has many components, the memory overflow will occur Generated from function MR::MeshComponents::getAllComponents.

Calls MR_MeshComponents_getAllComponents_3().

◆ get_all_components_4_mr_face2_region_map()

auto meshlib::mesh_components::get_all_components_4_mr_face2_region_map ( componentsMap:&mut meshlib::Face2RegionMap ,
componentsCount:core::ffi::c_int ,
region:&meshlib::FaceBitSet ,
maxComponentCount:core::ffi::c_int  ) -> meshlib::Owned< meshlib::std_vector_MR_FaceBitSet >

gets all connected components from components map ( FaceId => RegionId )

if components number more than the maxComponentCount, they will be combined into groups of the same size (this similarly changes componentsMap)

Parameters
maxComponentCountshould be more than 1
Returns
components bitsets vector Generated from function MR::MeshComponents::getAllComponents.

Calls MR_MeshComponents_getAllComponents_4_MR_Face2RegionMap().

◆ get_all_components_4_mr_mesh_part()

auto meshlib::mesh_components::get_all_components_4_mr_mesh_part ( meshPart:&meshlib::MeshPart ,
maxComponentCount:core::ffi::c_int ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::std_pair_std_vector_MR_FaceBitSet_int >

gets all connected components of mesh part

if components number more than the maxComponentCount, they will be combined into groups of the same size

Parameters
maxComponentCountshould be more than 1
Returns
pair components bitsets vector and number components in one group if components number more than maxComponentCount Generated from function MR::MeshComponents::getAllComponents.

Calls MR_MeshComponents_getAllComponents_4_MR_MeshPart().

◆ get_all_components_edges()

auto meshlib::mesh_components::get_all_components_edges ( mesh:&meshlib::Mesh ,
edges:&meshlib::EdgeBitSet  ) -> meshlib::Owned< meshlib::std_vector_MR_EdgeBitSet >

subdivides given edges on connected components Generated from function MR::MeshComponents::getAllComponentsEdges.

Calls MR_MeshComponents_getAllComponentsEdges().

◆ get_all_components_faces_mr_face2_region_map()

auto meshlib::mesh_components::get_all_components_faces_mr_face2_region_map ( componentsMap:&meshlib::Face2RegionMap ,
componentsCount:core::ffi::c_int ,
region:&meshlib::FaceBitSet  ) -> meshlib::Owned< meshlib::mesh_components::ComponentsFaces >

gets all connected components from components map ( FaceId => RegionId in [0, componentsCount) ) for the faces of given region Generated from function MR::MeshComponents::getAllComponentsFaces.

Calls MR_MeshComponents_getAllComponentsFaces_MR_Face2RegionMap().

◆ get_all_components_faces_mr_mesh_part()

auto meshlib::mesh_components::get_all_components_faces_mr_mesh_part ( meshPart:&meshlib::MeshPart ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::mesh_components::ComponentsFaces >

gets all connected components of mesh part as a list of faces per component; unlike getAllComponents, the memory is proportional to the number of faces in the part and not to the number of components Generated from function MR::MeshComponents::getAllComponentsFaces.

Calls MR_MeshComponents_getAllComponentsFaces_MR_MeshPart().

◆ get_all_components_map()

auto meshlib::mesh_components::get_all_components_map ( meshPart:&meshlib::MeshPart ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::std_pair_MR_Face2RegionMap_int >

gets all connected components of mesh part as

  1. the mapping: FaceId -> Component ID in [0, 1, 2, ...)
  2. the total number of components Generated from function MR::MeshComponents::getAllComponentsMap.

Calls MR_MeshComponents_getAllComponentsMap().

◆ get_all_components_map_by_sharp_edges()

auto meshlib::mesh_components::get_all_components_map_by_sharp_edges ( meshPart:&meshlib::MeshPart ,
angleThreshold:Option< f32 >  ) -> meshlib::Owned< meshlib::std_pair_MR_Face2RegionMap_int >

gets all components of mesh part separated by sharp edges with dihedral angle in [angleThreshold, PI-angleThreshold] (see findSharpEdges); nearly planar and nearly folded edges do not separate components, so overlapping coplanar triangles stay together

Parameters
angleThresholdin (0, PI/2)
Returns
the mapping FaceId -> component id (meaningful only for the faces of mesh part) and the number of components Generated from function MR::MeshComponents::getAllComponentsMapBySharpEdges.

Calls MR_MeshComponents_getAllComponentsMapBySharpEdges().

◆ get_all_components_undirected_edges()

auto meshlib::mesh_components::get_all_components_undirected_edges ( mesh:&meshlib::Mesh ,
edges:&meshlib::UndirectedEdgeBitSet  ) -> meshlib::Owned< meshlib::std_vector_MR_UndirectedEdgeBitSet >

subdivides given edges on connected components Generated from function MR::MeshComponents::getAllComponentsUndirectedEdges.

Calls MR_MeshComponents_getAllComponentsUndirectedEdges().

◆ get_all_components_verts()

auto meshlib::mesh_components::get_all_components_verts ( mesh:&meshlib::Mesh ,
region:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::std_vector_MR_VertBitSet >

gets all connected components of mesh part Generated from function MR::MeshComponents::getAllComponentsVerts.

Calls MR_MeshComponents_getAllComponentsVerts().

◆ get_all_components_verts_separated_by_path()

auto meshlib::mesh_components::get_all_components_verts_separated_by_path ( mesh:&meshlib::Mesh ,
path:&meshlib::std_vector_MR_EdgePoint  ) -> meshlib::Owned< meshlib::std_vector_MR_VertBitSet >

gets all connected components, separating vertices by given path (either closed or from boundary to boundary) Generated from function MR::MeshComponents::getAllComponentsVertsSeparatedByPath.

Calls MR_MeshComponents_getAllComponentsVertsSeparatedByPath().

◆ get_all_components_verts_separated_by_paths()

auto meshlib::mesh_components::get_all_components_verts_separated_by_paths ( mesh:&meshlib::Mesh ,
paths:&meshlib::std_vector_std_vector_MR_EdgePoint  ) -> meshlib::Owned< meshlib::std_vector_MR_VertBitSet >

gets all connected components, separating vertices by given paths (either closed or from boundary to boundary) Generated from function MR::MeshComponents::getAllComponentsVertsSeparatedByPaths.

Calls MR_MeshComponents_getAllComponentsVertsSeparatedByPaths().

◆ get_component()

auto meshlib::mesh_components::get_component ( meshPart:&meshlib::MeshPart ,
id:meshlib::FaceId ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::FaceBitSet >

returns one connected component containing given face, not effective to call more than once, if several components are needed use getAllComponents Generated from function MR::MeshComponents::getComponent.

Calls MR_MeshComponents_getComponent().

◆ get_component_verts()

auto meshlib::mesh_components::get_component_verts ( mesh:&meshlib::Mesh ,
id:meshlib::VertId ,
region:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::VertBitSet >

returns one connected component containing given vertex, not effective to call more than once, if several components are needed use getAllComponentsVerts Generated from function MR::MeshComponents::getComponentVerts.

Calls MR_MeshComponents_getComponentVerts().

◆ get_components_4()

auto meshlib::mesh_components::get_components_4 ( meshPart:&meshlib::MeshPart ,
seeds:&meshlib::FaceBitSet ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::FaceBitSet >

returns union of connected components, each of which contains at least one seed face Generated from function MR::MeshComponents::getComponents.

Calls MR_MeshComponents_getComponents_4().

◆ get_components_5()

auto meshlib::mesh_components::get_components_5 ( topology:&meshlib::MeshTopology ,
seeds:&meshlib::FaceBitSet ,
region:Option<&meshlib::FaceBitSet > ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::FaceBitSet >

Generated from function MR::MeshComponents::getComponents.

Calls MR_MeshComponents_getComponents_5().

◆ get_components_undirected_edges()

auto meshlib::mesh_components::get_components_undirected_edges ( mesh:&meshlib::Mesh ,
seeds:&meshlib::UndirectedEdgeBitSet  ) -> meshlib::Owned< meshlib::UndirectedEdgeBitSet >

returns union of connected components, each of which contains at least one seed edge Generated from function MR::MeshComponents::getComponentsUndirectedEdges.

Calls MR_MeshComponents_getComponentsUndirectedEdges().

◆ get_components_verts()

auto meshlib::mesh_components::get_components_verts ( mesh:&meshlib::Mesh ,
seeds:&meshlib::VertBitSet ,
region:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::VertBitSet >

returns union of connected components, each of which contains at least one seed vert Generated from function MR::MeshComponents::getComponentsVerts.

Calls MR_MeshComponents_getComponentsVerts().

◆ get_face_pair_region_map()

auto meshlib::mesh_components::get_face_pair_region_map ( mesh:&meshlib::Mesh ,
facePairs:&meshlib::std_vector_MR_FaceFace ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::std_pair_MR_Face2RegionMap_int >

given some face pairs, collects them in regions, where for each face in a region its pair face and its incident faces from other pairs are also attributed to that region; returns 1. the mapping: FaceId -> RegionId, 2. the total number of regions Generated from function MR::MeshComponents::getFacePairRegionMap.

Calls MR_MeshComponents_getFacePairRegionMap().

◆ get_large_by_area_components()

auto meshlib::mesh_components::get_large_by_area_components ( meshPart:&meshlib::MeshPart ,
minArea:f32 ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::FaceBitSet >

returns the union of connected components, each having at least given area Generated from function MR::MeshComponents::getLargeByAreaComponents.

Calls MR_MeshComponents_getLargeByAreaComponents().

◆ get_large_by_area_components_union_find()

auto meshlib::mesh_components::get_large_by_area_components_union_find ( meshPart:&meshlib::MeshPart ,
unionFind:&mut meshlib::BaseUnionFind_MR_FaceId ,
minArea:f32 ,
outBdEdgesBetweenLargeComps:Option<&mut meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::FaceBitSet >

given prepared union-find structure returns the union of connected components, each having at least given area Generated from function MR::MeshComponents::getLargeByAreaComponents.

Calls MR_MeshComponents_getLargeByAreaComponents_unionFind().

◆ get_large_by_area_regions()

auto meshlib::mesh_components::get_large_by_area_regions ( meshPart:&meshlib::MeshPart ,
regionMap:&meshlib::Face2RegionMap ,
numRegions:core::ffi::c_int ,
minArea:f32  ) -> meshlib::Owned< meshlib::std_pair_MR_FaceBitSet_int >

returns

  1. the union of all regions with area >= minArea
  2. the number of such regions Generated from function MR::MeshComponents::getLargeByAreaRegions.

Calls MR_MeshComponents_getLargeByAreaRegions().

◆ get_large_by_area_smooth_components()

auto meshlib::mesh_components::get_large_by_area_smooth_components ( meshPart:&meshlib::MeshPart ,
minArea:f32 ,
angleFromPlanar:f32 ,
outBdEdgesBetweenLargeComps:Option<&mut meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::FaceBitSet >

returns the union of connected components, each having at least given area, and any two faces in a connected component have a path along the surface across the edges, where surface does not deviate from plane more than on given angle Generated from function MR::MeshComponents::getLargeByAreaSmoothComponents.

Calls MR_MeshComponents_getLargeByAreaSmoothComponents().

◆ get_large_by_volume_components()

auto meshlib::mesh_components::get_large_by_volume_components ( meshPart:&meshlib::MeshPart ,
minVolume:f32  ) -> meshlib::Owned< meshlib::FaceBitSet >

returns the union of connected components, each having at least given volume note that function require closed mesh part Generated from function MR::MeshComponents::getLargeByVolumeComponents.

Calls MR_MeshComponents_getLargeByVolumeComponents().

◆ get_large_component_verts()

auto meshlib::mesh_components::get_large_component_verts ( mesh:&meshlib::Mesh ,
minVerts:core::ffi::c_int ,
region:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::VertBitSet >

returns the union of vertex connected components, each having at least

Parameters
minVertsvertices Generated from function MR::MeshComponents::getLargeComponentVerts.

Calls MR_MeshComponents_getLargeComponentVerts().

◆ get_largest_component()

auto meshlib::mesh_components::get_largest_component ( meshPart:&meshlib::MeshPart ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet > ,
minArea:Option< f32 > ,
numSmallerComponents:Option<&mut core::ffi::c_int >  ) -> meshlib::Owned< meshlib::FaceBitSet >

returns the largest by surface area component or empty set if its area is smaller than

Parameters
minAreaGenerated from function MR::MeshComponents::getLargestComponent.

Calls MR_MeshComponents_getLargestComponent().

◆ get_largest_component_area()

auto meshlib::mesh_components::get_largest_component_area ( meshPart:&meshlib::MeshPart ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet > ,
largestComponent:Option<&mut meshlib::FaceBitSet > ,
numSmallerComponents:Option<&mut core::ffi::c_int >  ) -> f64

returns the area of the largest by surface area component, and zero if there are no components at all Generated from function MR::MeshComponents::getLargestComponentArea.

Calls MR_MeshComponents_getLargestComponentArea().

◆ get_largest_component_verts()

auto meshlib::mesh_components::get_largest_component_verts ( mesh:&meshlib::Mesh ,
region:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::VertBitSet >

returns the largest by number of elements component Generated from function MR::MeshComponents::getLargestComponentVerts.

Calls MR_MeshComponents_getLargestComponentVerts().

◆ get_largest_component_volume()

auto meshlib::mesh_components::get_largest_component_volume ( meshPart:&meshlib::MeshPart ,
selection:Option< meshlib::mesh_components::VolumeSelection > ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet > ,
largestComponent:Option<&mut meshlib::FaceBitSet > ,
numSmallerComponents:Option<&mut core::ffi::c_int >  ) -> f64

returns the signed volume of the component selected by given rule, and zero if no component satisfies it, which is possible for Positive and Negative rules only, since they never select a component of zero volume; the volume of each component is computed as if it were closed, so the result is correct only for a closed mesh part (or if the area of holes in it is almost zero) Generated from function MR::MeshComponents::getLargestComponentVolume.

Calls MR_MeshComponents_getLargestComponentVolume().

◆ get_n_large_by_area_components()

auto meshlib::mesh_components::get_n_large_by_area_components ( meshPart:&meshlib::MeshPart ,
settings:&meshlib::mesh_components::LargeByAreaComponentsSettings  ) -> meshlib::Owned< meshlib::std_vector_MR_FaceBitSet >

returns requested number of largest by area connected components in descending by area order Generated from function MR::MeshComponents::getNLargeByAreaComponents.

Calls MR_MeshComponents_getNLargeByAreaComponents().

◆ get_num_components()

auto meshlib::mesh_components::get_num_components ( meshPart:&meshlib::MeshPart ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> usize

returns the number of connected components in mesh part Generated from function MR::MeshComponents::getNumComponents.

Calls MR_MeshComponents_getNumComponents().

◆ get_region_areas()

auto meshlib::mesh_components::get_region_areas ( meshPart:&meshlib::MeshPart ,
regionMap:&meshlib::Face2RegionMap ,
numRegions:core::ffi::c_int  ) -> meshlib::Owned< meshlib::Vector_double_MR_RegionId >

computes the area of each region given via the map Generated from function MR::MeshComponents::getRegionAreas.

Calls MR_MeshComponents_getRegionAreas().

◆ get_union_find_structure_faces_3()

auto meshlib::mesh_components::get_union_find_structure_faces_3 ( meshPart:&meshlib::MeshPart ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >

gets union-find structure for faces with different options of face-connectivity Generated from function MR::MeshComponents::getUnionFindStructureFaces.

Calls MR_MeshComponents_getUnionFindStructureFaces_3().

◆ get_union_find_structure_faces_4()

auto meshlib::mesh_components::get_union_find_structure_faces_4 ( topology:&meshlib::MeshTopology ,
region:Option<&meshlib::FaceBitSet > ,
incidence:Option< meshlib::mesh_components::FaceIncidence > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >

Generated from function MR::MeshComponents::getUnionFindStructureFaces.

Calls MR_MeshComponents_getUnionFindStructureFaces_4().

◆ get_union_find_structure_faces_per_edge_2()

auto meshlib::mesh_components::get_union_find_structure_faces_per_edge_2 ( meshPart:&meshlib::MeshPart ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >

gets union-find structure for faces with connectivity by shared edge, and optional edge predicate whether to skip uniting components over it it is guaranteed that isCompBd is invoked in a thread-safe manner (that left and right face are always processed by one thread) Generated from function MR::MeshComponents::getUnionFindStructureFacesPerEdge.

Calls MR_MeshComponents_getUnionFindStructureFacesPerEdge_2().

◆ get_union_find_structure_faces_per_edge_3()

auto meshlib::mesh_components::get_union_find_structure_faces_per_edge_3 ( topology:&meshlib::MeshTopology ,
region:Option<&meshlib::FaceBitSet > ,
isCompBd:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::BaseUnionFind_MR_FaceId >

Generated from function MR::MeshComponents::getUnionFindStructureFacesPerEdge.

Calls MR_MeshComponents_getUnionFindStructureFacesPerEdge_3().

◆ get_union_find_structure_undirected_edges()

auto meshlib::mesh_components::get_union_find_structure_undirected_edges ( mesh:&meshlib::Mesh ,
allPointToRoots:Option< bool >  ) -> meshlib::Owned< meshlib::UnionFind_MR_UndirectedEdgeId >

gets union-find structure for all undirected edges in

Parameters
mesh
allPointToRootsif true, then every element in the structure will point directly to the root of its respective component Generated from function MR::MeshComponents::getUnionFindStructureUndirectedEdges.

Calls MR_MeshComponents_getUnionFindStructureUndirectedEdges().

◆ get_union_find_structure_verts_const_mr_mesh_ref_const_mr_vert_bit_set_ptr()

auto meshlib::mesh_components::get_union_find_structure_verts_const_mr_mesh_ref_const_mr_vert_bit_set_ptr ( mesh:&meshlib::Mesh ,
region:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >

gets union-find structure for vertices Generated from function MR::MeshComponents::getUnionFindStructureVerts.

Calls MR_MeshComponents_getUnionFindStructureVerts_const_MR_Mesh_ref_const_MR_VertBitSet_ptr().

◆ get_union_find_structure_verts_const_mr_mesh_ref_mr_edge_bit_set()

auto meshlib::mesh_components::get_union_find_structure_verts_const_mr_mesh_ref_mr_edge_bit_set ( mesh:&meshlib::Mesh ,
edges:&meshlib::EdgeBitSet  ) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >

gets union-find structure for vertices, considering connections by given edges only Generated from function MR::MeshComponents::getUnionFindStructureVerts.

Calls MR_MeshComponents_getUnionFindStructureVerts_const_MR_Mesh_ref_MR_EdgeBitSet().

◆ get_union_find_structure_verts_const_mr_mesh_ref_mr_undirected_edge_bit_set()

auto meshlib::mesh_components::get_union_find_structure_verts_const_mr_mesh_ref_mr_undirected_edge_bit_set ( mesh:&meshlib::Mesh ,
edges:&meshlib::UndirectedEdgeBitSet  ) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >

gets union-find structure for vertices, considering connections by given undirected edges only Generated from function MR::MeshComponents::getUnionFindStructureVerts.

Calls MR_MeshComponents_getUnionFindStructureVerts_const_MR_Mesh_ref_MR_UndirectedEdgeBitSet().

◆ get_union_find_structure_verts_const_mr_mesh_topology_ref()

auto meshlib::mesh_components::get_union_find_structure_verts_const_mr_mesh_topology_ref ( topology:&meshlib::MeshTopology ,
region:Option<&meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >

Generated from function MR::MeshComponents::getUnionFindStructureVerts.

Calls MR_MeshComponents_getUnionFindStructureVerts_const_MR_MeshTopology_ref().

◆ get_union_find_structure_verts_ex()

auto meshlib::mesh_components::get_union_find_structure_verts_ex ( mesh:&meshlib::Mesh ,
ignoreEdges:&meshlib::UndirectedEdgeBitSet  ) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >

gets union-find structure for vertices, considering connections by all edges excluding given ones Generated from function MR::MeshComponents::getUnionFindStructureVertsEx.

Calls MR_MeshComponents_getUnionFindStructureVertsEx().

◆ get_union_find_structure_verts_separated_by_path()

auto meshlib::mesh_components::get_union_find_structure_verts_separated_by_path ( mesh:&meshlib::Mesh ,
path:&meshlib::std_vector_MR_EdgePoint ,
outPathVerts:Option<&mut meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >

gets union-find structure for vertices, separating vertices by given path (either closed or from boundary to boundary)

Parameters
outPathVertsthis set receives all vertices passed by the path

Generated from function MR::MeshComponents::getUnionFindStructureVertsSeparatedByPath.

Calls MR_MeshComponents_getUnionFindStructureVertsSeparatedByPath().

◆ get_union_find_structure_verts_separated_by_paths()

auto meshlib::mesh_components::get_union_find_structure_verts_separated_by_paths ( mesh:&meshlib::Mesh ,
paths:&meshlib::std_vector_std_vector_MR_EdgePoint ,
outPathVerts:Option<&mut meshlib::VertBitSet >  ) -> meshlib::Owned< meshlib::UnionFind_MR_VertId >

Generated from function MR::MeshComponents::getUnionFindStructureVertsSeparatedByPaths.

Calls MR_MeshComponents_getUnionFindStructureVertsSeparatedByPaths().

◆ has_fully_selected_component_mr_mesh()

auto meshlib::mesh_components::has_fully_selected_component_mr_mesh ( mesh:&meshlib::Mesh ,
selection:&meshlib::VertBitSet  ) -> bool

returns true if all vertices of a mesh connected component are present in selection Generated from function MR::MeshComponents::hasFullySelectedComponent.

Calls MR_MeshComponents_hasFullySelectedComponent_MR_Mesh().

◆ has_fully_selected_component_mr_mesh_topology()

auto meshlib::mesh_components::has_fully_selected_component_mr_mesh_topology ( topology:&meshlib::MeshTopology ,
selection:&meshlib::VertBitSet  ) -> bool

Generated from function MR::MeshComponents::hasFullySelectedComponent.

Calls MR_MeshComponents_hasFullySelectedComponent_MR_MeshTopology().