From ba157ae2c29560088e18fe6f8767493e4ebf5880 Mon Sep 17 00:00:00 2001 From: han16nah Date: Thu, 10 Apr 2025 19:17:03 +0200 Subject: [PATCH 1/3] fix typo in CMakeLists.txt for data analytics mode --- src/dataanalytics/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dataanalytics/CMakeLists.txt b/src/dataanalytics/CMakeLists.txt index 9dabad629..b6c635b32 100644 --- a/src/dataanalytics/CMakeLists.txt +++ b/src/dataanalytics/CMakeLists.txt @@ -1,5 +1,5 @@ if(HELIOS_DATA_ANALYTICS) - target_include_directores( + target_include_directories( helios PUBLIC "." From cbaed6ae6d36172ac3e60ded95a35dc7927d0e42 Mon Sep 17 00:00:00 2001 From: han16nah Date: Fri, 11 Apr 2025 07:10:16 +0200 Subject: [PATCH 2/3] update documentation on debug mode --- doc/debug/DEBUG.md | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/doc/debug/DEBUG.md b/doc/debug/DEBUG.md index 8b53917ff..d06c7e88b 100644 --- a/doc/debug/DEBUG.md +++ b/doc/debug/DEBUG.md @@ -27,17 +27,10 @@ Cloud Library (PCL)](https://pointclouds.org/) bindings enabled. The following compilation flag is enough to achieve this: ``` --DPCL_BINDING=1 +--config-settings=cmake.build-type="Debug" --config-settings=cmake.define.HELIOS_PCL_BINDING=1 ``` -Alternatively, the PCL bindings can be disabled by means of specifying: - -``` --DPCL_BINDING=0 -``` - -However, explicitly disabling the PCL bindings should not be necessary since it -is the default option. +By default, PCL bindings are disabled. #### Simple demo @@ -144,10 +137,10 @@ certain bugs and situations when they are not the adequate tool. For this purpose, we have started working in a compilation mode that injects code into HELIOS++ to extract useful data that can be analyzed to compare, visualize, and quantify different scenes, platforms, and scanners. To enable these code -injections, the following compilation flag must be specified: +injections, the following compilation flags must be specified: ``` --DDATA_ANALYTICS=1 +--config-settings=cmake.build-type="Debug" --config-settings=cmake.define.HELIOS_DATA_ANALYTICS=1 ``` All the data analytics utilities detailed below require the previous flag to be @@ -169,7 +162,7 @@ Any pair of JSON report files can be compared with the python script at `scripts/debug/hda_diff_report.py`. Its syntax is simple: ``` -python3 scripts/debug/hda_diff_report.py +python scripts/debug/hda_diff_report.py ``` The resulting output warns about each difference between the two JSON reports @@ -189,7 +182,7 @@ compared with the python script at `scripts/debug/hda_simstep_plotter.py`. Its syntax is simple: ``` -python3 scripts/debug/hda_simstep_plotter +python scripts/debug/hda_simstep_plotter ``` The generated plots will be exported in the given output directory. They @@ -204,20 +197,20 @@ below. Note that the data analytics flag can be set to level 2: ``` --DDATA_ANALYTICS=2 +--config-settings=cmake.define.HELIOS_DATA_ANALYTICS=1 ``` Running this level of data analytics will lead to slower executions, but it will also record more information during simulation. This information will be available in the directory `helios_pulse_records`, including CSV files representing the values of the internal variables and one particular CSV that represents a point cloud with all the intersections for each elliptical footprint (`intensity_calc.csv`). The script `scripts/debug/hda_pulse_records_plotter.py` can be used to automatically generate figures representing the captured data such that: ``` -python3 scripts/debug/hda_pulse_records_plotter.py +python scripts/debug/hda_pulse_records_plotter.py ``` The generated plots will be exported in the given output directory. The first and second directories must point to a `helios_pulse_records` folder with its default structure and contents. Besides, the CSV point cloud can be transformed into a LAS/LAZ file using the `scripts/debug/hda_pulse_calc_intensity_csv_to_laz.sh` bash script such that: ``` -python3 scripts/debug/hda_pulse_calc_intensity_csv_to_laz.sh +python scripts/debug/hda_pulse_calc_intensity_csv_to_laz.sh ``` The generated LAS/LAZ file will use the LAS 1.4 format, including (x, y, z) coordinates and the different available values for each point (e.g., incidence angle, target area, cross-section, or the emitted and received powers). From 7febf93c656ff45b389d4697518be0e64fd51002 Mon Sep 17 00:00:00 2001 From: han16nah Date: Thu, 10 Jul 2025 15:41:29 +0200 Subject: [PATCH 3/3] make it compile with /bigobj --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c2450f268..2e4ee88e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,7 +142,10 @@ if(BUILD_PYTHON) find_package(Boost REQUIRED COMPONENTS python) add_library(_pyhelios MODULE) - + if(MSVC) + target_compile_options(helios PRIVATE /bigobj) + target_compile_options(_pyhelios PRIVATE /bigobj) + endif() target_link_libraries(_pyhelios PRIVATE helios