MeshLib Rust Docs
Loading...
Searching...
No Matches
meshlib::BaseUnionFind_MR_VertId 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_VertId:

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

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::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>.

Member Function Documentation

◆ add()

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().

◆ assign_from_another()

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.

◆ construct_from_another()

auto meshlib::BaseUnionFind_MR_VertId::construct_from_another ( _other:&meshlib::BaseUnionFind_MR_VertId ) -> meshlib::Owned< meshlib::BaseUnionFind_MR_VertId >
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.

◆ find()

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().

◆ find_update_range()

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().

◆ is_root()

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().

◆ new()

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

Constructs an empty (default-constructed) instance.

Calls MR_BaseUnionFind_MR_VertId_DefaultConstruct().

◆ parent()

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().

◆ parents()

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().

◆ reset()

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().

◆ roots()

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().

◆ size()

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().

◆ unite_unbalanced()

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.

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

Calls MR_BaseUnionFind_MR_VertId_uniteUnbalanced().

◆ united()

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().


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