MeshLib Rust Docs
Loading...
Searching...
No Matches
Inheritance diagram for meshlib::MeshTopology:

Public Member Functions

auto assign_from_another (_other:&meshlib::MeshTopology) -> &mut meshlib::MeshTopology
auto make_edge () -> meshlib::EdgeId
auto make_edges (num:core::ffi::c_int) -> meshlib::EdgeId
auto is_lone_edge (a:meshlib::EdgeId) const -> bool
auto last_not_lone_undirected_edge () const -> meshlib::UndirectedEdgeId
auto last_not_lone_edge () const -> meshlib::EdgeId
void exclude_lone_edges (edges:&mut meshlib::UndirectedEdgeBitSet) const
auto edge_size () const -> usize
auto edge_capacity () const -> usize
auto undirected_edge_size () const -> usize
auto undirected_edge_capacity () const -> usize
auto compute_not_lone_undirected_edges () const -> usize
auto find_not_lone_undirected_edges () const -> meshlib::Owned< meshlib::UndirectedEdgeBitSet >
void edge_reserve (newCapacity:usize)
auto has_edge (e:meshlib::EdgeId) const -> bool
auto heap_bytes () const -> usize
void shrink_to_fit ()
void clear ()
void splice (a:meshlib::EdgeId, b:meshlib::EdgeId)
auto collapse_edge (e:meshlib::EdgeId, onEdgeDel:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId) -> meshlib::EdgeId
auto next (he:meshlib::EdgeId) const -> meshlib::EdgeId
auto prev (he:meshlib::EdgeId) const -> meshlib::EdgeId
auto org (he:meshlib::EdgeId) const -> meshlib::VertId
auto dest (he:meshlib::EdgeId) const -> meshlib::VertId
auto left (he:meshlib::EdgeId) const -> meshlib::FaceId
auto right (he:meshlib::EdgeId) const -> meshlib::FaceId
void set_org (a:meshlib::EdgeId, v:meshlib::VertId)
void set_left (a:meshlib::EdgeId, f:meshlib::FaceId)
auto from_same_origin_ring (a:meshlib::EdgeId, b:meshlib::EdgeId) const -> bool
auto from_same_left_ring (a:meshlib::EdgeId, b:meshlib::EdgeId) const -> bool
auto get_org_degree (a:meshlib::EdgeId) const -> core::ffi::c_int
auto get_vert_degree (v:meshlib::VertId) const -> core::ffi::c_int
auto is_org_inner_and_has_degree (a:meshlib::EdgeId, d:core::ffi::c_int) const -> bool
auto is_vert_inner_and_has_degree (v:meshlib::VertId, d:core::ffi::c_int) const -> bool
auto get_left_degree (a:meshlib::EdgeId) const -> core::ffi::c_int
auto get_face_degree (f:meshlib::FaceId) const -> core::ffi::c_int
auto is_left_tri (a:meshlib::EdgeId) const -> bool
void get_tri_verts_4 (f:meshlib::FaceId, v0:&mut meshlib::VertId, v1:&mut meshlib::VertId, v2:&mut meshlib::VertId) const
void get_tri_verts_2 (f:meshlib::FaceId, v:&mut meshlib::std_array_MR_VertId_3) const
auto get_tri_verts_1 (f:meshlib::FaceId) const -> meshlib::std_array_MR_VertId_3
auto is_tri_vert (f:meshlib::FaceId, v:meshlib::VertId) const -> bool
auto get_all_tri_verts () const -> meshlib::Owned< meshlib::std_vector_std_array_MR_VertId_3 >
auto get_triangulation () const -> meshlib::Owned< meshlib::Triangulation >
void get_left_tri_verts_out_verts (a:meshlib::EdgeId, v0:&mut meshlib::VertId, v1:&mut meshlib::VertId, v2:&mut meshlib::VertId) const
void get_left_tri_verts_out_array (a:meshlib::EdgeId, v:&mut meshlib::std_array_MR_VertId_3) const
auto get_left_tri_verts (a:meshlib::EdgeId) const -> meshlib::std_array_MR_VertId_3
void get_left_tri_edges (e0:meshlib::EdgeId, e1:&mut meshlib::EdgeId, e2:&mut meshlib::EdgeId) const
void get_tri_edges (f:meshlib::FaceId, e0:&mut meshlib::EdgeId, e1:&mut meshlib::EdgeId, e2:&mut meshlib::EdgeId) const
auto is_left_quad (a:meshlib::EdgeId) const -> bool
auto edge_per_vertex () const -> &meshlib::Vector_MR_EdgeId_MR_VertId
auto edge_with_org (a:meshlib::VertId) const -> meshlib::EdgeId
auto has_vert (a:meshlib::VertId) const -> bool
auto num_valid_verts () const -> core::ffi::c_int
auto last_valid_vert () const -> meshlib::VertId
auto add_vert_id () -> meshlib::VertId
void vert_resize (newSize:usize)
void vert_resize_with_reserve (newSize:usize)
void vert_reserve (newCapacity:usize)
auto vert_size () const -> usize
auto vert_capacity () const -> usize
auto get_valid_verts () const -> &meshlib::VertBitSet
void flip_mr_vert_bit_set (vs:&mut meshlib::VertBitSet) const
auto get_vert_ids (region:Option<&meshlib::VertBitSet >) const -> &meshlib::VertBitSet
auto edge_per_face () const -> &meshlib::Vector_MR_EdgeId_MR_FaceId
auto edge_with_left (a:meshlib::FaceId) const -> meshlib::EdgeId
auto has_face (a:meshlib::FaceId) const -> bool
auto shared_edge (l:meshlib::FaceId, r:meshlib::FaceId) const -> meshlib::EdgeId
auto shared_vert_in_org_mr_edge_id (a:meshlib::EdgeId, b:meshlib::EdgeId) const -> meshlib::EdgeId
auto shared_vert_in_org_mr_face_id (l:meshlib::FaceId, r:meshlib::FaceId) const -> meshlib::EdgeId
auto shared_face (a:meshlib::EdgeId, b:meshlib::EdgeId) const -> meshlib::FaceId
auto num_valid_faces () const -> core::ffi::c_int
auto last_valid_face () const -> meshlib::FaceId
auto add_face_id () -> meshlib::FaceId
void delete_face (f:meshlib::FaceId, keepEdges:Option<&meshlib::UndirectedEdgeBitSet >)
void delete_faces (fs:&meshlib::FaceBitSet, keepEdges:Option<&meshlib::UndirectedEdgeBitSet >)
auto delete_faces_find_vacant (fs:&meshlib::FaceBitSet, keepEdges:Option<&meshlib::UndirectedEdgeBitSet >) -> meshlib::Owned< meshlib::VacantElements >
void delete_faces_keep_edges (fs:&meshlib::FaceBitSet)
void face_resize (newSize:usize)
void face_resize_with_reserve (newSize:usize)
void face_reserve (newCapacity:usize)
auto face_size () const -> usize
auto face_capacity () const -> usize
auto get_valid_faces () const -> &meshlib::FaceBitSet
void flip_mr_face_bit_set (fs:&mut meshlib::FaceBitSet) const
auto get_face_ids (region:Option<&meshlib::FaceBitSet >) const -> &meshlib::FaceBitSet
auto bd_edge_same_left (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> meshlib::EdgeId
auto is_left_bd_face (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto bd_edge_with_left (f:meshlib::FaceId, region:Option<&meshlib::FaceBitSet >) const -> meshlib::EdgeId
auto is_bd_face (f:meshlib::FaceId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto find_bd_faces (region:Option<&meshlib::FaceBitSet >) const -> meshlib::Owned< meshlib::FaceBitSet >
auto is_left_in_region (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto is_inner_edge (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto is_bd_edge (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto find_left_bd_edges (region:Option<&meshlib::FaceBitSet >, test:Option<&meshlib::EdgeBitSet >) const -> meshlib::Owned< meshlib::EdgeBitSet >
auto bd_edge_same_origin (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> meshlib::EdgeId
auto is_bd_vertex_in_org (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto bd_edge_with_origin (v:meshlib::VertId, region:Option<&meshlib::FaceBitSet >) const -> meshlib::EdgeId
auto is_bd_vertex (v:meshlib::VertId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto find_bd_verts (region:Option<&meshlib::FaceBitSet >, test:Option<&meshlib::VertBitSet >) const -> meshlib::Owned< meshlib::VertBitSet >
auto is_inner_or_bd_vertex (v:meshlib::VertId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto is_left_bd_edge (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto is_inner_or_bd_edge (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >) const -> bool
auto next_left_bd (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >, turn:Option< meshlib::Turn >) const -> meshlib::EdgeId
auto prev_left_bd (e:meshlib::EdgeId, region:Option<&meshlib::FaceBitSet >, turn:Option< meshlib::Turn >) const -> meshlib::EdgeId
auto find_edge (o:meshlib::VertId, d:meshlib::VertId) const -> meshlib::EdgeId
auto is_closed (region:Option<&meshlib::FaceBitSet >) const -> bool
auto find_hole_representive_edges (region:Option<&meshlib::FaceBitSet >) const -> meshlib::Owned< meshlib::std_vector_MR_EdgeId >
auto find_num_holes (holeRepresentativeEdges:Option<&mut meshlib::EdgeBitSet >) const -> core::ffi::c_int
auto get_left_ring (e:meshlib::EdgeId) const -> meshlib::Owned< meshlib::std_vector_MR_EdgeId >
auto get_left_rings (es:&meshlib::std_vector_MR_EdgeId) const -> meshlib::Owned< meshlib::std_vector_std_vector_MR_EdgeId >
auto get_path_vertices (path:&meshlib::std_vector_MR_EdgeId) const -> meshlib::Owned< meshlib::VertBitSet >
auto get_path_left_faces (path:&meshlib::std_vector_MR_EdgeId) const -> meshlib::Owned< meshlib::FaceBitSet >
auto get_path_right_faces (path:&meshlib::std_vector_MR_EdgeId) const -> meshlib::Owned< meshlib::FaceBitSet >
void flip_edge (e:meshlib::EdgeId)
auto split_edge (e:meshlib::EdgeId, region:Option<&mut meshlib::FaceBitSet >, new2Old:Option<&mut meshlib::phmap::phmap_flat_hash_map_MR_FaceId_MR_FaceId_phmap_Hash_MR_FaceId_phmap_EqualTo_MR_FaceId_MR_Allocator_std_pair_const_MR_FaceId_MR_FaceId >) -> meshlib::EdgeId
auto split_face (f:meshlib::FaceId, region:Option<&mut meshlib::FaceBitSet >, new2Old:Option<&mut meshlib::phmap::phmap_flat_hash_map_MR_FaceId_MR_FaceId_phmap_Hash_MR_FaceId_phmap_EqualTo_MR_FaceId_MR_Allocator_std_pair_const_MR_FaceId_MR_FaceId >) -> meshlib::VertId
void flip_orientation (fullComponents:Option<&meshlib::UndirectedEdgeBitSet >)
void add_part_3 (from:&meshlib::MeshTopology, map:Option<&meshlib::PartMapping >, rearrangeTriangles:Option< bool >)
void add_part_5 (from:&meshlib::MeshTopology, outFmap:Option<&mut meshlib::FaceMap >, outVmap:Option<&mut meshlib::VertMap >, outEmap:Option<&mut meshlib::WholeEdgeMap >, rearrangeTriangles:Option< bool >)
void add_part_by_mask_4 (from:&meshlib::MeshTopology, fromFaces:Option<&meshlib::FaceBitSet >, map:Option<&meshlib::PartMapping >, vacant:Option<&mut meshlib::VacantElements >)
auto add_part_by_mask_7 (from:&meshlib::MeshTopology, fromFaces:Option<&meshlib::FaceBitSet >, flipOrientation:Option< bool >, thisContours:Option<&meshlib::std_vector_std_vector_MR_EdgeId >, fromContours:Option<&meshlib::std_vector_std_vector_MR_EdgeId >, map:Option<&meshlib::PartMapping >, vacant:Option<&mut meshlib::VacantElements >) -> bool
void rotate_triangles ()
void pack (outFmap:Option<&mut meshlib::FaceMap >, outVmap:Option<&mut meshlib::VertMap >, outEmap:Option<&mut meshlib::WholeEdgeMap >, rearrangeTriangles:Option< bool >)
void pack_mapping (map:&meshlib::PackMapping)
void pack_min_mem (map:&meshlib::PackMapping)
void write (s:&mut meshlib::std_ostream) const
auto read (s:&mut meshlib::std_istream, callback:Option<&meshlib::std_function_bool_from_float >) -> meshlib::Owned< meshlib::expected_void_std_string >
auto op_equal (b:&meshlib::MeshTopology) const -> bool
auto op_not_equal (b:&meshlib::MeshTopology) const -> bool
void resize_before_parallel_add (edgeSize:usize, vertSize:usize, faceSize:usize)
void add_packed_part (from:&meshlib::MeshTopology, toEdgeId:meshlib::EdgeId, fmap:&meshlib::FaceMap, vmap:&meshlib::VertMap, shiftFaceId:Option< core::ffi::c_int >)
auto compute_valids_from_edges (cb:Option<&meshlib::std_function_bool_from_float >) -> bool
void stop_updating_valids ()
auto updating_valids () const -> bool
void prefer_edges (stableEdges:&meshlib::UndirectedEdgeBitSet)
auto build_grid_mesh (settings:&meshlib::GridSettings, cb:Option<&meshlib::std_function_bool_from_float >) -> bool
auto build_from_manifold_triangles (t:&meshlib::Triangulation, settings:&meshlib::mesh_builder::BuildSettings, nonManifoldVertsOnly:Option<&mut bool >) -> bool
auto check_validity (cb:Option<&meshlib::std_function_bool_from_float >, allVerts:Option< bool >) const -> bool

Static Public Member Functions

static auto new () -> meshlib::Owned< meshlib::MeshTopology >
static auto construct_from_another (_other:&meshlib::MeshTopology) -> meshlib::Owned< meshlib::MeshTopology >
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

Detailed Description

Mesh Topology Generated from class MR::MeshTopology.

Generated from class MR::MeshTopology. Heap-allocated instances are held in Owned<MeshTopology>.

Member Function Documentation

◆ add_face_id()

auto meshlib::MeshTopology::add_face_id ( ) -> meshlib::FaceId

creates new face-id not associated with any edge yet Generated from method MR::MeshTopology::addFaceId.

Calls MR_MeshTopology_addFaceId().

◆ add_packed_part()

void meshlib::MeshTopology::add_packed_part ( from:&meshlib::MeshTopology ,
toEdgeId:meshlib::EdgeId ,
fmap:&meshlib::FaceMap ,
vmap:&meshlib::VertMap ,
shiftFaceId:Option< core::ffi::c_int >  )

copies topology (from) into this;

Parameters
fromedges must be tightly packes without any lone edges, and they are mapped [0, from.edges.size()) -> [toEdgeId, toEdgeId + from.edges.size());
fmap,vmapmapping of vertices and faces if it is given ( from.id -> this.id )
shiftFaceIdis added to all face ids from fmap Generated from method MR::MeshTopology::addPackedPart.

Calls MR_MeshTopology_addPackedPart().

◆ add_part_3()

void meshlib::MeshTopology::add_part_3 ( from:&meshlib::MeshTopology ,
map:Option<&meshlib::PartMapping > ,
rearrangeTriangles:Option< bool >  )

appends mesh topology (from) in addition to the current topology: creates new edges, faces, verts;

Parameters
rearrangeTrianglesif true then the order of triangles is selected according to the order of their vertices, please call rotateTriangles() first Generated from method MR::MeshTopology::addPart.

Calls MR_MeshTopology_addPart_3().

◆ add_part_5()

void meshlib::MeshTopology::add_part_5 ( from:&meshlib::MeshTopology ,
outFmap:Option<&mut meshlib::FaceMap > ,
outVmap:Option<&mut meshlib::VertMap > ,
outEmap:Option<&mut meshlib::WholeEdgeMap > ,
rearrangeTriangles:Option< bool >  )

Generated from method MR::MeshTopology::addPart.

Calls MR_MeshTopology_addPart_5().

◆ add_part_by_mask_4()

void meshlib::MeshTopology::add_part_by_mask_4 ( from:&meshlib::MeshTopology ,
fromFaces:Option<&meshlib::FaceBitSet > ,
map:Option<&meshlib::PartMapping > ,
vacant:Option<&mut meshlib::VacantElements >  )

appends the portion of (from) specified by fromFaces in addition to the current topology: creates new edges, faces, verts; optional

Parameters
vacantcan be passed to copy elements not at the end, but over given ones, which the user guaranties to be free/lone Generated from method MR::MeshTopology::addPartByMask.

Calls MR_MeshTopology_addPartByMask_4().

◆ add_part_by_mask_7()

auto meshlib::MeshTopology::add_part_by_mask_7 ( from:&meshlib::MeshTopology ,
fromFaces:Option<&meshlib::FaceBitSet > ,
flipOrientation:Option< bool > ,
thisContours:Option<&meshlib::std_vector_std_vector_MR_EdgeId > ,
fromContours:Option<&meshlib::std_vector_std_vector_MR_EdgeId > ,
map:Option<&meshlib::PartMapping > ,
vacant:Option<&mut meshlib::VacantElements >  ) -> bool

this version has more parameters

Parameters
flipOrientationif true then every from triangle is inverted before adding
thisContourscontours on this mesh (no left face) that have to be stitched with
fromContourscontours on from mesh during addition (no left face if flipOrientation otherwise no right face) optional
vacantcan be passed to copy elements not at the end, but over given ones, which the user guaranties to be free/lone
Returns
false if the given contours cannot be stitched (see the conditions on them above), and this topology is left unmodified then (the src2tgt mappings in (map) argument can be partially filled nevertheless) Generated from method MR::MeshTopology::addPartByMask.

Calls MR_MeshTopology_addPartByMask_7().

◆ add_vert_id()

auto meshlib::MeshTopology::add_vert_id ( ) -> meshlib::VertId

creates new vert-id not associated with any edge yet Generated from method MR::MeshTopology::addVertId.

Calls MR_MeshTopology_addVertId().

◆ assign_from_another()

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

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

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

◆ bd_edge_same_left()

auto meshlib::MeshTopology::bd_edge_same_left ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> meshlib::EdgeId

returns the first boundary edge (for given region or for whole mesh if region is nullptr) in counter-clockwise order starting from given edge with the same left face or hole; returns invalid edge if no boundary edge is found Generated from method MR::MeshTopology::bdEdgeSameLeft.

Calls MR_MeshTopology_bdEdgeSameLeft().

◆ bd_edge_same_origin()

auto meshlib::MeshTopology::bd_edge_same_origin ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> meshlib::EdgeId

returns the first boundary edge (for given region or for whole mesh if region is nullptr) in counter-clockwise order starting from given edge with the same origin; returns invalid edge if no boundary edge is found Generated from method MR::MeshTopology::bdEdgeSameOrigin.

Calls MR_MeshTopology_bdEdgeSameOrigin().

◆ bd_edge_with_left()

auto meshlib::MeshTopology::bd_edge_with_left ( f:meshlib::FaceId ,
region:Option<&meshlib::FaceBitSet >  ) const -> meshlib::EdgeId

returns a boundary edge with given left face considering boundary of given region (or for whole mesh if region is nullptr); returns invalid edge if no boundary edge is found Generated from method MR::MeshTopology::bdEdgeWithLeft.

Calls MR_MeshTopology_bdEdgeWithLeft().

◆ bd_edge_with_origin()

auto meshlib::MeshTopology::bd_edge_with_origin ( v:meshlib::VertId ,
region:Option<&meshlib::FaceBitSet >  ) const -> meshlib::EdgeId

returns a boundary edge with given vertex in origin considering boundary of given region (or for whole mesh if region is nullptr); returns invalid edge if no boundary edge is found Generated from method MR::MeshTopology::bdEdgeWithOrigin.

Calls MR_MeshTopology_bdEdgeWithOrigin().

◆ build_from_manifold_triangles()

auto meshlib::MeshTopology::build_from_manifold_triangles ( t:&meshlib::Triangulation ,
settings:&meshlib::mesh_builder::BuildSettings ,
nonManifoldVertsOnly:Option<&mut bool >  ) -> bool

constructs topology from given triangles in parallel, if every edge has at most two triangles with opposite directions on it, and the triangles around every vertex form either one closed fan or at most two open fans; returns false and leaves this and settings.region unchanged otherwise; triangles with invalid or repeated vertices are not added, as in MeshBuilder::fromTriangles with the same settings;

Parameters
nonManifoldVertsOnlyif given, set to whether it failed only on vertices having several fans of triangles around, but not just one or two open fans Generated from method MR::MeshTopology::buildFromManifoldTriangles.

Calls MR_MeshTopology_buildFromManifoldTriangles().

◆ build_grid_mesh()

auto meshlib::MeshTopology::build_grid_mesh ( settings:&meshlib::GridSettings ,
cb:Option<&meshlib::std_function_bool_from_float >  ) -> bool

constructs triangular grid mesh topology in parallel Generated from method MR::MeshTopology::buildGridMesh.

Calls MR_MeshTopology_buildGridMesh().

◆ check_validity()

auto meshlib::MeshTopology::check_validity ( cb:Option<&meshlib::std_function_bool_from_float > ,
allVerts:Option< bool >  ) const -> bool

verifies that all internal data structures are valid; if allVerts=true then checks in addition that all not-lone edges have valid vertices on both ends Generated from method MR::MeshTopology::checkValidity.

Calls MR_MeshTopology_checkValidity().

◆ clear()

void meshlib::MeshTopology::clear ( )

resets to the default-constructed state (including resuming valids updating), keeping the buffers' capacity for reuse Generated from method MR::MeshTopology::clear.

Calls MR_MeshTopology_clear().

◆ collapse_edge()

auto meshlib::MeshTopology::collapse_edge ( e:meshlib::EdgeId ,
onEdgeDel:&meshlib::std_function_void_from_MR_EdgeId_MR_EdgeId  ) -> meshlib::EdgeId

collapses given edge in a vertex and deletes 1) faces: left( e ) and right( e ); 2) edges: e, next( e.sym() ), prev( e.sym() ), and optionally next( e ), prev( e ) if their left and right triangles are deleted; 3) all vertices that lost their last edge; calls onEdgeDel for every deleted edge (del) including given (e); 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
prev( e ) if it is still valid Generated from method MR::MeshTopology::collapseEdge.

Calls MR_MeshTopology_collapseEdge().

◆ compute_not_lone_undirected_edges()

auto meshlib::MeshTopology::compute_not_lone_undirected_edges ( ) const -> usize

computes the number of not-lone (valid) undirected edges Generated from method MR::MeshTopology::computeNotLoneUndirectedEdges.

Calls MR_MeshTopology_computeNotLoneUndirectedEdges().

◆ compute_valids_from_edges()

auto meshlib::MeshTopology::compute_valids_from_edges ( cb:Option<&meshlib::std_function_bool_from_float > ) -> bool

compute 1) numValidVerts_ and validVerts_ from edgePerVertex_ 2) numValidFaces_ and validFaces_ from edgePerFace_ and activates their auto-update Generated from method MR::MeshTopology::computeValidsFromEdges.

Calls MR_MeshTopology_computeValidsFromEdges().

◆ construct_from_another()

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

Generated from constructor MR::MeshTopology::MeshTopology.

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

◆ delete_face()

void meshlib::MeshTopology::delete_face ( f:meshlib::FaceId ,
keepEdges:Option<&meshlib::UndirectedEdgeBitSet >  )

deletes the face, also deletes its edges and vertices if they were not shared by other faces and not in keepEdges Generated from method MR::MeshTopology::deleteFace.

Calls MR_MeshTopology_deleteFace().

◆ delete_faces()

void meshlib::MeshTopology::delete_faces ( fs:&meshlib::FaceBitSet ,
keepEdges:Option<&meshlib::UndirectedEdgeBitSet >  )

deletes the given faces, also deletes their edges and vertices if they were not shared by other faces and not in keepEdges; unlike deleteFacesFindVacant, the edges that had no left and no right face before the call are not touched; few faces (up to 64 or 1/128 of all faces, whichever is larger) are deleted one by one, without a pass over all mesh elements Generated from method MR::MeshTopology::deleteFaces.

Calls MR_MeshTopology_deleteFaces().

◆ delete_faces_find_vacant()

auto meshlib::MeshTopology::delete_faces_find_vacant ( fs:&meshlib::FaceBitSet ,
keepEdges:Option<&meshlib::UndirectedEdgeBitSet >  ) -> meshlib::Owned< meshlib::VacantElements >

deletes from this topology: 1) all the given faces, 2) all the vertices, which had incident only deleted faces and no edges from keepEdges, 3) make lone all the edges, which had to the left/right only deleted faces or no faces at all (unlike deleteFaces), except for the edges from keepEdges; return bit sets of all vacant elements in this topology after deletion; it takes a pass over the whole mesh for any number of faces Generated from method MR::MeshTopology::deleteFacesFindVacant.

Calls MR_MeshTopology_deleteFacesFindVacant().

◆ delete_faces_keep_edges()

void meshlib::MeshTopology::delete_faces_keep_edges ( fs:&meshlib::FaceBitSet )

deletes the given valid faces (in parallel), keeping all their edges and vertices, which get no face on that side Generated from method MR::MeshTopology::deleteFacesKeepEdges.

Calls MR_MeshTopology_deleteFacesKeepEdges().

◆ dest()

auto meshlib::MeshTopology::dest ( he:meshlib::EdgeId ) const -> meshlib::VertId

returns destination vertex of half-edge Generated from method MR::MeshTopology::dest.

Calls MR_MeshTopology_dest().

◆ edge_capacity()

auto meshlib::MeshTopology::edge_capacity ( ) const -> usize

returns the number of allocated edge records Generated from method MR::MeshTopology::edgeCapacity.

Calls MR_MeshTopology_edgeCapacity().

◆ edge_per_face()

auto meshlib::MeshTopology::edge_per_face ( ) const -> &meshlib::Vector_MR_EdgeId_MR_FaceId

for all valid faces this vector contains an edge with that face at left Generated from method MR::MeshTopology::edgePerFace.

Calls MR_MeshTopology_edgePerFace().

◆ edge_per_vertex()

auto meshlib::MeshTopology::edge_per_vertex ( ) const -> &meshlib::Vector_MR_EdgeId_MR_VertId

for all valid vertices this vector contains an edge with the origin there Generated from method MR::MeshTopology::edgePerVertex.

Calls MR_MeshTopology_edgePerVertex().

◆ edge_reserve()

void meshlib::MeshTopology::edge_reserve ( newCapacity:usize )

sets the capacity of half-edges vector Generated from method MR::MeshTopology::edgeReserve.

Calls MR_MeshTopology_edgeReserve().

◆ edge_size()

auto meshlib::MeshTopology::edge_size ( ) const -> usize

returns the number of half-edge records including lone ones Generated from method MR::MeshTopology::edgeSize.

Calls MR_MeshTopology_edgeSize().

◆ edge_with_left()

auto meshlib::MeshTopology::edge_with_left ( a:meshlib::FaceId ) const -> meshlib::EdgeId

returns valid edge if given vertex is present in the mesh Generated from method MR::MeshTopology::edgeWithLeft.

Calls MR_MeshTopology_edgeWithLeft().

◆ edge_with_org()

auto meshlib::MeshTopology::edge_with_org ( a:meshlib::VertId ) const -> meshlib::EdgeId

returns valid edge if given vertex is present in the mesh Generated from method MR::MeshTopology::edgeWithOrg.

Calls MR_MeshTopology_edgeWithOrg().

◆ exclude_lone_edges()

void meshlib::MeshTopology::exclude_lone_edges ( edges:&mut meshlib::UndirectedEdgeBitSet ) const

remove all lone edges from given set Generated from method MR::MeshTopology::excludeLoneEdges.

Calls MR_MeshTopology_excludeLoneEdges().

◆ face_capacity()

auto meshlib::MeshTopology::face_capacity ( ) const -> usize

returns the number of allocated face records Generated from method MR::MeshTopology::faceCapacity.

Calls MR_MeshTopology_faceCapacity().

◆ face_reserve()

void meshlib::MeshTopology::face_reserve ( newCapacity:usize )

sets the capacity of faces vector Generated from method MR::MeshTopology::faceReserve.

Calls MR_MeshTopology_faceReserve().

◆ face_resize()

void meshlib::MeshTopology::face_resize ( newSize:usize )

explicitly increases the size of faces vector Generated from method MR::MeshTopology::faceResize.

Calls MR_MeshTopology_faceResize().

◆ face_resize_with_reserve()

void meshlib::MeshTopology::face_resize_with_reserve ( newSize:usize )

explicitly increases the size of faces vector, doubling the current capacity if it was not enough Generated from method MR::MeshTopology::faceResizeWithReserve.

Calls MR_MeshTopology_faceResizeWithReserve().

◆ face_size()

auto meshlib::MeshTopology::face_size ( ) const -> usize

returns the number of face records including invalid ones Generated from method MR::MeshTopology::faceSize.

Calls MR_MeshTopology_faceSize().

◆ find_bd_faces()

auto meshlib::MeshTopology::find_bd_faces ( region:Option<&meshlib::FaceBitSet > ) const -> meshlib::Owned< meshlib::FaceBitSet >

returns all faces for which isBdFace(f, region) is true Generated from method MR::MeshTopology::findBdFaces.

Calls MR_MeshTopology_findBdFaces().

◆ find_bd_verts()

auto meshlib::MeshTopology::find_bd_verts ( region:Option<&meshlib::FaceBitSet > ,
test:Option<&meshlib::VertBitSet >  ) const -> meshlib::Owned< meshlib::VertBitSet >

returns all (test) vertices for which isBdVertex(v, region) is true Generated from method MR::MeshTopology::findBdVerts.

Calls MR_MeshTopology_findBdVerts().

◆ find_edge()

auto meshlib::MeshTopology::find_edge ( o:meshlib::VertId ,
d:meshlib::VertId  ) const -> meshlib::EdgeId

finds and returns edge from o to d in the mesh; returns invalid edge otherwise Generated from method MR::MeshTopology::findEdge.

Calls MR_MeshTopology_findEdge().

◆ find_hole_representive_edges()

auto meshlib::MeshTopology::find_hole_representive_edges ( region:Option<&meshlib::FaceBitSet > ) const -> meshlib::Owned< meshlib::std_vector_MR_EdgeId >

returns one edge with no valid left face for every boundary in the mesh; if region is given, then returned edges must have valid right faces from the region Generated from method MR::MeshTopology::findHoleRepresentiveEdges.

Calls MR_MeshTopology_findHoleRepresentiveEdges().

◆ find_left_bd_edges()

auto meshlib::MeshTopology::find_left_bd_edges ( region:Option<&meshlib::FaceBitSet > ,
test:Option<&meshlib::EdgeBitSet >  ) const -> meshlib::Owned< meshlib::EdgeBitSet >

returns all (test) edges for which left(e) does not belong to the region and isBdEdge(e, region) is true Generated from method MR::MeshTopology::findLeftBdEdges.

Calls MR_MeshTopology_findLeftBdEdges().

◆ find_not_lone_undirected_edges()

auto meshlib::MeshTopology::find_not_lone_undirected_edges ( ) const -> meshlib::Owned< meshlib::UndirectedEdgeBitSet >

finds and returns all not-lone (valid) undirected edges Generated from method MR::MeshTopology::findNotLoneUndirectedEdges.

Calls MR_MeshTopology_findNotLoneUndirectedEdges().

◆ find_num_holes()

auto meshlib::MeshTopology::find_num_holes ( holeRepresentativeEdges:Option<&mut meshlib::EdgeBitSet > ) const -> core::ffi::c_int

returns the number of hole loops in the mesh;

Parameters
holeRepresentativeEdgesoptional output of the smallest edge id with no valid left face in every hole Generated from method MR::MeshTopology::findNumHoles.

Calls MR_MeshTopology_findNumHoles().

◆ flip_edge()

void meshlib::MeshTopology::flip_edge ( e:meshlib::EdgeId )

given the edge with left and right triangular faces, which form together a quadrangle, rotates the edge counter-clockwise inside the quadrangle Generated from method MR::MeshTopology::flipEdge.

Calls MR_MeshTopology_flipEdge().

◆ flip_mr_face_bit_set()

void meshlib::MeshTopology::flip_mr_face_bit_set ( fs:&mut meshlib::FaceBitSet ) const

sets in (fs) all valid faces that were not selected before the call, and resets other bits Generated from method MR::MeshTopology::flip.

Calls MR_MeshTopology_flip_MR_FaceBitSet().

◆ flip_mr_vert_bit_set()

void meshlib::MeshTopology::flip_mr_vert_bit_set ( vs:&mut meshlib::VertBitSet ) const

sets in (vs) all valid vertices that were not selected before the call, and resets other bits Generated from method MR::MeshTopology::flip.

Calls MR_MeshTopology_flip_MR_VertBitSet().

◆ flip_orientation()

void meshlib::MeshTopology::flip_orientation ( fullComponents:Option<&meshlib::UndirectedEdgeBitSet > )

flip orientation (normals) of

  • all mesh elements if fullComponents is nullptr, or
  • given mesh components in fullComponents. The behavior is undefined if fullComponents is given but there are connected components with some edges included and not-included there. Generated from method MR::MeshTopology::flipOrientation.

Calls MR_MeshTopology_flipOrientation().

◆ from_same_left_ring()

auto meshlib::MeshTopology::from_same_left_ring ( a:meshlib::EdgeId ,
b:meshlib::EdgeId  ) const -> bool

returns true if a and b are both from the same left face ring Generated from method MR::MeshTopology::fromSameLeftRing.

Calls MR_MeshTopology_fromSameLeftRing().

◆ from_same_origin_ring()

auto meshlib::MeshTopology::from_same_origin_ring ( a:meshlib::EdgeId ,
b:meshlib::EdgeId  ) const -> bool

returns true if a and b are both from the same origin ring Generated from method MR::MeshTopology::fromSameOriginRing.

Calls MR_MeshTopology_fromSameOriginRing().

◆ get_all_tri_verts()

auto meshlib::MeshTopology::get_all_tri_verts ( ) const -> meshlib::Owned< meshlib::std_vector_std_array_MR_VertId_3 >

returns three vertex ids for valid triangles, invalid triangles are skipped Generated from method MR::MeshTopology::getAllTriVerts.

Calls MR_MeshTopology_getAllTriVerts().

◆ get_face_degree()

auto meshlib::MeshTopology::get_face_degree ( f:meshlib::FaceId ) const -> core::ffi::c_int

returns the number of edges around the given face: 3 for triangular faces, ... Generated from method MR::MeshTopology::getFaceDegree.

Calls MR_MeshTopology_getFaceDegree().

◆ get_face_ids()

auto meshlib::MeshTopology::get_face_ids ( region:Option<&meshlib::FaceBitSet > ) const -> &meshlib::FaceBitSet

if region pointer is not null then converts it in reference, otherwise returns all valid faces in the mesh Generated from method MR::MeshTopology::getFaceIds.

Calls MR_MeshTopology_getFaceIds().

◆ get_left_degree()

auto meshlib::MeshTopology::get_left_degree ( a:meshlib::EdgeId ) const -> core::ffi::c_int

returns the number of edges around the left face: 3 for triangular faces, ... Generated from method MR::MeshTopology::getLeftDegree.

Calls MR_MeshTopology_getLeftDegree().

◆ get_left_ring()

auto meshlib::MeshTopology::get_left_ring ( e:meshlib::EdgeId ) const -> meshlib::Owned< meshlib::std_vector_MR_EdgeId >

returns full edge-loop of left face from (e) starting from (e) itself Generated from method MR::MeshTopology::getLeftRing.

Calls MR_MeshTopology_getLeftRing().

◆ get_left_rings()

auto meshlib::MeshTopology::get_left_rings ( es:&meshlib::std_vector_MR_EdgeId ) const -> meshlib::Owned< meshlib::std_vector_std_vector_MR_EdgeId >

returns full edge-loops of left faces from every edge in (es); each edge-loop will be returned only once even if some faces are represented by more than one edge in (es) Generated from method MR::MeshTopology::getLeftRings.

Calls MR_MeshTopology_getLeftRings().

◆ get_left_tri_edges()

void meshlib::MeshTopology::get_left_tri_edges ( e0:meshlib::EdgeId ,
e1:&mut meshlib::EdgeId ,
e2:&mut meshlib::EdgeId  ) const

given one edge with triangular face on the left; returns two other edges of the same face, oriented to have this face on the left; the edges are returned in counter-clockwise order if look from mesh outside Generated from method MR::MeshTopology::getLeftTriEdges.

Calls MR_MeshTopology_getLeftTriEdges().

◆ get_left_tri_verts()

auto meshlib::MeshTopology::get_left_tri_verts ( a:meshlib::EdgeId ) const -> meshlib::std_array_MR_VertId_3

Generated from method MR::MeshTopology::getLeftTriVerts.

Calls MR_MeshTopology_getLeftTriVerts().

◆ get_left_tri_verts_out_array()

void meshlib::MeshTopology::get_left_tri_verts_out_array ( a:meshlib::EdgeId ,
v:&mut meshlib::std_array_MR_VertId_3  ) const

Generated from method MR::MeshTopology::getLeftTriVerts.

Calls MR_MeshTopology_getLeftTriVerts_outArray().

◆ get_left_tri_verts_out_verts()

void meshlib::MeshTopology::get_left_tri_verts_out_verts ( a:meshlib::EdgeId ,
v0:&mut meshlib::VertId ,
v1:&mut meshlib::VertId ,
v2:&mut meshlib::VertId  ) const

gets 3 vertices of the left face ( face-id may not exist, but the shape must be triangular) the vertices are returned in counter-clockwise order if look from mesh outside: v0 = org( a ), v1 = dest( a ) Generated from method MR::MeshTopology::getLeftTriVerts.

Calls MR_MeshTopology_getLeftTriVerts_outVerts().

◆ get_org_degree()

auto meshlib::MeshTopology::get_org_degree ( a:meshlib::EdgeId ) const -> core::ffi::c_int

returns the number of edges around the origin vertex, returns 1 for lone edges Generated from method MR::MeshTopology::getOrgDegree.

Calls MR_MeshTopology_getOrgDegree().

◆ get_path_left_faces()

auto meshlib::MeshTopology::get_path_left_faces ( path:&meshlib::std_vector_MR_EdgeId ) const -> meshlib::Owned< meshlib::FaceBitSet >

returns all valid left faces of path edges Generated from method MR::MeshTopology::getPathLeftFaces.

Calls MR_MeshTopology_getPathLeftFaces().

◆ get_path_right_faces()

auto meshlib::MeshTopology::get_path_right_faces ( path:&meshlib::std_vector_MR_EdgeId ) const -> meshlib::Owned< meshlib::FaceBitSet >

returns all valid right faces of path edges Generated from method MR::MeshTopology::getPathRightFaces.

Calls MR_MeshTopology_getPathRightFaces().

◆ get_path_vertices()

auto meshlib::MeshTopology::get_path_vertices ( path:&meshlib::std_vector_MR_EdgeId ) const -> meshlib::Owned< meshlib::VertBitSet >

returns all vertices incident to path edges Generated from method MR::MeshTopology::getPathVertices.

Calls MR_MeshTopology_getPathVertices().

◆ get_tri_edges()

void meshlib::MeshTopology::get_tri_edges ( f:meshlib::FaceId ,
e0:&mut meshlib::EdgeId ,
e1:&mut meshlib::EdgeId ,
e2:&mut meshlib::EdgeId  ) const

gets 3 edges of given triangular face, oriented to have it on the left; the edges are returned in counter-clockwise order if look from mesh outside Generated from method MR::MeshTopology::getTriEdges.

Calls MR_MeshTopology_getTriEdges().

◆ get_tri_verts_1()

auto meshlib::MeshTopology::get_tri_verts_1 ( f:meshlib::FaceId ) const -> meshlib::std_array_MR_VertId_3

Generated from method MR::MeshTopology::getTriVerts.

Calls MR_MeshTopology_getTriVerts_1().

◆ get_tri_verts_2()

void meshlib::MeshTopology::get_tri_verts_2 ( f:meshlib::FaceId ,
v:&mut meshlib::std_array_MR_VertId_3  ) const

Generated from method MR::MeshTopology::getTriVerts.

Calls MR_MeshTopology_getTriVerts_2().

◆ get_tri_verts_4()

void meshlib::MeshTopology::get_tri_verts_4 ( f:meshlib::FaceId ,
v0:&mut meshlib::VertId ,
v1:&mut meshlib::VertId ,
v2:&mut meshlib::VertId  ) const

gets 3 vertices of given triangular face; the vertices are returned in counter-clockwise order if look from mesh outside Generated from method MR::MeshTopology::getTriVerts.

Calls MR_MeshTopology_getTriVerts_4().

◆ get_triangulation()

auto meshlib::MeshTopology::get_triangulation ( ) const -> meshlib::Owned< meshlib::Triangulation >

returns three vertex ids for valid triangles (which can be accessed by FaceId), vertex ids for invalid triangles are undefined, and shall not be read Generated from method MR::MeshTopology::getTriangulation.

Calls MR_MeshTopology_getTriangulation().

◆ get_valid_faces()

auto meshlib::MeshTopology::get_valid_faces ( ) const -> &meshlib::FaceBitSet

returns cached set of all valid faces Generated from method MR::MeshTopology::getValidFaces.

Calls MR_MeshTopology_getValidFaces().

◆ get_valid_verts()

auto meshlib::MeshTopology::get_valid_verts ( ) const -> &meshlib::VertBitSet

returns cached set of all valid vertices Generated from method MR::MeshTopology::getValidVerts.

Calls MR_MeshTopology_getValidVerts().

◆ get_vert_degree()

auto meshlib::MeshTopology::get_vert_degree ( v:meshlib::VertId ) const -> core::ffi::c_int

returns the number of edges around the given vertex Generated from method MR::MeshTopology::getVertDegree.

Calls MR_MeshTopology_getVertDegree().

◆ get_vert_ids()

auto meshlib::MeshTopology::get_vert_ids ( region:Option<&meshlib::VertBitSet > ) const -> &meshlib::VertBitSet

if region pointer is not null then converts it in reference, otherwise returns all valid vertices in the mesh Generated from method MR::MeshTopology::getVertIds.

Calls MR_MeshTopology_getVertIds().

◆ has_edge()

auto meshlib::MeshTopology::has_edge ( e:meshlib::EdgeId ) const -> bool

returns true if given edge is within valid range and not-lone Generated from method MR::MeshTopology::hasEdge.

Calls MR_MeshTopology_hasEdge().

◆ has_face()

auto meshlib::MeshTopology::has_face ( a:meshlib::FaceId ) const -> bool

returns true if given face is present in the mesh Generated from method MR::MeshTopology::hasFace.

Calls MR_MeshTopology_hasFace().

◆ has_vert()

auto meshlib::MeshTopology::has_vert ( a:meshlib::VertId ) const -> bool

returns true if given vertex is present in the mesh Generated from method MR::MeshTopology::hasVert.

Calls MR_MeshTopology_hasVert().

◆ heap_bytes()

auto meshlib::MeshTopology::heap_bytes ( ) const -> usize

returns the amount of memory this object occupies on heap Generated from method MR::MeshTopology::heapBytes.

Calls MR_MeshTopology_heapBytes().

◆ is_bd_edge()

auto meshlib::MeshTopology::is_bd_edge ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

isBdEdge(e) returns true, if the edge (e) is a boundary edge of the mesh: (e) has a hole from one or both sides. isBdEdge(e, region) returns true, if the edge (e) is a boundary edge of the given region: (e) has a region's face from one side (region.test(f0)==true) and a hole or not-region face from the other side (!f1 || region.test(f1)==false). If the region contains all faces of the mesh then isBdEdge(e) is the union of isBdEdge(e, region) and not-lone edges without both left and right faces. Generated from method MR::MeshTopology::isBdEdge.

Calls MR_MeshTopology_isBdEdge().

◆ is_bd_face()

auto meshlib::MeshTopology::is_bd_face ( f:meshlib::FaceId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

returns true if given face belongs to the region and it has a boundary edge (isBdEdge(e,region) == true) Generated from method MR::MeshTopology::isBdFace.

Calls MR_MeshTopology_isBdFace().

◆ is_bd_vertex()

auto meshlib::MeshTopology::is_bd_vertex ( v:meshlib::VertId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

returns true if given vertex is on (region) boundary Generated from method MR::MeshTopology::isBdVertex.

Calls MR_MeshTopology_isBdVertex().

◆ is_bd_vertex_in_org()

auto meshlib::MeshTopology::is_bd_vertex_in_org ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

returns true if edge's origin is on (region) boundary Generated from method MR::MeshTopology::isBdVertexInOrg.

Calls MR_MeshTopology_isBdVertexInOrg().

◆ is_closed()

auto meshlib::MeshTopology::is_closed ( region:Option<&meshlib::FaceBitSet > ) const -> bool

returns true if the mesh (region) does not have any neighboring holes Generated from method MR::MeshTopology::isClosed.

Calls MR_MeshTopology_isClosed().

◆ is_inner_edge()

auto meshlib::MeshTopology::is_inner_edge ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

return true if given edge is inner for given region (or for whole mesh if region is nullptr) Generated from method MR::MeshTopology::isInnerEdge.

Calls MR_MeshTopology_isInnerEdge().

◆ is_inner_or_bd_edge()

auto meshlib::MeshTopology::is_inner_or_bd_edge ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

return true if given edge is inner or boundary for given region (or for whole mesh if region is nullptr), returns false for lone edges Generated from method MR::MeshTopology::isInnerOrBdEdge.

Calls MR_MeshTopology_isInnerOrBdEdge().

◆ is_inner_or_bd_vertex()

auto meshlib::MeshTopology::is_inner_or_bd_vertex ( v:meshlib::VertId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

returns true if one of incident faces of given vertex pertain to given region (or any such face exists if region is nullptr) Generated from method MR::MeshTopology::isInnerOrBdVertex.

Calls MR_MeshTopology_isInnerOrBdVertex().

◆ is_left_bd_edge()

auto meshlib::MeshTopology::is_left_bd_edge ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

returns true if left face of given edge belongs to given region (if provided) and right face either does not exist or does not belong Generated from method MR::MeshTopology::isLeftBdEdge.

Calls MR_MeshTopology_isLeftBdEdge().

◆ is_left_bd_face()

auto meshlib::MeshTopology::is_left_bd_face ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

returns true if left(e) is a valid (region) face, and it has a boundary edge (isBdEdge(e,region) == true) Generated from method MR::MeshTopology::isLeftBdFace.

Calls MR_MeshTopology_isLeftBdFace().

◆ is_left_in_region()

auto meshlib::MeshTopology::is_left_in_region ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet >  ) const -> bool

return true if left face of given edge belongs to region (or just have valid id if region is nullptr) Generated from method MR::MeshTopology::isLeftInRegion.

Calls MR_MeshTopology_isLeftInRegion().

◆ is_left_quad()

auto meshlib::MeshTopology::is_left_quad ( a:meshlib::EdgeId ) const -> bool

returns true if the cell to the left of a is quadrangular Generated from method MR::MeshTopology::isLeftQuad.

Calls MR_MeshTopology_isLeftQuad().

◆ is_left_tri()

auto meshlib::MeshTopology::is_left_tri ( a:meshlib::EdgeId ) const -> bool

returns true if the cell to the left of a is triangular Generated from method MR::MeshTopology::isLeftTri.

Calls MR_MeshTopology_isLeftTri().

◆ is_lone_edge()

auto meshlib::MeshTopology::is_lone_edge ( a:meshlib::EdgeId ) const -> bool

checks whether the edge is disconnected from all other edges and disassociated from all vertices and faces (as if after makeEdge) Generated from method MR::MeshTopology::isLoneEdge.

Calls MR_MeshTopology_isLoneEdge().

◆ is_org_inner_and_has_degree()

auto meshlib::MeshTopology::is_org_inner_and_has_degree ( a:meshlib::EdgeId ,
d:core::ffi::c_int  ) const -> bool

returns true if the origin of given edge is inner to the mesh (no boundary passes via it), and has the given number of incident edges (including input one) Generated from method MR::MeshTopology::isOrgInnerAndHasDegree.

Calls MR_MeshTopology_isOrgInnerAndHasDegree().

◆ is_tri_vert()

auto meshlib::MeshTopology::is_tri_vert ( f:meshlib::FaceId ,
v:meshlib::VertId  ) const -> bool

return true if triangular face (f) has (v) as one of its vertices Generated from method MR::MeshTopology::isTriVert.

Calls MR_MeshTopology_isTriVert().

◆ is_vert_inner_and_has_degree()

auto meshlib::MeshTopology::is_vert_inner_and_has_degree ( v:meshlib::VertId ,
d:core::ffi::c_int  ) const -> bool

returns true if the given vertex is inner to the mesh (no boundary passes via it), and has the given number of incident edges Generated from method MR::MeshTopology::isVertInnerAndHasDegree.

Calls MR_MeshTopology_isVertInnerAndHasDegree().

◆ last_not_lone_edge()

auto meshlib::MeshTopology::last_not_lone_edge ( ) const -> meshlib::EdgeId

returns last not lone edge id, or invalid id if no such edge exists Generated from method MR::MeshTopology::lastNotLoneEdge.

Calls MR_MeshTopology_lastNotLoneEdge().

◆ last_not_lone_undirected_edge()

auto meshlib::MeshTopology::last_not_lone_undirected_edge ( ) const -> meshlib::UndirectedEdgeId

returns last not lone undirected edge id, or invalid id if no such edge exists Generated from method MR::MeshTopology::lastNotLoneUndirectedEdge.

Calls MR_MeshTopology_lastNotLoneUndirectedEdge().

◆ last_valid_face()

auto meshlib::MeshTopology::last_valid_face ( ) const -> meshlib::FaceId

returns last valid face id, or invalid id if no single valid face exists Generated from method MR::MeshTopology::lastValidFace.

Calls MR_MeshTopology_lastValidFace().

◆ last_valid_vert()

auto meshlib::MeshTopology::last_valid_vert ( ) const -> meshlib::VertId

returns last valid vertex id, or invalid id if no single valid vertex exists Generated from method MR::MeshTopology::lastValidVert.

Calls MR_MeshTopology_lastValidVert().

◆ left()

auto meshlib::MeshTopology::left ( he:meshlib::EdgeId ) const -> meshlib::FaceId

returns left face of half-edge Generated from method MR::MeshTopology::left.

Calls MR_MeshTopology_left().

◆ make_edge()

auto meshlib::MeshTopology::make_edge ( ) -> meshlib::EdgeId

creates an edge not associated with any vertex or face Generated from method MR::MeshTopology::makeEdge.

Calls MR_MeshTopology_makeEdge().

◆ make_edges()

auto meshlib::MeshTopology::make_edges ( num:core::ffi::c_int ) -> meshlib::EdgeId

creates given number of edges not associated with any vertex or face, returns the first of them; edge i is the first + 2 * i, the same as from makeEdge() called num times Generated from method MR::MeshTopology::makeEdges.

Calls MR_MeshTopology_makeEdges().

◆ new()

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

Constructs an empty (default-constructed) instance.

Calls MR_MeshTopology_DefaultConstruct().

◆ next()

auto meshlib::MeshTopology::next ( he:meshlib::EdgeId ) const -> meshlib::EdgeId

next (counter clock wise) half-edge in the origin ring Generated from method MR::MeshTopology::next.

Calls MR_MeshTopology_next().

◆ next_left_bd()

auto meshlib::MeshTopology::next_left_bd ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet > ,
turn:Option< meshlib::Turn >  ) const -> meshlib::EdgeId

given a (region) boundary edge with no right face in given region, returns next boundary edge for the same region: dest(e)==org(res);

Parameters
turndetermines the selection of next boundary edge in case of several alternatives Generated from method MR::MeshTopology::nextLeftBd.

Calls MR_MeshTopology_nextLeftBd().

◆ num_valid_faces()

auto meshlib::MeshTopology::num_valid_faces ( ) const -> core::ffi::c_int

returns the number of valid faces Generated from method MR::MeshTopology::numValidFaces.

Calls MR_MeshTopology_numValidFaces().

◆ num_valid_verts()

auto meshlib::MeshTopology::num_valid_verts ( ) const -> core::ffi::c_int

returns the number of valid vertices Generated from method MR::MeshTopology::numValidVerts.

Calls MR_MeshTopology_numValidVerts().

◆ op_equal()

auto meshlib::MeshTopology::op_equal ( b:&meshlib::MeshTopology ) const -> bool

compare that two topologies are exactly the same Generated from method MR::MeshTopology::operator==.

Calls MR_equal_MR_MeshTopology().

◆ op_not_equal()

auto meshlib::MeshTopology::op_not_equal ( b:&meshlib::MeshTopology ) const -> bool

compare that two topologies are exactly the same Generated from method MR::MeshTopology::operator!=.

Calls MR_not_equal_MR_MeshTopology().

◆ org()

auto meshlib::MeshTopology::org ( he:meshlib::EdgeId ) const -> meshlib::VertId

returns origin vertex of half-edge Generated from method MR::MeshTopology::org.

Calls MR_MeshTopology_org().

◆ pack()

void meshlib::MeshTopology::pack ( outFmap:Option<&mut meshlib::FaceMap > ,
outVmap:Option<&mut meshlib::VertMap > ,
outEmap:Option<&mut meshlib::WholeEdgeMap > ,
rearrangeTriangles:Option< bool >  )

tightly packs all arrays eliminating lone edges and invalid faces and vertices

Parameters
outFmap,outVmap,outEmapif given returns mappings: old.id -> new.id;
rearrangeTrianglesif true then calls rotateTriangles() and selects the order of triangles according to the order of their vertices Generated from method MR::MeshTopology::pack.

Calls MR_MeshTopology_pack().

◆ pack_mapping()

void meshlib::MeshTopology::pack_mapping ( map:&meshlib::PackMapping )

tightly packs all arrays eliminating lone edges and invalid faces and vertices; reorder all faces, vertices and edges according to given maps, each containing old id -> new id mapping Generated from method MR::MeshTopology::pack.

Calls MR_MeshTopology_pack_mapping().

◆ pack_min_mem()

void meshlib::MeshTopology::pack_min_mem ( map:&meshlib::PackMapping )

tightly packs all arrays eliminating lone edges and invalid faces and vertices; reorder all faces, vertices and edges according to given maps, each containing old id -> new id mapping; unlike pack method, this method allocates minimal amount of memory for its operation but works much slower Generated from method MR::MeshTopology::packMinMem.

Calls MR_MeshTopology_packMinMem().

◆ prefer_edges()

void meshlib::MeshTopology::prefer_edges ( stableEdges:&meshlib::UndirectedEdgeBitSet )

for incident vertices and faces of given edges, remember one of them as edgeWithOrg and edgeWithLeft; this is important in parallel algorithms where other edges may change but stable ones will survive Generated from method MR::MeshTopology::preferEdges.

Calls MR_MeshTopology_preferEdges().

◆ prev()

auto meshlib::MeshTopology::prev ( he:meshlib::EdgeId ) const -> meshlib::EdgeId

previous (clock wise) half-edge in the origin ring Generated from method MR::MeshTopology::prev.

Calls MR_MeshTopology_prev().

◆ prev_left_bd()

auto meshlib::MeshTopology::prev_left_bd ( e:meshlib::EdgeId ,
region:Option<&meshlib::FaceBitSet > ,
turn:Option< meshlib::Turn >  ) const -> meshlib::EdgeId

given a (region) boundary edge with no right face in given region, returns previous boundary edge for the same region; dest(res)==org(e);

Parameters
turndetermines the selection of previous boundary edge in case of several alternatives, note the turn is from previous (returned) edge to the current edge Generated from method MR::MeshTopology::prevLeftBd.

Calls MR_MeshTopology_prevLeftBd().

◆ read()

auto meshlib::MeshTopology::read ( s:&mut meshlib::std_istream ,
callback:Option<&meshlib::std_function_bool_from_float >  ) -> meshlib::Owned< meshlib::expected_void_std_string >

loads from binary stream

Returns
text of error if any Generated from method MR::MeshTopology::read.

Calls MR_MeshTopology_read().

◆ resize_before_parallel_add()

void meshlib::MeshTopology::resize_before_parallel_add ( edgeSize:usize ,
vertSize:usize ,
faceSize:usize  )

These function are for parallel mesh creation from different threads. If you are not sure, do not use them.

resizes all internal vectors and sets the numbers of valid elements in preparation for addPackedPart; edges are resized without initialization (so the user must initialize them using addPackedPart) Generated from method MR::MeshTopology::resizeBeforeParallelAdd.

Calls MR_MeshTopology_resizeBeforeParallelAdd().

◆ right()

auto meshlib::MeshTopology::right ( he:meshlib::EdgeId ) const -> meshlib::FaceId

returns right face of half-edge Generated from method MR::MeshTopology::right.

Calls MR_MeshTopology_right().

◆ rotate_triangles()

void meshlib::MeshTopology::rotate_triangles ( )

for each triangle selects edgeWithLeft with minimal origin vertex Generated from method MR::MeshTopology::rotateTriangles.

Calls MR_MeshTopology_rotateTriangles().

◆ set_left()

void meshlib::MeshTopology::set_left ( a:meshlib::EdgeId ,
f:meshlib::FaceId  )

sets new left face to the full left ring including this edge; edgePerFace_ table is updated accordingly Generated from method MR::MeshTopology::setLeft.

Calls MR_MeshTopology_setLeft().

◆ set_org()

void meshlib::MeshTopology::set_org ( a:meshlib::EdgeId ,
v:meshlib::VertId  )

sets new origin to the full origin ring including this edge; edgePerVertex_ table is updated accordingly Generated from method MR::MeshTopology::setOrg.

Calls MR_MeshTopology_setOrg().

◆ shared_edge()

auto meshlib::MeshTopology::shared_edge ( l:meshlib::FaceId ,
r:meshlib::FaceId  ) const -> meshlib::EdgeId

if two valid faces share the same edge then it is found and returned Generated from method MR::MeshTopology::sharedEdge.

Calls MR_MeshTopology_sharedEdge().

◆ shared_face()

auto meshlib::MeshTopology::shared_face ( a:meshlib::EdgeId ,
b:meshlib::EdgeId  ) const -> meshlib::FaceId

if two valid edges belong to same valid face then it is found and returned Generated from method MR::MeshTopology::sharedFace.

Calls MR_MeshTopology_sharedFace().

◆ shared_vert_in_org_mr_edge_id()

auto meshlib::MeshTopology::shared_vert_in_org_mr_edge_id ( a:meshlib::EdgeId ,
b:meshlib::EdgeId  ) const -> meshlib::EdgeId

if two valid edges share the same vertex then it is found and returned as Edge with this vertex in origin Generated from method MR::MeshTopology::sharedVertInOrg.

Calls MR_MeshTopology_sharedVertInOrg_MR_EdgeId().

◆ shared_vert_in_org_mr_face_id()

auto meshlib::MeshTopology::shared_vert_in_org_mr_face_id ( l:meshlib::FaceId ,
r:meshlib::FaceId  ) const -> meshlib::EdgeId

if two valid faces share the same vertex then it is found and returned as Edge with this vertex in origin Generated from method MR::MeshTopology::sharedVertInOrg.

Calls MR_MeshTopology_sharedVertInOrg_MR_FaceId().

◆ shrink_to_fit()

void meshlib::MeshTopology::shrink_to_fit ( )

requests the removal of unused capacity Generated from method MR::MeshTopology::shrinkToFit.

Calls MR_MeshTopology_shrinkToFit().

◆ splice()

void meshlib::MeshTopology::splice ( a:meshlib::EdgeId ,
b:meshlib::EdgeId  )

given two half edges do either of two: 1) if a and b were from distinct rings, puts them in one ring; 2) if a and b were from the same ring, puts them in separate rings; the cut in rings in both cases is made after a and b Generated from method MR::MeshTopology::splice.

Calls MR_MeshTopology_splice().

◆ split_edge()

split given edge on two parts: dest(returned-edge) = org(e) - newly created vertex, org(returned-edge) = org(e-before-split), dest(e) = dest(e-before-split)

left and right faces of given edge if valid are also subdivided on two parts each; the split edge will keep both face IDs and their degrees, and the new edge will have new face IDs and new faces are triangular; if left or right faces of the original edge were in the region, then include new parts of these faces in the region

Parameters
new2Oldreceive mapping from newly appeared triangle to its original triangle (part to full) Generated from method MR::MeshTopology::splitEdge.

Calls MR_MeshTopology_splitEdge().

◆ split_face()

split given triangle on three triangles, introducing new vertex (which is returned) inside original triangle and connecting it to its vertices

if region is given, then it must include (f) and new faces will be added there as well

Parameters
new2Oldreceive mapping from newly appeared triangle to its original triangle (part to full) Generated from method MR::MeshTopology::splitFace.

Calls MR_MeshTopology_splitFace().

◆ stop_updating_valids()

void meshlib::MeshTopology::stop_updating_valids ( )

stops updating validVerts(), validFaces(), numValidVerts(), numValidFaces() for parallel processing of mesh parts Generated from method MR::MeshTopology::stopUpdatingValids.

Calls MR_MeshTopology_stopUpdatingValids().

◆ undirected_edge_capacity()

auto meshlib::MeshTopology::undirected_edge_capacity ( ) const -> usize

returns the number of allocated undirected edges (pairs of half-edges) Generated from method MR::MeshTopology::undirectedEdgeCapacity.

Calls MR_MeshTopology_undirectedEdgeCapacity().

◆ undirected_edge_size()

auto meshlib::MeshTopology::undirected_edge_size ( ) const -> usize

returns the number of undirected edges (pairs of half-edges) including lone ones Generated from method MR::MeshTopology::undirectedEdgeSize.

Calls MR_MeshTopology_undirectedEdgeSize().

◆ updating_valids()

auto meshlib::MeshTopology::updating_valids ( ) const -> bool

returns whether the methods validVerts(), validFaces(), numValidVerts(), numValidFaces() can be called Generated from method MR::MeshTopology::updatingValids.

Calls MR_MeshTopology_updatingValids().

◆ vert_capacity()

auto meshlib::MeshTopology::vert_capacity ( ) const -> usize

returns the number of allocated vert records Generated from method MR::MeshTopology::vertCapacity.

Calls MR_MeshTopology_vertCapacity().

◆ vert_reserve()

void meshlib::MeshTopology::vert_reserve ( newCapacity:usize )

sets the capacity of vertices vector Generated from method MR::MeshTopology::vertReserve.

Calls MR_MeshTopology_vertReserve().

◆ vert_resize()

void meshlib::MeshTopology::vert_resize ( newSize:usize )

explicitly increases the size of vertices vector Generated from method MR::MeshTopology::vertResize.

Calls MR_MeshTopology_vertResize().

◆ vert_resize_with_reserve()

void meshlib::MeshTopology::vert_resize_with_reserve ( newSize:usize )

explicitly increases the size of vertices vector, doubling the current capacity if it was not enough Generated from method MR::MeshTopology::vertResizeWithReserve.

Calls MR_MeshTopology_vertResizeWithReserve().

◆ vert_size()

auto meshlib::MeshTopology::vert_size ( ) const -> usize

returns the number of vertex records including invalid ones Generated from method MR::MeshTopology::vertSize.

Calls MR_MeshTopology_vertSize().

◆ write()

void meshlib::MeshTopology::write ( s:&mut meshlib::std_ostream ) const

saves in binary stream Generated from method MR::MeshTopology::write.

Calls MR_MeshTopology_write().


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