OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::anonymous_namespace{TextureDisplacement.cpp}::UnionFind Struct Reference
Collaboration diagram for Slic3r::anonymous_namespace{TextureDisplacement.cpp}::UnionFind:

Public Member Functions

 UnionFind (size_t n)
int find (int x)
void unite (int a, int b)

Public Attributes

std::vector< int > parent

Detailed Description

Constructor & Destructor Documentation

◆ UnionFind()

Slic3r::anonymous_namespace{TextureDisplacement.cpp}::UnionFind::UnionFind ( size_t n)
inlineexplicit
894: parent(n) { std::iota(parent.begin(), parent.end(), 0); }
std::vector< int > parent
Definition TextureDisplacement.cpp:893

References parent.

Member Function Documentation

◆ find()

int Slic3r::anonymous_namespace{TextureDisplacement.cpp}::UnionFind::find ( int x)
inline
896 {
897 while (parent[size_t(x)] != x) {
898 parent[size_t(x)] = parent[size_t(parent[size_t(x)])]; // path halving
899 x = parent[size_t(x)];
900 }
901 return x;
902 }

References parent.

Referenced by Slic3r::anonymous_namespace{TextureDisplacement.cpp}::chart_is_flattenable(), and unite().

Here is the caller graph for this function:

◆ unite()

void Slic3r::anonymous_namespace{TextureDisplacement.cpp}::UnionFind::unite ( int a,
int b )
inline
904 {
905 a = find(a);
906 b = find(b);
907 if (a != b)
908 parent[size_t(b)] = a;
909 }
int find(int x)
Definition TextureDisplacement.cpp:895

References find(), and parent.

Referenced by Slic3r::anonymous_namespace{TextureDisplacement.cpp}::chart_is_flattenable().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ parent

std::vector<int> Slic3r::anonymous_namespace{TextureDisplacement.cpp}::UnionFind::parent

Referenced by UnionFind(), find(), and unite().


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