Skip to content

Commit c295be9

Browse files
authored
Enable C++17 filesystem in the future (#5921)
* Enable C++17 filesystem * Fix format complaint * Fix ubuntu build error * Fix apps build error * Fix format complaint * Switch Ubuntu 23.04 to C++17 * Revert doc/tutorials and outofcore * Revert examples/outofcore * Revert test/outofcore * Revert recognition * Fix apps/face_detection build error * Address review * Address more review
1 parent eb6bdd7 commit c295be9

File tree

54 files changed

+523
-223
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+523
-223
lines changed

apps/3d_rec_framework/include/pcl/apps/3d_rec_framework/pc_source/mesh_source.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class MeshSource : public Source<PointInT> {
8181
loadOrGenerate(std::string& dir, std::string& model_path, ModelT& model)
8282
{
8383
const std::string pathmodel = dir + '/' + model.class_ + '/' + model.id_;
84-
bf::path trained_dir = pathmodel;
84+
pcl_fs::path trained_dir = pathmodel;
8585

8686
model.views_.reset(new std::vector<pcl::PointCloud<pcl::PointXYZ>::Ptr>);
8787
model.poses_.reset(
@@ -90,12 +90,12 @@ class MeshSource : public Source<PointInT> {
9090
model.assembled_.reset(new pcl::PointCloud<pcl::PointXYZ>);
9191
uniform_sampling(model_path, 100000, *model.assembled_, model_scale_);
9292

93-
if (bf::exists(trained_dir)) {
93+
if (pcl_fs::exists(trained_dir)) {
9494
// load views, poses and self-occlusions
9595
std::vector<std::string> view_filenames;
96-
for (const auto& dir_entry : bf::directory_iterator(trained_dir)) {
96+
for (const auto& dir_entry : pcl_fs::directory_iterator(trained_dir)) {
9797
// check if its a directory, then get models in it
98-
if (!(bf::is_directory(dir_entry))) {
98+
if (!(pcl_fs::is_directory(dir_entry))) {
9999
// check that it is a ply file and then add, otherwise ignore..
100100
std::vector<std::string> strs;
101101
std::vector<std::string> strs_;

apps/3d_rec_framework/include/pcl/apps/3d_rec_framework/pipeline/impl/global_nn_classifier.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pcl::rec_3d_framework::GlobalNNPipeline<Distance, PointInT, FeatureT>::
1717
std::string path =
1818
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
1919

20-
for (const auto& dir_entry : bf::directory_iterator(path)) {
20+
for (const auto& dir_entry : pcl_fs::directory_iterator(path)) {
2121
std::string file_name = (dir_entry.path().filename()).string();
2222

2323
std::vector<std::string> strs;
@@ -177,9 +177,9 @@ pcl::rec_3d_framework::GlobalNNPipeline<Distance, PointInT, FeatureT>::initializ
177177
std::string path =
178178
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
179179

180-
bf::path desc_dir = path;
181-
if (!bf::exists(desc_dir))
182-
bf::create_directory(desc_dir);
180+
pcl_fs::path desc_dir = path;
181+
if (!pcl_fs::exists(desc_dir))
182+
pcl_fs::create_directory(desc_dir);
183183

184184
const std::string path_view = path + "/view_" + std::to_string(v) + ".pcd";
185185
pcl::io::savePCDFileBinary(path_view, *processed);

apps/3d_rec_framework/include/pcl/apps/3d_rec_framework/pipeline/impl/global_nn_recognizer_crh.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ pcl::rec_3d_framework::GlobalNNCRHRecognizer<Distance, PointInT, FeatureT>::
9191
std::string path =
9292
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
9393

94-
for (const auto& dir_entry : bf::directory_iterator(path)) {
94+
for (const auto& dir_entry : pcl_fs::directory_iterator(path)) {
9595
std::string file_name = (dir_entry.path().filename()).string();
9696

9797
std::vector<std::string> strs;
@@ -412,9 +412,9 @@ pcl::rec_3d_framework::GlobalNNCRHRecognizer<Distance, PointInT, FeatureT>::init
412412
std::string path =
413413
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
414414

415-
bf::path desc_dir = path;
416-
if (!bf::exists(desc_dir))
417-
bf::create_directory(desc_dir);
415+
pcl_fs::path desc_dir = path;
416+
if (!pcl_fs::exists(desc_dir))
417+
pcl_fs::create_directory(desc_dir);
418418

419419
const std::string path_view = path + "/view_" + std::to_string(v) + ".pcd";
420420
pcl::io::savePCDFileBinary(path_view, *processed);

apps/3d_rec_framework/include/pcl/apps/3d_rec_framework/pipeline/impl/global_nn_recognizer_cvfh.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ pcl::rec_3d_framework::GlobalNNCVFHRecognizer<Distance, PointInT, FeatureT>::
5151
const std::string dir = path + "/roll_trans_" + std::to_string(view_id) + '_' +
5252
std::to_string(d_id) + ".txt";
5353

54-
const bf::path file_path = dir;
55-
if (bf::exists(file_path)) {
54+
const pcl_fs::path file_path = dir;
55+
if (pcl_fs::exists(file_path)) {
5656
PersistenceUtils::readMatrixFromFile(dir, pose_matrix);
5757
return true;
5858
}
@@ -108,7 +108,7 @@ pcl::rec_3d_framework::GlobalNNCVFHRecognizer<Distance, PointInT, FeatureT>::
108108
std::string path =
109109
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
110110

111-
for (const auto& dir_entry : bf::directory_iterator(path)) {
111+
for (const auto& dir_entry : pcl_fs::directory_iterator(path)) {
112112
std::string file_name = (dir_entry.path().filename()).string();
113113

114114
std::vector<std::string> strs;
@@ -608,9 +608,9 @@ pcl::rec_3d_framework::GlobalNNCVFHRecognizer<Distance, PointInT, FeatureT>::ini
608608
std::string path =
609609
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
610610

611-
bf::path desc_dir = path;
612-
if (!bf::exists(desc_dir))
613-
bf::create_directory(desc_dir);
611+
pcl_fs::path desc_dir = path;
612+
if (!pcl_fs::exists(desc_dir))
613+
pcl_fs::create_directory(desc_dir);
614614

615615
const std::string path_view = path + "/view_" + std::to_string(v) + ".pcd";
616616
pcl::io::savePCDFileBinary(path_view, *processed);

apps/3d_rec_framework/include/pcl/apps/3d_rec_framework/pipeline/impl/local_recognizer.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pcl::rec_3d_framework::LocalRecognitionPipeline<Distance, PointInT, FeatureT>::
2020
std::string path =
2121
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
2222

23-
for (const auto& dir_entry : bf::directory_iterator(path)) {
23+
for (const auto& dir_entry : pcl_fs::directory_iterator(path)) {
2424
std::string file_name = (dir_entry.path().filename()).string();
2525

2626
std::vector<std::string> strs;
@@ -150,9 +150,9 @@ pcl::rec_3d_framework::LocalRecognitionPipeline<Distance, PointInT, FeatureT>::
150150
std::string path =
151151
source_->getModelDescriptorDir(models->at(i), training_dir_, descr_name_);
152152

153-
bf::path desc_dir = path;
154-
if (!bf::exists(desc_dir))
155-
bf::create_directory(desc_dir);
153+
pcl_fs::path desc_dir = path;
154+
if (!pcl_fs::exists(desc_dir))
155+
pcl_fs::create_directory(desc_dir);
156156

157157
const std::string path_view = path = "/view_" + std::to_string(v) + ".pcd";
158158
pcl::io::savePCDFileBinary(path_view, *processed);

apps/3d_rec_framework/include/pcl/apps/3d_rec_framework/utils/persistence_utils.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
#include <pcl/io/pcd_io.h>
22

33
#include <boost/algorithm/string.hpp>
4+
5+
#if (__cplusplus >= 201703L)
6+
#include <filesystem>
7+
namespace pcl_fs = std::filesystem;
8+
#else
49
#include <boost/filesystem.hpp>
10+
namespace pcl_fs = boost::filesystem;
11+
#endif
512

613
#include <fstream>
714

apps/3d_rec_framework/src/tools/local_recognition_mian_dataset.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@
2222
#include <flann/algorithms/dist.h>
2323

2424
void
25-
getScenesInDirectory(bf::path& dir,
25+
getScenesInDirectory(pcl_fs::path& dir,
2626
std::string& rel_path_so_far,
2727
std::vector<std::string>& relative_paths)
2828
{
2929
// list models in MODEL_FILES_DIR_ and return list
30-
for (const auto& dir_entry : bf::directory_iterator(dir)) {
30+
for (const auto& dir_entry : pcl_fs::directory_iterator(dir)) {
3131
// check if its a directory, then get models in it
32-
if (bf::is_directory(dir_entry)) {
32+
if (pcl_fs::is_directory(dir_entry)) {
3333
std::string so_far =
3434
rel_path_so_far + (dir_entry.path().filename()).string() + "/";
35-
bf::path curr_path = dir_entry.path();
35+
pcl_fs::path curr_path = dir_entry.path();
3636
getScenesInDirectory(curr_path, so_far, relative_paths);
3737
}
3838
else {
@@ -86,7 +86,7 @@ recognizeAndVisualize(
8686
{
8787

8888
// read mians scenes
89-
bf::path ply_files_dir = scenes_dir;
89+
pcl_fs::path ply_files_dir = scenes_dir;
9090
std::vector<std::string> files;
9191
std::string start;
9292
getScenesInDirectory(ply_files_dir, start, files);
@@ -223,18 +223,18 @@ recognizeAndVisualize(
223223
}
224224

225225
void
226-
getModelsInDirectory(bf::path& dir,
226+
getModelsInDirectory(pcl_fs::path& dir,
227227
std::string& rel_path_so_far,
228228
std::vector<std::string>& relative_paths,
229229
std::string& ext)
230230
{
231-
for (const auto& dir_entry : bf::directory_iterator(dir)) {
231+
for (const auto& dir_entry : pcl_fs::directory_iterator(dir)) {
232232
// check if its a directory, then get models in it
233-
if (bf::is_directory(dir_entry)) {
233+
if (pcl_fs::is_directory(dir_entry)) {
234234
std::string so_far =
235235
rel_path_so_far + (dir_entry.path().filename()).string() + "/";
236236

237-
bf::path curr_path = dir_entry.path();
237+
pcl_fs::path curr_path = dir_entry.path();
238238
getModelsInDirectory(curr_path, so_far, relative_paths, ext);
239239
}
240240
else {
@@ -315,16 +315,16 @@ main(int argc, char** argv)
315315
return -1;
316316
}
317317

318-
bf::path models_dir_path = path;
319-
if (!bf::exists(models_dir_path)) {
318+
pcl_fs::path models_dir_path = path;
319+
if (!pcl_fs::exists(models_dir_path)) {
320320
PCL_ERROR("Models dir path %s does not exist, use -models_dir [dir] option\n",
321321
path.c_str());
322322
return -1;
323323
}
324324
std::vector<std::string> files;
325325
std::string start;
326326
std::string ext = std::string("ply");
327-
bf::path dir = models_dir_path;
327+
pcl_fs::path dir = models_dir_path;
328328
getModelsInDirectory(dir, start, files, ext);
329329
assert(files.size() == 4);
330330

apps/in_hand_scanner/src/offline_integration.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,14 @@
4545
#include <pcl/io/pcd_io.h>
4646

4747
#include <boost/algorithm/string/case_conv.hpp>
48+
49+
#if (__cplusplus >= 201703L)
50+
#include <filesystem>
51+
namespace pcl_fs = std::filesystem;
52+
#else
4853
#include <boost/filesystem.hpp>
54+
namespace pcl_fs = boost::filesystem;
55+
#endif
4956

5057
#include <QApplication>
5158
#include <QFileDialog>
@@ -186,14 +193,14 @@ pcl::ihs::OfflineIntegration::getFilesFromDirectory(
186193
const std::string& extension,
187194
std::vector<std::string>& files) const
188195
{
189-
if (path_dir.empty() || !boost::filesystem::exists(path_dir)) {
196+
if (path_dir.empty() || !pcl_fs::exists(path_dir)) {
190197
std::cerr << "ERROR in offline_integration.cpp: Invalid path\n '" << path_dir
191198
<< "'\n";
192199
return (false);
193200
}
194201

195-
boost::filesystem::directory_iterator it_end;
196-
for (boost::filesystem::directory_iterator it(path_dir); it != it_end; ++it) {
202+
pcl_fs::directory_iterator it_end;
203+
for (pcl_fs::directory_iterator it(path_dir); it != it_end; ++it) {
197204
if (!is_directory(it->status()) &&
198205
boost::algorithm::to_upper_copy(it->path().extension().string()) ==
199206
boost::algorithm::to_upper_copy(extension)) {

apps/include/pcl/apps/face_detection/face_detection_apps_utils.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77

88
#pragma once
99

10+
#if (__cplusplus >= 201703L)
11+
#include <filesystem>
12+
namespace pcl_fs = std::filesystem;
13+
#else
14+
#include <boost/filesystem.hpp>
15+
namespace pcl_fs = boost::filesystem;
16+
#endif
17+
1018
namespace face_detection_apps_utils {
1119

1220
inline bool
@@ -65,18 +73,18 @@ sortFiles(const std::string& file1, const std::string& file2)
6573
}
6674

6775
inline void
68-
getFilesInDirectory(bf::path& dir,
76+
getFilesInDirectory(pcl_fs::path& dir,
6977
std::string& rel_path_so_far,
7078
std::vector<std::string>& relative_paths,
7179
std::string& ext)
7280
{
73-
for (const auto& dir_entry : bf::directory_iterator(dir)) {
81+
for (const auto& dir_entry : pcl_fs::directory_iterator(dir)) {
7482
// check if its a directory, then get models in it
75-
if (bf::is_directory(dir_entry)) {
83+
if (pcl_fs::is_directory(dir_entry)) {
7684
std::string so_far =
7785
rel_path_so_far + (dir_entry.path().filename()).string() + "/";
7886

79-
bf::path curr_path = dir_entry.path();
87+
pcl_fs::path curr_path = dir_entry.path();
8088
getFilesInDirectory(curr_path, so_far, relative_paths, ext);
8189
}
8290
else {

apps/include/pcl/apps/pcd_video_player.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@
4242
#include <pcl/point_cloud.h>
4343
#include <pcl/point_types.h>
4444

45+
#if (__cplusplus >= 201703L)
46+
#include <filesystem>
47+
namespace pcl_fs = std::filesystem;
48+
#else
4549
#include <boost/filesystem.hpp>
50+
namespace pcl_fs = boost::filesystem;
51+
#endif
4652

4753
#include <QMainWindow>
4854
#include <QMutex>
@@ -100,7 +106,7 @@ class PCDVideoPlayer : public QMainWindow {
100106
QString dir_;
101107

102108
std::vector<std::string> pcd_files_;
103-
std::vector<boost::filesystem::path> pcd_paths_;
109+
std::vector<pcl_fs::path> pcd_paths_;
104110

105111
/** \brief The current displayed frame */
106112
unsigned int current_frame_;

0 commit comments

Comments
 (0)