MCPcopy Create free account
hub / github.com/colmap/colmap / ExtractFaceRegions

Function ExtractFaceRegions

src/colmap/mvs/texture_mapping.cc:403–437  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

401}
402
403std::vector<FaceRegion> ExtractFaceRegions(
404 const std::vector<int>& view_per_face,
405 const FaceAdjacencyMap& adjacency,
406 const size_t num_faces) {
407 std::vector<bool> visited(num_faces, false);
408 std::vector<FaceRegion> regions;
409
410 for (size_t fi = 0; fi < num_faces; ++fi) {
411 if (visited[fi] || view_per_face[fi] < 0) continue;
412
413 FaceRegion region;
414 region.view_id = view_per_face[fi];
415
416 std::queue<size_t> queue;
417 queue.push(fi);
418 visited[fi] = true;
419
420 while (!queue.empty()) {
421 const size_t current = queue.front();
422 queue.pop();
423 region.face_ids.push_back(current);
424
425 for (const size_t ni : adjacency[current]) {
426 if (!visited[ni] && view_per_face[ni] == region.view_id) {
427 visited[ni] = true;
428 queue.push(ni);
429 }
430 }
431 }
432
433 regions.push_back(std::move(region));
434 }
435
436 return regions;
437}
438
439std::vector<RegionProjection> ComputeRegionProjections(
440 const PlyMesh& mesh,

Callers 1

MeshTextureMappingFunction · 0.85

Calls 1

emptyMethod · 0.80

Tested by

no test coverage detected