From 7be9dab4b2ba8e2abb03a786ff0809d2a0a0fefa Mon Sep 17 00:00:00 2001 From: shu <60308179+booksuper@users.noreply.github.com> Date: Fri, 3 Dec 2021 16:27:41 +0800 Subject: [PATCH 1/4] Error between addtext3d and qvtkwidget When using addtext3d to display 3D text in qvtkwidget, an error "access conflict occurs when reading position 0x000000000000008" will be reported. The reason is that "render - > render()" has been used in addtext3d once, but to send 3D text to qvtkwidget window, execute "UI - > qvtkwidget - > setrenderwindow (viewer - > getrenderwindow());Viewer - > setupinteractor (UI - > qvtkwidget - > getinteractor()); ", which is equivalent to repeated rendering, resulting in pointer out of bounds. After experiments, it is OK to delete "render - > render()" and it works normally when it does not interact with qvtkwidget --- visualization/include/pcl/visualization/impl/pcl_visualizer.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp index 4eca4e2b74b..ea4d6ce6262 100644 --- a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp +++ b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp @@ -755,7 +755,7 @@ pcl::visualization::PCLVisualizer::addText3D ( textActor->SetCamera (renderer->GetActiveCamera ()); renderer->AddActor (textActor); - renderer->Render (); + //renderer->Render (); // Save the pointer/ID pair to the global actor map. If we are saving multiple vtkFollowers // for multiple viewport From 20c9828647deebeab9982f7d18361a98094e4794 Mon Sep 17 00:00:00 2001 From: shu <60308179+booksuper@users.noreply.github.com> Date: Fri, 3 Dec 2021 19:59:19 +0800 Subject: [PATCH 2/4] Error between addtext3d and qvtkwidget When using addtext3d to display 3D text in qvtkwidget, an error "access conflict occurs when reading position 0x000000000000008" will be reported. The reason is that "render - > render()" has been used in addtext3d once, but to send 3D text to qvtkwidget window, execute "UI - > qvtkwidget - > setrenderwindow (viewer - > getrenderwindow());Viewer - > setupinteractor (UI - > qvtkwidget - > getinteractor()); ", which is equivalent to repeated rendering, resulting in pointer out of bounds. To solve this problem it is OK to delete "render - > render()". I have passed the test on vtk8.0.0, Larshg has tested on vtk9.0.1, and vtk6 and 7 have not been tested. Therefore, the judgment statement of VTK version is added. --- .../include/pcl/visualization/impl/pcl_visualizer.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp index ea4d6ce6262..c33453cc9e9 100644 --- a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp +++ b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp @@ -755,7 +755,10 @@ pcl::visualization::PCLVisualizer::addText3D ( textActor->SetCamera (renderer->GetActiveCamera ()); renderer->AddActor (textActor); - //renderer->Render (); + + #if VTK_MAJOR_VERSION < 8 + renderer->Render (); + #endif // Save the pointer/ID pair to the global actor map. If we are saving multiple vtkFollowers // for multiple viewport From 4beffd5e7813fcc7258bf5f6651a84fa0eebe01f Mon Sep 17 00:00:00 2001 From: shu <60308179+booksuper@users.noreply.github.com> Date: Sat, 4 Dec 2021 09:28:31 +0800 Subject: [PATCH 3/4] Fix Bug between addText3D and QVTKWidget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After successfully testing vtk6,7,just remove “Render->render()” entirely --- .../include/pcl/visualization/impl/pcl_visualizer.hpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp index c33453cc9e9..e461399890f 100644 --- a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp +++ b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp @@ -756,10 +756,7 @@ pcl::visualization::PCLVisualizer::addText3D ( renderer->AddActor (textActor); - #if VTK_MAJOR_VERSION < 8 - renderer->Render (); - #endif - + // Save the pointer/ID pair to the global actor map. If we are saving multiple vtkFollowers // for multiple viewport const std::string uid = tid + std::string (i, '*'); From 5cf093a7aa2958d1fb13083e66e3d00f80347660 Mon Sep 17 00:00:00 2001 From: Shu Dengdeng <60308179+booksuper@users.noreply.github.com> Date: Sat, 4 Dec 2021 18:28:04 +0800 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: Lars Glud --- visualization/include/pcl/visualization/impl/pcl_visualizer.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp index e461399890f..3cbed49d6b6 100644 --- a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp +++ b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp @@ -756,7 +756,6 @@ pcl::visualization::PCLVisualizer::addText3D ( renderer->AddActor (textActor); - // Save the pointer/ID pair to the global actor map. If we are saving multiple vtkFollowers // for multiple viewport const std::string uid = tid + std::string (i, '*');