diff --git a/apps/compare_trajectories/mandeye_compare_trajectories.cpp b/apps/compare_trajectories/mandeye_compare_trajectories.cpp index 588f219e..d1190b0f 100644 --- a/apps/compare_trajectories/mandeye_compare_trajectories.cpp +++ b/apps/compare_trajectories/mandeye_compare_trajectories.cpp @@ -708,7 +708,7 @@ void project_gui() for (Eigen::SparseMatrix::InnerIterator it(x, k); it; ++it) { h_x.push_back(it.value()); - std::cout << it.row() << " " << it.col() << " " << it.value() << std::endl; + std::cout << std::fixed << std::setprecision(6) << it.row() << " " << it.col() << " " << it.value() << std::endl; } } diff --git a/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp b/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp index 2c8fc8da..0d3ef806 100644 --- a/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp +++ b/apps/lidar_odometry_step_1/lidar_odometry_gui.cpp @@ -956,7 +956,7 @@ void project_gui() } if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Select all IMU *.csv and LiDAR *.laz files produced by MANDEYE saved in 'continousScanning_*' folder"); + ImGui::SetTooltip("Select folder containing IMU *.csv and LiDAR *.laz files produced by MANDEYE (e.g.: 'continousScanning_*')"); } if (step_1_done && !step_2_done) { diff --git a/apps/lidar_odometry_step_1/resource.rc b/apps/lidar_odometry_step_1/resource.rc index 3da62eee..1a74ec5f 100644 --- a/apps/lidar_odometry_step_1/resource.rc +++ b/apps/lidar_odometry_step_1/resource.rc @@ -20,8 +20,8 @@ IDI_ICON1 ICON "icon.ico" // VS_VERSION_INFO VERSIONINFO -FILEVERSION 0, 0, 9, 0 -PRODUCTVERSION 0, 0, 9, 0 +FILEVERSION 0, 0, 9, 2 +PRODUCTVERSION 0, 0, 9, 2 FILEFLAGSMASK 0x3fL FILEOS 0x40004 FILETYPE 0x1 @@ -32,11 +32,11 @@ BLOCK "040904B0" BEGIN VALUE "CompanyName", "Mandeye\0" VALUE "FileDescription", "HDMapping Step 1\0" -VALUE "FileVersion", "0.8.9\0" +VALUE "FileVersion", "0.9.2\0" VALUE "InternalName", "Odometry\0" VALUE "LegalCopyright", "(c) 2025 github.com/MapsHD/HDMapping\0" VALUE "OriginalFilename", "lidar_odometry_step_1.exe\0" -VALUE "ProductVersion", "0.8.9\0" +VALUE "ProductVersion", "0.9.2\0" VALUE "ProgramID", "github.com/MapsHD/HDMapping\0" VALUE "ProductName", "HDMapping\0" END diff --git a/apps/mandeye_mission_recorder_calibration/mandeye_mission_recorder_calibration.cpp b/apps/mandeye_mission_recorder_calibration/mandeye_mission_recorder_calibration.cpp index 7a50e13f..9dc43a7e 100644 --- a/apps/mandeye_mission_recorder_calibration/mandeye_mission_recorder_calibration.cpp +++ b/apps/mandeye_mission_recorder_calibration/mandeye_mission_recorder_calibration.cpp @@ -33,6 +33,8 @@ #include "resource.h" #endif +/////////////////////////////////////////////////////////////////////////////////// + std::string winTitle = std::string("MR calibration ") + HDMAPPING_VERSION_STRING; std::vector infoLines = { diff --git a/apps/mandeye_mission_recorder_calibration/resource.rc b/apps/mandeye_mission_recorder_calibration/resource.rc index e587ecab..ef2b9e31 100644 --- a/apps/mandeye_mission_recorder_calibration/resource.rc +++ b/apps/mandeye_mission_recorder_calibration/resource.rc @@ -20,8 +20,8 @@ IDI_ICON1 ICON "icon.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,9,0 - PRODUCTVERSION 0,0,9,0 + FILEVERSION 0,0,9,2 + PRODUCTVERSION 0,0,9,2 FILEFLAGSMASK 0x3fL FILEOS 0x40004 FILETYPE 0x1 @@ -32,11 +32,11 @@ BEGIN BEGIN VALUE "CompanyName", "Mandeye\0" VALUE "FileDescription", "HDMapping MR Calibration\0" - VALUE "FileVersion", "0.8.9\0" + VALUE "FileVersion", "0.9.2\0" VALUE "InternalName", "Mission Recorder Calibration\0" VALUE "LegalCopyright", "(c) 2025 github.com/MapsHD/HDMapping\0" VALUE "OriginalFilename", "mandeye_mission_recorder_calibration.exe\0" - VALUE "ProductVersion", "0.8.9\0" + VALUE "ProductVersion", "0.9.2\0" VALUE "ProgramID", "github.com/MapsHD/HDMapping\0" VALUE "ProductName", "HDMapping\0" END diff --git a/apps/mandeye_raw_data_viewer/CMakeLists.txt b/apps/mandeye_raw_data_viewer/CMakeLists.txt index 799d5c9f..ca00c883 100644 --- a/apps/mandeye_raw_data_viewer/CMakeLists.txt +++ b/apps/mandeye_raw_data_viewer/CMakeLists.txt @@ -2,12 +2,22 @@ cmake_minimum_required(VERSION 4.0.0) project(mandeye_raw_data_viewer) -add_executable( - mandeye_raw_data_viewer +# Source files +set(SOURCES mandeye_raw_data_viewer.cpp ../lidar_odometry_step_1/lidar_odometry_utils.cpp ../lidar_odometry_step_1/lidar_odometry_gui_utils.cpp ../lidar_odometry_step_1/lidar_odometry_utils_optimizers.cpp + "../../core/src/utils.cpp" +) + +# Windows: add resource file +if(WIN32) + list(APPEND SOURCES resource.rc) +endif() + +add_executable( + mandeye_raw_data_viewer ${SOURCES} ) target_include_directories( diff --git a/apps/mandeye_raw_data_viewer/icon.ico b/apps/mandeye_raw_data_viewer/icon.ico new file mode 100644 index 00000000..710913e3 Binary files /dev/null and b/apps/mandeye_raw_data_viewer/icon.ico differ diff --git a/apps/mandeye_raw_data_viewer/mandeye_raw_data_viewer.cpp b/apps/mandeye_raw_data_viewer/mandeye_raw_data_viewer.cpp index 9f4e7e39..e33528b1 100644 --- a/apps/mandeye_raw_data_viewer/mandeye_raw_data_viewer.cpp +++ b/apps/mandeye_raw_data_viewer/mandeye_raw_data_viewer.cpp @@ -9,6 +9,8 @@ #include #include +#include + #include #include @@ -27,32 +29,34 @@ #include +#ifdef _WIN32 + #include + #include // <-- Required for ShellExecuteA + #include "resource.h" +#endif + +/////////////////////////////////////////////////////////////////////////////////// + +std::string winTitle = std::string("Raw data viewer ") + HDMAPPING_VERSION_STRING; + +std::vector infoLines = { + "This program is optional step in MANDEYE process", + "", + "It analyzes LiDAR data created by Mission Recorder", + "Next step will be to load data with 'lidar_odometry_step_1' app" +}; + +//App specific shortcuts (using empty dummy until needed) +std::vector appShortcuts(80, { "", "", "" }); + + #define SAMPLE_PERIOD (1.0 / 200.0) namespace fs = std::filesystem; -const unsigned int window_width = 800; -const unsigned int window_height = 600; -double camera_ortho_xy_view_zoom = 10; -double camera_ortho_xy_view_shift_x = 0.0; -double camera_ortho_xy_view_shift_y = 0.0; -double camera_mode_ortho_z_center_h = 0.0; -double camera_ortho_xy_view_rotation_angle_deg = 0; -bool is_ortho = false; -bool show_axes = true; ImVec4 clear_color = ImVec4(0.8f, 0.8f, 0.8f, 1.00f); ImVec4 pc_color = ImVec4(1.0f, 0.0f, 0.0f, 1.00f); ImVec4 pc_color2 = ImVec4(0.0f, 0.0f, 1.0f, 1.00f); -int point_size = 1; -Eigen::Vector3f rotation_center = Eigen::Vector3f::Zero(); -float translate_x, translate_y = 0.0; -float translate_z = -50.0; -float rotate_x = 0.0, rotate_y = 0.0; -int mouse_old_x, mouse_old_y; -int mouse_buttons = 0; -bool gui_mouse_down{false}; -float mouse_sensitivity = 1.0; - float m_ortho_projection[] = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, @@ -144,80 +148,6 @@ namespace photos int photo_width_cam0 = 0; int photo_height_cam0 = 0; } -void reshape(int w, int h) -{ - glViewport(0, 0, (GLsizei)w, (GLsizei)h); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - if (!is_ortho) - { - gluPerspective(60.0, (GLfloat)w / (GLfloat)h, 0.01, 10000.0); - } - else - { - ImGuiIO &io = ImGui::GetIO(); - float ratio = float(io.DisplaySize.x) / float(io.DisplaySize.y); - - glOrtho(-camera_ortho_xy_view_zoom, camera_ortho_xy_view_zoom, - -camera_ortho_xy_view_zoom / ratio, - camera_ortho_xy_view_zoom / ratio, -100000, 100000); - // glOrtho(-translate_z, translate_z, -translate_z * (float)h / float(w), translate_z * float(h) / float(w), -10000, 10000); - } - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); -} - -void motion(int x, int y) -{ - ImGuiIO &io = ImGui::GetIO(); - io.MousePos = ImVec2((float)x, (float)y); - - if (!io.WantCaptureMouse) - { - float dx, dy; - dx = (float)(x - mouse_old_x); - dy = (float)(y - mouse_old_y); - - if (is_ortho) - { - if (mouse_buttons & 1) - { - float ratio = float(io.DisplaySize.x) / float(io.DisplaySize.y); - Eigen::Vector3d v(dx * (camera_ortho_xy_view_zoom / (GLsizei)io.DisplaySize.x * 2), - dy * (camera_ortho_xy_view_zoom / (GLsizei)io.DisplaySize.y * 2 / ratio), 0); - TaitBryanPose pose_tb; - pose_tb.px = 0.0; - pose_tb.py = 0.0; - pose_tb.pz = 0.0; - pose_tb.om = 0.0; - pose_tb.fi = 0.0; - pose_tb.ka = camera_ortho_xy_view_rotation_angle_deg * M_PI / 180.0; - auto m = affine_matrix_from_pose_tait_bryan(pose_tb); - Eigen::Vector3d v_t = m * v; - camera_ortho_xy_view_shift_x += v_t.x(); - camera_ortho_xy_view_shift_y += v_t.y(); - } - } - else - { - gui_mouse_down = mouse_buttons > 0; - if (mouse_buttons & 1) - { - rotate_x += dy * 0.2f; // * mouse_sensitivity; - rotate_y += dx * 0.2f; // * mouse_sensitivity; - } - if (mouse_buttons & 4) - { - translate_x += dx * 0.05f * mouse_sensitivity; - translate_y -= dy * 0.05f * mouse_sensitivity; - } - } - - mouse_old_x = x; - mouse_old_y = y; - } - glutPostRedisplay(); -} static ImVec2 DisplayImageFit(ImTextureID tex, int tex_w, int tex_h, bool allow_upscale = true) { @@ -290,12 +220,11 @@ void project_gui() ImGui::Text("timestamp: %s", std::to_string(photos::nearestTs).c_str()); // get available size DisplayImageFit((ImTextureID)photos::photo_texture_cam0, photo_width_cam0, photo_height_cam0); - - } ImGui::End(); } + if (ImGui::Begin("main gui window")) { ImGui::ColorEdit3("clear color", (float *)&clear_color); @@ -351,13 +280,9 @@ void project_gui() all_file_names.push_back(fileName); } else if (fileName.ends_with(".csv")) - { csv_files.push_back(fileName); - } else if (fileName.ends_with(".sn")) - { sn_files.push_back(fileName); - } else if (fileName.ends_with(".jpg")) { photos_files.push_back(fileName); // decode filename e.g.: ` cam0_1761264773592270949.jpg` @@ -394,9 +319,7 @@ void project_gui() { std::cout << "Loaded calibration for: \n"; for (const auto &[sn, _] : preloadedCalibration) - { std::cout << " -> " << sn << std::endl; - } } else { @@ -429,16 +352,13 @@ void project_gui() fs::path wdp = fs::path(input_file_names[0]).parent_path(); wdp /= "preview"; if (!fs::exists(wdp)) - { fs::create_directory(wdp); - } working_directory_preview = wdp.string(); for (size_t i = 0; i < input_file_names.size(); i++) - { std::cout << input_file_names[i] << std::endl; - } + std::cout << "loading imu" << std::endl; std::vector, FusionVector, FusionVector>> imu_data; @@ -492,9 +412,7 @@ void project_gui() std::ofstream testPointcloud{calibrationValidtationFile.c_str()}; for (const auto &p : data) - { testPointcloud << p.point.x() << "\t" << p.point.y() << "\t" << p.point.z() << "\t" << p.intensity << "\t" << (int)p.lidarid << "\n"; - } } std::unique_lock lck(mtx); @@ -513,17 +431,14 @@ void project_gui() FusionAhrsInitialise(&ahrs); if (fusionConventionNwu) - { ahrs.settings.convention = FusionConventionNwu; - } + if (fusionConventionEnu) - { ahrs.settings.convention = FusionConventionEnu; - } + if (fusionConventionNed) - { ahrs.settings.convention = FusionConventionNed; - } + ahrs.settings.gain = ahrs_gain; std::map> trajectory; @@ -586,9 +501,7 @@ void project_gui() const FusionEuler euler = FusionQuaternionToEuler(FusionAhrsGetQuaternion(&ahrs)); counter++; if (counter % 100 == 0) - { printf("Roll %0.1f, Pitch %0.1f, Yaw %0.1f [%d of %d]\n", euler.angle.roll, euler.angle.pitch, euler.angle.yaw, counter++, imu_data.size()); - } // log it for implot imu_data_plot.timestampLidar.push_back(timestamp_pair.first); @@ -615,9 +528,8 @@ void project_gui() int number_of_points = 0; for (const auto &pp : pointsPerFile) - { number_of_points += pp.size(); - } + std::cout << "number of points: " << number_of_points << std::endl; std::cout << "start indexing points" << std::endl; @@ -714,9 +626,7 @@ void project_gui() //std::cout << "ts_end " << data.timestamps[data.timestamps.size() - 1].first << std::endl; for (int pp = 0; pp < data.points_local.size(); pp++) - { data.points_local[pp].timestamp = ts_begin + pp * ts_step; - } } all_data.push_back(data); @@ -784,9 +694,7 @@ void project_gui() }*/ if (!exportLaz(output_file_name, pointcloud, intensity, timestamps, 0, 0, 0)) - { std::cout << "problem with saving file: " << output_file_name << std::endl; - } } } @@ -806,20 +714,16 @@ void project_gui() ImGui::Text("---------------------------------------------"); if (ImGui::Button("optimize")) - { optimize(); - } if (ImGui::Button("get_nn")) - { rgd_nn = get_nn(); - } + ImGui::Checkbox("show show_rgd_nn", &show_rgd_nn); if (ImGui::Button("get_mean_cov")) - { mean_cov = get_mean_cov(); - } + ImGui::Checkbox("show_mean_cov", &show_mean_cov); if (ImGui::Button("debug text")) @@ -850,9 +754,7 @@ void project_gui() std::cout << "max_diff " << max_diff << std::endl; std::cout << "----------------" << std::endl; for (int k = 0; k < all_data[index_rendered_points_local].timestamps.size(); k++) - { std::cout << all_data[index_rendered_points_local].timestamps[k].first << std::endl; - } } } @@ -872,9 +774,7 @@ void project_gui() if (index_rendered_points_local >= 0 && index_rendered_points_local < all_data.size()) { if (all_data[index_rendered_points_local].timestamps.size() > 0) - { annotation = all_data[index_rendered_points_local].timestamps.front().first; - } } if (ImPlot::BeginPlot("Imu - acceleration 'm/s^2", ImVec2(-1, 0))) { @@ -1133,13 +1033,10 @@ void display() Eigen::Vector3d p = m * all_data[index_rendered_points_local].points_local[i].point; if (all_data[index_rendered_points_local].lidar_ids[i] == 0) - { glColor3f(pc_color.x, pc_color.y, pc_color.z); - } else - { glColor3f(pc_color2.x, pc_color2.y, pc_color2.z); - } + glVertex3f(p.x(), p.y(), p.z()); //} } @@ -1210,9 +1107,7 @@ void display() if (show_mean_cov) { for (const auto &mc : mean_cov) - { draw_ellipse(mc.second, mc.first, Eigen::Vector3f(1, 0, 0), 1); - } } ImGui_ImplOpenGL2_NewFrame(); @@ -1228,42 +1123,6 @@ void display() glutPostRedisplay(); } -bool initGL(int *argc, char **argv) -{ - glutInit(argc, argv); - glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); - glutInitWindowSize(window_width, window_height); - glutCreateWindow("mandeye raw data viewer " HDMAPPING_VERSION_STRING); - glutDisplayFunc(display); - glutMotionFunc(motion); - - // default initialization - glClearColor(0.0, 0.0, 0.0, 1.0); - glEnable(GL_DEPTH_TEST); - - // viewport - glViewport(0, 0, window_width, window_height); - - // projection - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(60.0, (GLfloat)window_width / (GLfloat)window_height, 0.01, 10000.0); - glutReshapeFunc(reshape); - ImGui::CreateContext(); - ImPlot::CreateContext(); - ImGuiIO &io = ImGui::GetIO(); - (void)io; - // io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - - ImGui::StyleColorsDark(); - ImGui_ImplGLUT_Init(); - ImGui_ImplGLUT_InstallFuncs(); - ImGui_ImplOpenGL2_Init(); - return true; -} - -void wheel(int button, int dir, int x, int y); - void mouse(int glut_button, int state, int x, int y) { ImGuiIO &io = ImGui::GetIO(); @@ -1306,60 +1165,33 @@ void mouse(int glut_button, int state, int x, int y) } } -void wheel(int button, int dir, int x, int y) +int main(int argc, char* argv[]) { - ImGuiIO &io = ImGui::GetIO(); - io.MouseWheel += (float)dir; - if (io.WantCaptureMouse) + try { - // ImGui is handling the mouse wheel - return; - } + initGL(&argc, argv, winTitle, display, mouse); - if (dir > 0) - { - if (is_ortho) - { - camera_ortho_xy_view_zoom -= 0.1f * camera_ortho_xy_view_zoom; + glutMainLoop(); - if (camera_ortho_xy_view_zoom < 0.1) - { - camera_ortho_xy_view_zoom = 0.1; - } - } - else - { - translate_z -= 0.05f * translate_z; - } + ImGui_ImplOpenGL2_Shutdown(); + ImGui_ImplGLUT_Shutdown(); + ImGui::DestroyContext(); + ImPlot::DestroyContext(); } - else + catch (const std::bad_alloc& e) { - if (is_ortho) - { - camera_ortho_xy_view_zoom += 0.1 * camera_ortho_xy_view_zoom; - } - else - { - translate_z += 0.05f * translate_z; - } + std::cerr << "System is out of memory : " << e.what() << std::endl; + mandeye::fd::OutOfMemMessage(); + } + catch (const std::exception& e) + { + std::cout << e.what(); + } + catch (...) + { + std::cerr << "Unknown fatal error occurred." << std::endl; } - return; -} -int main(int argc, char *argv[]) -{ - initGL(&argc, argv); - glutDisplayFunc(display); - glutMouseFunc(mouse); - glutMotionFunc(motion); - glutMouseWheelFunc(wheel); - glutMainLoop(); - - ImGui_ImplOpenGL2_Shutdown(); - ImGui_ImplGLUT_Shutdown(); - - ImPlot::DestroyContext(); - ImGui::DestroyContext(); return 0; } @@ -1980,13 +1812,9 @@ std::vector> get_mean_cov() int index_pose = std::distance(worker_data.timestamps.begin(), lower) - 1; if (index_pose >= 0 && index_pose < worker_data.poses.size()) - { worker_data.points_local[i].index_pose = index_pose; - } else - { worker_data.points_local[i].index_pose = -1; - } } NDT::GridParameters rgd_params; @@ -2064,4 +1892,4 @@ std::vector> get_mean_cov() } return mc; -} +} \ No newline at end of file diff --git a/apps/mandeye_raw_data_viewer/resource.h b/apps/mandeye_raw_data_viewer/resource.h new file mode 100644 index 00000000..936648af --- /dev/null +++ b/apps/mandeye_raw_data_viewer/resource.h @@ -0,0 +1,17 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by resource.rc +// +#define IDI_ICON1 101 //application icon +#define VS_VERSION_INFO 1 //version info + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 106 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/apps/mandeye_raw_data_viewer/resource.rc b/apps/mandeye_raw_data_viewer/resource.rc new file mode 100644 index 00000000..d399a03f --- /dev/null +++ b/apps/mandeye_raw_data_viewer/resource.rc @@ -0,0 +1,50 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON "icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 0,0,9,2 + PRODUCTVERSION 0,0,9,2 + FILEFLAGSMASK 0x3fL + FILEOS 0x40004 + FILETYPE 0x1 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Mandeye\0" + VALUE "FileDescription", "HDMapping Raw Data Viewer\0" + VALUE "FileVersion", "0.9.2\0" + VALUE "InternalName", "Raw data viewer\0" + VALUE "LegalCopyright", "(c) 2025 github.com/MapsHD/HDMapping\0" + VALUE "OriginalFilename", "mandeye_raw_data_viewer.exe\0" + VALUE "ProductVersion", "0.9.2\0" + VALUE "ProgramID", "github.com/MapsHD/HDMapping\0" + VALUE "ProductName", "HDMapping\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x04B0 + END +END +///////////////////////////////////////////////////////////////////////////// + diff --git a/apps/mandeye_single_session_viewer/resource.rc b/apps/mandeye_single_session_viewer/resource.rc index 86502833..9ab99052 100644 --- a/apps/mandeye_single_session_viewer/resource.rc +++ b/apps/mandeye_single_session_viewer/resource.rc @@ -20,8 +20,8 @@ IDI_ICON1 ICON "icon.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,9,0 - PRODUCTVERSION 0,0,9,0 + FILEVERSION 0,0,9,2 + PRODUCTVERSION 0,0,9,2 FILEFLAGSMASK 0x3fL FILEOS 0x40004 FILETYPE 0x1 @@ -32,11 +32,11 @@ BEGIN BEGIN VALUE "CompanyName", "Mandeye\0" VALUE "FileDescription", "HDMapping Session Viewer\0" - VALUE "FileVersion", "0.8.9\0" + VALUE "FileVersion", "0.9.2\0" VALUE "InternalName", "Single session viewer\0" VALUE "LegalCopyright", "(c) 2025 github.com/MapsHD/HDMapping\0" VALUE "OriginalFilename", "mandeye_single_session_viewer.exe\0" - VALUE "ProductVersion", "0.8.9\0" + VALUE "ProductVersion", "0.9.2\0" VALUE "ProgramID", "github.com/MapsHD/HDMapping\0" VALUE "ProductName", "HDMapping\0" END diff --git a/apps/multi_session_registration/multi_session_registration.cpp b/apps/multi_session_registration/multi_session_registration.cpp index f691835d..e237ed0e 100644 --- a/apps/multi_session_registration/multi_session_registration.cpp +++ b/apps/multi_session_registration/multi_session_registration.cpp @@ -2732,9 +2732,8 @@ void project_gui() ImGui::InputDouble("Increment", &fast_plus); ImGui::InputDouble("Fast increment", &fast_plus_plus); - ImGui::PopItemWidth(); - ImGui::SetNextItemWidth(ImGuiNumberWidth); ImGui::InputDouble("Timestamp offset", &time_stamp_offset, fast_plus, fast_plus_plus); + ImGui::PopItemWidth(); ImGui::SameLine(); if (ImGui::Button("Set to origin")) { diff --git a/apps/multi_session_registration/resource.rc b/apps/multi_session_registration/resource.rc index 572caf87..433dda28 100644 --- a/apps/multi_session_registration/resource.rc +++ b/apps/multi_session_registration/resource.rc @@ -20,8 +20,8 @@ IDI_ICON1 ICON "icon.ico" // VS_VERSION_INFO VERSIONINFO -FILEVERSION 0, 0, 9, 0 -PRODUCTVERSION 0, 0, 9, 0 +FILEVERSION 0, 0, 9, 2 +PRODUCTVERSION 0, 0, 9, 2 FILEFLAGSMASK 0x3fL FILEOS 0x40004 FILETYPE 0x1 @@ -32,11 +32,11 @@ BLOCK "040904B0" BEGIN VALUE "CompanyName", "Mandeye\0" VALUE "FileDescription", "HDMapping Step 3\0" -VALUE "FileVersion", "0.8.9\0" +VALUE "FileVersion", "0.9.2\0" VALUE "InternalName", "Multi session registration\0" VALUE "LegalCopyright", "(c) 2025 github.com/MapsHD/HDMapping\0" VALUE "OriginalFilename", "multi_session_registration_step_3.exe\0" -VALUE "ProductVersion", "0.8.9\0" +VALUE "ProductVersion", "0.9.2\0" VALUE "ProgramID", "github.com/MapsHD/HDMapping\0" VALUE "ProductName", "HDMapping\0" END diff --git a/apps/multi_view_tls_registration/multi_view_tls_registration_gui.cpp b/apps/multi_view_tls_registration/multi_view_tls_registration_gui.cpp index 9a649f88..5e50d6be 100644 --- a/apps/multi_view_tls_registration/multi_view_tls_registration_gui.cpp +++ b/apps/multi_view_tls_registration/multi_view_tls_registration_gui.cpp @@ -3304,7 +3304,6 @@ int main(int argc, char *argv[]) { initGL(&argc, argv, winTitle, display, mouse); - glutMainLoop(); ImGui_ImplOpenGL2_Shutdown(); diff --git a/apps/multi_view_tls_registration/resource.rc b/apps/multi_view_tls_registration/resource.rc index b3446f4d..a790594a 100644 --- a/apps/multi_view_tls_registration/resource.rc +++ b/apps/multi_view_tls_registration/resource.rc @@ -20,8 +20,8 @@ IDI_ICON1 ICON "icon.ico" // VS_VERSION_INFO VERSIONINFO -FILEVERSION 0, 0, 9, 0 -PRODUCTVERSION 0, 0, 9, 0 +FILEVERSION 0, 0, 9, 2 +PRODUCTVERSION 0, 0, 9, 2 FILEFLAGSMASK 0x3fL FILEOS 0x40004 FILETYPE 0x1 @@ -32,11 +32,11 @@ BLOCK "040904B0" BEGIN VALUE "CompanyName", "Mandeye\0" VALUE "FileDescription", "HDMapping Step 2\0" -VALUE "FileVersion", "0.8.9\0" +VALUE "FileVersion", "0.9.2\0" VALUE "InternalName", "Multi view TLS registration\0" VALUE "LegalCopyright", "(c) 2025 github.com/MapsHD/HDMapping\0" VALUE "OriginalFilename", "multi_view_tls_registration_step_2.exe\0" -VALUE "ProductVersion", "0.8.9\0" +VALUE "ProductVersion", "0.9.2\0" VALUE "ProgramID", "github.com/MapsHD/HDMapping\0" VALUE "ProductName", "HDMapping\0" END diff --git a/core/include/utils.hpp b/core/include/utils.hpp index 3b3e209c..ca24a819 100644 --- a/core/include/utils.hpp +++ b/core/include/utils.hpp @@ -44,7 +44,6 @@ enum CameraPreset { extern int viewer_decimate_point_cloud; extern int mouse_old_x, mouse_old_y; -extern bool gui_mouse_down; extern int mouse_buttons; extern float mouse_sensitivity; @@ -61,8 +60,7 @@ extern Eigen::Affine3f viewLocal; extern Eigen::Vector3f rotation_center; extern float rotate_x, rotate_y; -extern float translate_x, translate_y; -extern float translate_z; +extern float translate_x, translate_y, translate_z; extern double camera_ortho_xy_view_zoom; extern double camera_ortho_xy_view_shift_x;