43 reconstructions_ = std::move(other.reconstructions_);
49 reconstructions_ = std::move(other.reconstructions_);
57 return *reconstructions_.at(idx);
61 return *reconstructions_.at(idx);
65 const size_t idx =
Size();
71 CHECK_LT(idx, reconstructions_.size());
72 reconstructions_.erase(reconstructions_.begin() + idx);
78 const size_t idx =
Add();
79 reconstructions_[idx]->Read(
path);
85 std::vector<std::pair<size_t, size_t>> recon_sizes(reconstructions_.size());
86 for (
size_t i = 0; i < reconstructions_.size(); ++i) {
87 recon_sizes[i] =
std::make_pair(i, reconstructions_[i]->NumPoints3D());
89 std::sort(recon_sizes.begin(), recon_sizes.end(),
90 [](
const std::pair<size_t, size_t>& first,
91 const std::pair<size_t, size_t>& second) {
92 return first.second > second.second;
95 for (
size_t i = 0; i < reconstructions_.size(); ++i) {
98 reconstructions_[recon_sizes[i].first]->Write(reconstruction_path);
99 if (options !=
nullptr) {
void Write(const std::string &path) const
ReconstructionManager & operator=(ReconstructionManager &&other)
const Reconstruction & Get(const size_t idx) const
void Delete(const size_t idx)
size_t Read(const std::string &path)
void Write(const std::string &path, const OptionManager *options) const
CLOUDVIEWER_HOST_DEVICE Pair< First, Second > make_pair(const First &_first, const Second &_second)
static const std::string path
void CreateDirIfNotExists(const std::string &path)
std::string JoinPaths(T const &... paths)
std::string to_string(const T &n)