From a3917ac597575b07b0ee267a1ca451c514e7c6e8 Mon Sep 17 00:00:00 2001
From: Joaquim Casals <jcasals@iri.upc.edu>
Date: Tue, 18 Jun 2019 08:28:49 +0200
Subject: [PATCH] Correctly setting up optional building options and introduced
 params printing

---
 CMakeLists.txt                                 | 17 ++++++++++++-----
 .../vision/processor/processor_params_image.h  | 18 ++++++++++++++++++
 .../processor_tracker_feature_trifocal.h       | 10 ++++++++++
 include/vision/sensor/sensor_camera.h          |  9 +++++++++
 4 files changed, 49 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08890714e..6e84d5474 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,8 +48,18 @@ if(UNIX)
 endif(UNIX)
 
 
-#OPTION(BUILD_DOC "Build Documentation" OFF)
-OPTION(BUILD_TESTS "Build Unit tests" ON)
+IF(NOT BUILD_TESTS)
+  OPTION(BUILD_TESTS "Build Unit tests" ON)
+ENDIF(NOT BUILD_TESTS)
+
+IF(NOT BUILD_DEMOS)
+  OPTION(BUILD_DEMOS "Build Demos" OFF)
+ENDIF(NOT BUILD_DEMOS)
+
+IF(NOT BUILD_DOC)
+  OPTION(BUILD_DOC "Build Documentation" OFF)
+ENDIF(NOT BUILD_DOC)
+
 #############
 ## Testing ##
 #############
@@ -78,9 +88,6 @@ ENDIF()
 
 option(_WOLF_TRACE "Enable wolf tracing macro" ON)
 
-# option(BUILD_EXAMPLES "Build examples" OFF)
-set(BUILD_TESTS true)
-
 # Does this has any other interest
 # but for the examples ?
 # yes, for the tests !
diff --git a/include/vision/processor/processor_params_image.h b/include/vision/processor/processor_params_image.h
index 7497e1c41..47f82cfb9 100644
--- a/include/vision/processor/processor_params_image.h
+++ b/include/vision/processor/processor_params_image.h
@@ -30,6 +30,15 @@ struct ProcessorParamsTrackerFeatureImage : public ProcessorParamsTrackerFeature
         pixel_noise_std = _server.getParam<Scalar>(_unique_name + "/pixel_noise_std");
         pixel_noise_var = _server.getParam<Scalar>(_unique_name + "/pixel_noise_var");
     }
+    std::string print()
+    {
+        return "\n" + ProcessorParamsTrackerFeature::print()
+            + "yaml_file_params_vision_utils: " + yaml_file_params_vision_utils + "\n"
+            + "min_response_for_new_features: " + std::to_string(min_response_for_new_features) + "\n"
+            + "distance: " + std::to_string(distance) + "\n"
+            + "pixel_noise_std: " + std::to_string(pixel_noise_std) + "\n"
+            + "pixel_noise_var: " + std::to_string(pixel_noise_var) + "\n";
+    }
 };
 
 WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsTrackerLandmarkImage);
@@ -54,6 +63,15 @@ struct ProcessorParamsTrackerLandmarkImage : public ProcessorParamsTrackerLandma
         pixel_noise_std = _server.getParam<Scalar>(_unique_name + "/pixel_noise_std");
         pixel_noise_var = _server.getParam<Scalar>(_unique_name + "/pixel_noise_var");
     }
+    std::string print()
+    {
+        return "\n" + ProcessorParamsTrackerLandmark::print()
+            + "yaml_file_params_vision_utils: " + yaml_file_params_vision_utils + "\n"
+            + "min_response_for_new_features: " + std::to_string(min_response_for_new_features) + "\n"
+            + "distance: " + std::to_string(distance) + "\n"
+            + "pixel_noise_std: " + std::to_string(pixel_noise_std) + "\n"
+            + "pixel_noise_var: " + std::to_string(pixel_noise_var) + "\n";
+    }
 };
 }
 
diff --git a/include/vision/processor/processor_tracker_feature_trifocal.h b/include/vision/processor/processor_tracker_feature_trifocal.h
index 51e109cba..5053355af 100644
--- a/include/vision/processor/processor_tracker_feature_trifocal.h
+++ b/include/vision/processor/processor_tracker_feature_trifocal.h
@@ -38,6 +38,16 @@ struct ProcessorParamsTrackerFeatureTrifocal : public ProcessorParamsTrackerFeat
         pixel_noise_std = _server.getParam<Scalar>(_unique_name + "/pixel_noise_std");
         min_track_length_for_factor = _server.getParam<int>(_unique_name + "/min_track_length_for_factor");
     }
+    std::string print()
+    {
+        return "\n" + ProcessorParamsTrackerFeature::print()
+            + "yaml_file_params_vision_utils: " + yaml_file_params_vision_utils + "\n"
+            + "n_cells_h: " + std::to_string(n_cells_h) + "\n"
+            + "n_cells_v: " + std::to_string(n_cells_v) + "\n"
+            + "min_response_new_feature: " + std::to_string(min_response_new_feature) + "\n"
+            + "pixel_noise_std: " + std::to_string(pixel_noise_std) + "\n"
+            + "min_track_length_for_factor: " + std::to_string(min_track_length_for_factor) + "\n";
+    }
 };
 
 WOLF_PTR_TYPEDEFS(ProcessorTrackerFeatureTrifocal);
diff --git a/include/vision/sensor/sensor_camera.h b/include/vision/sensor/sensor_camera.h
index 1d448f577..8834c5f9d 100644
--- a/include/vision/sensor/sensor_camera.h
+++ b/include/vision/sensor/sensor_camera.h
@@ -30,6 +30,15 @@ struct IntrinsicsCamera : public IntrinsicsBase
         pinhole_model_raw = _server.getParam<Eigen::Vector4s>(_unique_name + "/pinhole_model_raw");
         pinhole_model_rectified = _server.getParam<Eigen::Vector4s>(_unique_name + "/pinhole_model_rectified");
         distortion = _server.getParam<Eigen::VectorXs>(_unique_name + "/distortion");
+    }
+    std::string print()
+    {
+        return "\n" + IntrinsicsBase::print()
+            + "width: " + std::to_string(width) + "\n"
+            + "height: " + std::to_string(height) + "\n"
+            + "pinhole: " + converter<std::string>::convert(pinhole_model_raw) + "\n"
+            + "pinhole: " + converter<std::string>::convert(pinhole_model_rectified) + "\n"
+            + "distortion: " + converter<std::string>::convert(distortion) + "\n";
     }
         virtual ~IntrinsicsCamera() = default;
 };
-- 
GitLab