MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::BaseUnionFind_MR_UndirectedEdgeId Struct Reference

base of union-find data structures: stores only the parent forest and the operations that depend on it alone, so it is shared by the sequential UnionFind and the ParallelUnionFind More...

Inheritance diagram for meshlib::BaseUnionFind_MR_UndirectedEdgeId:

Public Member Functions

auto assign_from_another (_other:&meshlib::BaseUnionFind_MR_UndirectedEdgeId) -> &mut meshlib::BaseUnionFind_MR_UndirectedEdgeId
auto size () const -> usize
void reset (size:usize)
auto add () -> meshlib::UndirectedEdgeId
auto unite_unbalanced (first:meshlib::UndirectedEdgeId, second:meshlib::UndirectedEdgeId) -> meshlib::Owned< meshlib::std_pair_MR_UndirectedEdgeId_bool >
auto united (first:meshlib::UndirectedEdgeId, second:meshlib::UndirectedEdgeId) -> bool
auto is_root (a:meshlib::UndirectedEdgeId) const -> bool
auto parent (a:meshlib::UndirectedEdgeId) const -> meshlib::UndirectedEdgeId
auto find (a:meshlib::UndirectedEdgeId) -> meshlib::UndirectedEdgeId
auto find_update_range (a:meshlib::UndirectedEdgeId, begin:meshlib::UndirectedEdgeId, end:meshlib::UndirectedEdgeId) -> meshlib::UndirectedEdgeId
auto roots () -> &meshlib::UndirectedEdgeMap
auto parents () const -> &meshlib::UndirectedEdgeMap

Static Public Member Functions

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

base of union-find data structures: stores only the parent forest and the operations that depend on it alone, so it is shared by the sequential UnionFind and the ParallelUnionFind

Template Parameters
Iis the identifier of a set's element, e.g. FaceId

Generated from class MR::BaseUnionFind<MR::UndirectedEdgeId>. Derived classes: Direct: (non-virtual) MR::UnionFind<MR::UndirectedEdgeId>

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

Member Function Documentation

◆ add()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::add ( ) -> meshlib::UndirectedEdgeId

adds new element in its own disjoint set, returns its identifier Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::add.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_add().

◆ assign_from_another()

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

Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::operator=.

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

◆ construct_from_another()

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

Generated from constructor MR::BaseUnionFind<MR::UndirectedEdgeId>::BaseUnionFind.

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

◆ find()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::find ( a:meshlib::UndirectedEdgeId ) -> meshlib::UndirectedEdgeId

finds the root of the set containing given element with optimizing data structure updates Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::find.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_find().

◆ find_update_range()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::find_update_range ( a:meshlib::UndirectedEdgeId ,
begin:meshlib::UndirectedEdgeId ,
end:meshlib::UndirectedEdgeId  ) -> meshlib::UndirectedEdgeId

finds the root of the set containing given element with optimizing data structure in the range [begin, end) Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::findUpdateRange.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_findUpdateRange().

◆ is_root()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::is_root ( a:meshlib::UndirectedEdgeId ) const -> bool

returns true if given element is the root of some set Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::isRoot.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_isRoot().

◆ new()

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

Constructs an empty (default-constructed) instance.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_DefaultConstruct().

◆ parent()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::parent ( a:meshlib::UndirectedEdgeId ) const -> meshlib::UndirectedEdgeId

return parent element of this element, which is equal to given element only for set's root Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::parent.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_parent().

◆ parents()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::parents ( ) const -> &meshlib::UndirectedEdgeMap

gets the parents of all elements as is Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::parents.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_parents().

◆ reset()

void meshlib::BaseUnionFind_MR_UndirectedEdgeId::reset ( size:usize )

resets union-find to represent given number of elements, each element is the only one in its disjoint set Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::reset.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_reset().

◆ roots()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::roots ( ) -> &meshlib::UndirectedEdgeMap

sets the root of corresponding set as the parent of each element, then returns the vector Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::roots.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_roots().

◆ size()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::size ( ) const -> usize

returns the number of elements in union-find Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::size.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_size().

◆ unite_unbalanced()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::unite_unbalanced ( first:meshlib::UndirectedEdgeId ,
second:meshlib::UndirectedEdgeId  ) -> meshlib::Owned< meshlib::std_pair_MR_UndirectedEdgeId_bool >

unites the two sets containing given elements WITHOUT balancing by set size (BaseUnionFind keeps no sizes): it simply attaches one set's root under the other's, so chained calls can build taller trees. Prefer UnionFind::unite, which selects the new root by set size, when many unions follow one another.

Returns
first: new common root, second: true if the union was done (false if already in one set) Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::uniteUnbalanced.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_uniteUnbalanced().

◆ united()

auto meshlib::BaseUnionFind_MR_UndirectedEdgeId::united ( first:meshlib::UndirectedEdgeId ,
second:meshlib::UndirectedEdgeId  ) -> bool

returns true if given two elements are from one set Generated from method MR::BaseUnionFind<MR::UndirectedEdgeId>::united.

Calls MR_BaseUnionFind_MR_UndirectedEdgeId_united().


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