MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / label_connected_components

Method label_connected_components

tools/Wires/Misc/SymmetryOperators.cpp:262–286  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

260//}
261
262VectorI SymmetryOperators::label_connected_components(size_t num_entries,
263 const SymmetryOperators::SymmetryConnectivity& connectivity) {
264 size_t count = 0;
265 VectorI components = VectorI::Ones(num_entries) * -1;
266 for (size_t i=0; i<num_entries; i++) {
267 if (components[i] >= 0) continue;
268
269 std::queue<size_t> Q;
270 Q.push(i);
271 components[i] = count;
272
273 while (!Q.empty()) {
274 size_t curr = Q.front();
275 Q.pop();
276 for (auto neighbor : connectivity[curr]) {
277 if (components[neighbor] == -1) {
278 Q.push(neighbor);
279 components[neighbor] = count;
280 }
281 }
282 }
283 count++;
284 }
285 return components;
286}
287

Callers

nothing calls this directly

Calls 3

pushMethod · 0.80
popMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected