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...
Public Member Functions | |
| auto | assign_from_another (_other:&meshlib::BaseUnionFind_MR_VertId) -> &mut meshlib::BaseUnionFind_MR_VertId |
| auto | size () const -> usize |
| void | reset (size:usize) |
| auto | add () -> meshlib::VertId |
| auto | unite_unbalanced (first:meshlib::VertId, second:meshlib::VertId) -> meshlib::Owned< meshlib::std_pair_MR_VertId_bool > |
| auto | united (first:meshlib::VertId, second:meshlib::VertId) -> bool |
| auto | is_root (a:meshlib::VertId) const -> bool |
| auto | parent (a:meshlib::VertId) const -> meshlib::VertId |
| auto | find (a:meshlib::VertId) -> meshlib::VertId |
| auto | find_update_range (a:meshlib::VertId, begin:meshlib::VertId, end:meshlib::VertId) -> meshlib::VertId |
| auto | roots () -> &meshlib::VertMap |
| auto | parents () const -> &meshlib::VertMap |
Static Public Member Functions | |
| static auto | new () -> meshlib::Owned< meshlib::BaseUnionFind_MR_VertId > |
| static auto | construct_from_another (_other:&meshlib::BaseUnionFind_MR_VertId) -> meshlib::Owned< meshlib::BaseUnionFind_MR_VertId > |
| 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 |
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
| I | is the identifier of a set's element, e.g. FaceId |
Generated from class MR::BaseUnionFind<MR::VertId>. Derived classes: Direct: (non-virtual) MR::UnionFind<MR::VertId>
Generated from class MR::BaseUnionFind<MR::VertId>. Heap-allocated instances are held in Owned<BaseUnionFind_MR_VertId>.
| auto meshlib::BaseUnionFind_MR_VertId::add | ( | ) | -> meshlib::VertId |
adds new element in its own disjoint set, returns its identifier Generated from method MR::BaseUnionFind<MR::VertId>::add.
Calls MR_BaseUnionFind_MR_VertId_add().
| auto meshlib::BaseUnionFind_MR_VertId::assign_from_another | ( | _other:&meshlib::BaseUnionFind_MR_VertId | ) | -> &mut meshlib::BaseUnionFind_MR_VertId |
Generated from method MR::BaseUnionFind<MR::VertId>::operator=.
Calls MR_BaseUnionFind_MR_VertId_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.
|
static |
Generated from constructor MR::BaseUnionFind<MR::VertId>::BaseUnionFind.
Calls MR_BaseUnionFind_MR_VertId_ConstructFromAnother(). The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object.
| auto meshlib::BaseUnionFind_MR_VertId::find | ( | a:meshlib::VertId | ) | -> meshlib::VertId |
finds the root of the set containing given element with optimizing data structure updates Generated from method MR::BaseUnionFind<MR::VertId>::find.
Calls MR_BaseUnionFind_MR_VertId_find().
| auto meshlib::BaseUnionFind_MR_VertId::find_update_range | ( | a:meshlib::VertId | , |
| begin:meshlib::VertId | , | ||
| end:meshlib::VertId | ) -> meshlib::VertId |
finds the root of the set containing given element with optimizing data structure in the range [begin, end) Generated from method MR::BaseUnionFind<MR::VertId>::findUpdateRange.
Calls MR_BaseUnionFind_MR_VertId_findUpdateRange().
| auto meshlib::BaseUnionFind_MR_VertId::is_root | ( | a:meshlib::VertId | ) | const -> bool |
returns true if given element is the root of some set Generated from method MR::BaseUnionFind<MR::VertId>::isRoot.
Calls MR_BaseUnionFind_MR_VertId_isRoot().
|
static |
Constructs an empty (default-constructed) instance.
Calls MR_BaseUnionFind_MR_VertId_DefaultConstruct().
| auto meshlib::BaseUnionFind_MR_VertId::parent | ( | a:meshlib::VertId | ) | const -> meshlib::VertId |
return parent element of this element, which is equal to given element only for set's root Generated from method MR::BaseUnionFind<MR::VertId>::parent.
Calls MR_BaseUnionFind_MR_VertId_parent().
| auto meshlib::BaseUnionFind_MR_VertId::parents | ( | ) | const -> &meshlib::VertMap |
gets the parents of all elements as is Generated from method MR::BaseUnionFind<MR::VertId>::parents.
Calls MR_BaseUnionFind_MR_VertId_parents().
| void meshlib::BaseUnionFind_MR_VertId::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::VertId>::reset.
Calls MR_BaseUnionFind_MR_VertId_reset().
| auto meshlib::BaseUnionFind_MR_VertId::roots | ( | ) | -> &meshlib::VertMap |
sets the root of corresponding set as the parent of each element, then returns the vector Generated from method MR::BaseUnionFind<MR::VertId>::roots.
Calls MR_BaseUnionFind_MR_VertId_roots().
| auto meshlib::BaseUnionFind_MR_VertId::size | ( | ) | const -> usize |
returns the number of elements in union-find Generated from method MR::BaseUnionFind<MR::VertId>::size.
Calls MR_BaseUnionFind_MR_VertId_size().
| auto meshlib::BaseUnionFind_MR_VertId::unite_unbalanced | ( | first:meshlib::VertId | , |
| second:meshlib::VertId | ) -> meshlib::Owned< meshlib::std_pair_MR_VertId_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.
Calls MR_BaseUnionFind_MR_VertId_uniteUnbalanced().
| auto meshlib::BaseUnionFind_MR_VertId::united | ( | first:meshlib::VertId | , |
| second:meshlib::VertId | ) -> bool |
returns true if given two elements are from one set Generated from method MR::BaseUnionFind<MR::VertId>::united.
Calls MR_BaseUnionFind_MR_VertId_united().