AliceVision
Photogrammetric Computer Vision Framework
ExpansionHistory.hpp
1 // This file is part of the AliceVision project.
2 // Copyright (c) 2024 AliceVision contributors.
3 // This Source Code Form is subject to the terms of the Mozilla Public License,
4 // v. 2.0. If a copy of the MPL was not distributed with this file,
5 // You can obtain one at https://mozilla.org/MPL/2.0/.
6 
7 #pragma once
8 
9 #include <aliceVision/types.hpp>
10 #include <aliceVision/sfmData/SfMData.hpp>
11 #include <aliceVision/track/Track.hpp>
12 
13 namespace aliceVision {
14 namespace sfm {
15 
17 {
18 public:
19  using sptr = std::shared_ptr<ExpansionHistory>;
20 
21 public:
23 
29  bool initialize(const sfmData::SfMData & sfmData);
30 
36  bool beginEpoch(const sfmData::SfMData & sfmData);
37 
38 
44  void endEpoch(sfmData::SfMData & sfmData, const std::set<IndexT> & selectedViews);
45 
50  const size_t getEpoch() const
51  {
52  return _epoch;
53  }
54 
59  void saveState(const sfmData::SfMData & sfmData);
60 
66  const std::vector<std::pair<size_t, double>> & getFocalHistory(IndexT intrinsicId)
67  {
68  return _focalHistory[intrinsicId];
69  }
70 
75  void debrief(const sfmData::SfMData & sfmData) const;
76 
77 private:
78  // History of focals per intrinsics
79  std::map<IndexT, std::vector<std::pair<size_t, double>>> _focalHistory;
80 
81  // History of added views
82  std::vector<std::set<IndexT>> _addedViews;
83 
84  // History of removed views
85  std::vector<std::set<IndexT>> _removedViews;
86 
87  // epoch ID
88  std::size_t _epoch = 0;
89 };
90 
91 } // namespace sfm
92 } // namespace aliceVision
93 
aliceVision::sfm::ExpansionHistory::saveState
void saveState(const sfmData::SfMData &sfmData)
Definition: ExpansionHistory.cpp:77
aliceVision::sfm::ExpansionHistory::getFocalHistory
const std::vector< std::pair< size_t, double > > & getFocalHistory(IndexT intrinsicId)
Definition: ExpansionHistory.hpp:66
aliceVision::sfm::ExpansionHistory::debrief
void debrief(const sfmData::SfMData &sfmData) const
Definition: ExpansionHistory.cpp:103
aliceVision::sfm::ExpansionHistory
Definition: ExpansionHistory.hpp:16
aliceVision
Definition: checkerDetector.cpp:32
aliceVision::sfm::ExpansionHistory::endEpoch
void endEpoch(sfmData::SfMData &sfmData, const std::set< IndexT > &selectedViews)
Terminate an iteration.
Definition: ExpansionHistory.cpp:53
aliceVision::sfmData::SfMData
SfMData container Store structure and camera properties.
Definition: SfMData.hpp:75
aliceVision::sfm::ExpansionHistory::beginEpoch
bool beginEpoch(const sfmData::SfMData &sfmData)
Initialize an iteration.
Definition: ExpansionHistory.cpp:47
aliceVision::sfm::ExpansionHistory::initialize
bool initialize(const sfmData::SfMData &sfmData)
initialize object
Definition: ExpansionHistory.cpp:20
aliceVision::sfm::ExpansionHistory::getEpoch
const size_t getEpoch() const
get the iteration id
Definition: ExpansionHistory.hpp:50