MCPcopy Create free account
hub / github.com/city-super/Octree-GS / selectCamerasSimpleDist

Method selectCamerasSimpleDist

SIBR_viewers/src/core/view/IBRBasicUtils.cpp:23–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21 }
22
23 std::vector<uint> IBRBasicUtils::selectCamerasSimpleDist(const std::vector<InputCamera::Ptr>& cams, const sibr::Camera & eye, uint count)
24 {
25 std::vector<uint> warped_img_id;
26 std::multimap<float, uint> dist; // distance wise closest input cameras
27
28 for (uint i = 0; i < cams.size(); ++i)
29 {
30 if (cams.at(i)->isActive())
31 {
32 float d = sibr::distance(cams[i]->position(), eye.position());
33 float a = sibr::dot(cams[i]->dir(), eye.dir());
34 if (a > 0.707) // cameras with 45 degrees
35 dist.insert(std::make_pair(d, i)); // sort distances in increasing order
36 }
37 }
38
39 std::multimap<float, uint>::const_iterator d_it(dist.begin());
40 for (uint i = 0; d_it != dist.end() && i < count; ++d_it, ++i)
41 warped_img_id.push_back(d_it->second);
42
43 SIBR_ASSERT(warped_img_id.size() <= count);
44
45 return warped_img_id;
46 }
47
48 std::vector<uint> IBRBasicUtils::selectCamerasAngleWeight(const std::vector<InputCamera::Ptr>& cams, const sibr::Camera & eye, uint count)
49 {

Callers

nothing calls this directly

Calls 11

distanceFunction · 0.85
atMethod · 0.80
insertMethod · 0.80
push_backMethod · 0.80
dotFunction · 0.50
sizeMethod · 0.45
isActiveMethod · 0.45
positionMethod · 0.45
dirMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected