From 5cba44fc27e36471ff043587e36a6324d472cedd Mon Sep 17 00:00:00 2001 From: yuckinus <40965122+yuckinus@users.noreply.github.com> Date: Mon, 30 Mar 2026 02:02:02 +0300 Subject: [PATCH 1/2] Step2 improvement For Manual Loop Closure, make "Render source as red, target as blue" active also when "Manipulate active edge" not selected --- core/src/manual_pose_graph_loop_closure.cpp | 37 ++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/core/src/manual_pose_graph_loop_closure.cpp b/core/src/manual_pose_graph_loop_closure.cpp index e22174be..8693afa8 100644 --- a/core/src/manual_pose_graph_loop_closure.cpp +++ b/core/src/manual_pose_graph_loop_closure.cpp @@ -421,8 +421,23 @@ void ManualPoseGraphLoopClosure::Render( { if (i >= 0 && i < point_clouds_container.point_clouds.size() && point_clouds_container.point_clouds.size() > 0) { - ObservationPicking observation_picking; - point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); + //ObservationPicking observation_picking; + //point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); + Eigen::Affine3d m_src = point_clouds_container.point_clouds.at(i).m_pose; + + if (render_source_as_red_target_as_blue) + { + float color[3]; + color[0] = 1.0; + color[1] = 0.0; + color[2] = 0.0; + point_clouds_container.point_clouds.at(i).render(m_src, 1, 1, color); + } + else + { + point_clouds_container.point_clouds.at(i).render( + m_src, 1, 1, point_clouds_container.point_clouds.at(i).render_color); + } } } @@ -430,8 +445,22 @@ void ManualPoseGraphLoopClosure::Render( { if (i >= 0 && i < point_clouds_container.point_clouds.size() && point_clouds_container.point_clouds.size() > 0) { - ObservationPicking observation_picking; - point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); + //ObservationPicking observation_picking; + //point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); + Eigen::Affine3d m_src = point_clouds_container.point_clouds.at(i).m_pose; + + if (render_source_as_red_target_as_blue) + { + float color[3]; + color[0] = 0.0; + color[1] = 0.0; + color[2] = 1.0; + point_clouds_container.point_clouds.at(i).render(m_src, 1, 1, color); + } + else + { + point_clouds_container.point_clouds.at(i).render(m_src, 1, 1, point_clouds_container.point_clouds.at(i).render_color); + } } } } From acd2a3c8a5ee6dfda780846dd3c89730ba70f283 Mon Sep 17 00:00:00 2001 From: yuckinus <40965122+yuckinus@users.noreply.github.com> Date: Tue, 31 Mar 2026 19:40:41 +0300 Subject: [PATCH 2/2] fix clang error --- core/src/manual_pose_graph_loop_closure.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/core/src/manual_pose_graph_loop_closure.cpp b/core/src/manual_pose_graph_loop_closure.cpp index 591e02cf..84585047 100644 --- a/core/src/manual_pose_graph_loop_closure.cpp +++ b/core/src/manual_pose_graph_loop_closure.cpp @@ -424,8 +424,8 @@ void ManualPoseGraphLoopClosure::Render( { if (i >= 0 && i < point_clouds_container.point_clouds.size() && point_clouds_container.point_clouds.size() > 0) { - //ObservationPicking observation_picking; - //point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); + // ObservationPicking observation_picking; + // point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); Eigen::Affine3d m_src = point_clouds_container.point_clouds.at(i).m_pose; if (render_source_as_red_target_as_blue) @@ -438,8 +438,7 @@ void ManualPoseGraphLoopClosure::Render( } else { - point_clouds_container.point_clouds.at(i).render( - m_src, 1, 1, point_clouds_container.point_clouds.at(i).render_color); + point_clouds_container.point_clouds.at(i).render(m_src, 1, 1, point_clouds_container.point_clouds.at(i).render_color); } } } @@ -448,8 +447,8 @@ void ManualPoseGraphLoopClosure::Render( { if (i >= 0 && i < point_clouds_container.point_clouds.size() && point_clouds_container.point_clouds.size() > 0) { - //ObservationPicking observation_picking; - //point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); + // ObservationPicking observation_picking; + // point_clouds_container.point_clouds.at(i).render(false, observation_picking, 1, 1, false, false, false, 10000, false); Eigen::Affine3d m_src = point_clouds_container.point_clouds.at(i).m_pose; if (render_source_as_red_target_as_blue)