From 88f5e5b01138eef5c2b736043967f36e18fb5242 Mon Sep 17 00:00:00 2001 From: green_machine Date: Sun, 11 Nov 2018 10:07:50 -0500 Subject: [PATCH 1/3] address vtk 8.2 dev head issue with vtk/rendering/core introduced by https://github.com/Kitware/VTK/commit/bbc96ed3bb95dde45f5fd4e7f932929fe5c667bd --- visualization/src/pcl_visualizer.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/visualization/src/pcl_visualizer.cpp b/visualization/src/pcl_visualizer.cpp index afdddb35513..b4f63f972d7 100644 --- a/visualization/src/pcl_visualizer.cpp +++ b/visualization/src/pcl_visualizer.cpp @@ -3528,12 +3528,7 @@ pcl::visualization::PCLVisualizer::addTextureMesh (const pcl::TextureMesh &mesh, std::size_t tex_id = 0; while (tex_id < last_tex_id) { -#if VTK_MAJOR_VERSION < 9 int tu = vtkProperty::VTK_TEXTURE_UNIT_0 + tex_id; -#else - const char *tu = mesh.tex_materials[tex_id].tex_name.c_str (); -#endif - vtkSmartPointer texture = vtkSmartPointer::New (); if (textureFromTexMaterial (mesh.tex_materials[tex_id], texture)) { @@ -3561,10 +3556,16 @@ pcl::visualization::PCLVisualizer::addTextureMesh (const pcl::TextureMesh &mesh, else for (std::size_t tc = 0; tc < mesh.tex_coordinates[t].size (); ++tc) coordinates->InsertNextTuple2 (-1.0, -1.0); - +#if VTK_MAJOR_VERSION >= 8 && VTK_MINOR_VERSION >= 2 + mapper->MapDataArrayToMultiTextureAttribute(mesh.tex_materials[tex_id].tex_name.c_str(), + this_coordinates_name.c_str(), + vtkDataObject::FIELD_ASSOCIATION_POINTS); +#else mapper->MapDataArrayToMultiTextureAttribute(tu, - this_coordinates_name.c_str (), - vtkDataObject::FIELD_ASSOCIATION_POINTS); + this_coordinates_name.c_str(), + vtkDataObject::FIELD_ASSOCIATION_POINTS); +#endif + polydata->GetPointData ()->AddArray (coordinates); actor->GetProperty ()->SetTexture (tu, texture); ++tex_id; From 8687c7cf7334602b07c741597dcf9c412e18cd4b Mon Sep 17 00:00:00 2001 From: green_machine Date: Mon, 19 Nov 2018 19:13:07 -0500 Subject: [PATCH 2/3] better define for VTK behavior --- visualization/src/pcl_visualizer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/visualization/src/pcl_visualizer.cpp b/visualization/src/pcl_visualizer.cpp index b4f63f972d7..0f17513a4f3 100644 --- a/visualization/src/pcl_visualizer.cpp +++ b/visualization/src/pcl_visualizer.cpp @@ -3556,7 +3556,7 @@ pcl::visualization::PCLVisualizer::addTextureMesh (const pcl::TextureMesh &mesh, else for (std::size_t tc = 0; tc < mesh.tex_coordinates[t].size (); ++tc) coordinates->InsertNextTuple2 (-1.0, -1.0); -#if VTK_MAJOR_VERSION >= 8 && VTK_MINOR_VERSION >= 2 +#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 2) || VTK_MAJOR_VERSION > 8 mapper->MapDataArrayToMultiTextureAttribute(mesh.tex_materials[tex_id].tex_name.c_str(), this_coordinates_name.c_str(), vtkDataObject::FIELD_ASSOCIATION_POINTS); From ddf45e5e20e5ba5d09198dd2958991918c0d6903 Mon Sep 17 00:00:00 2001 From: green_machine Date: Tue, 20 Nov 2018 08:53:49 -0500 Subject: [PATCH 3/3] move define VTK version switch to original location --- visualization/src/pcl_visualizer.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/visualization/src/pcl_visualizer.cpp b/visualization/src/pcl_visualizer.cpp index 0f17513a4f3..a0b881e9b4d 100644 --- a/visualization/src/pcl_visualizer.cpp +++ b/visualization/src/pcl_visualizer.cpp @@ -3528,7 +3528,11 @@ pcl::visualization::PCLVisualizer::addTextureMesh (const pcl::TextureMesh &mesh, std::size_t tex_id = 0; while (tex_id < last_tex_id) { +#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 2) || VTK_MAJOR_VERSION > 8 + const char *tu = mesh.tex_materials[tex_id].tex_name.c_str(); +#else int tu = vtkProperty::VTK_TEXTURE_UNIT_0 + tex_id; +#endif vtkSmartPointer texture = vtkSmartPointer::New (); if (textureFromTexMaterial (mesh.tex_materials[tex_id], texture)) { @@ -3556,15 +3560,9 @@ pcl::visualization::PCLVisualizer::addTextureMesh (const pcl::TextureMesh &mesh, else for (std::size_t tc = 0; tc < mesh.tex_coordinates[t].size (); ++tc) coordinates->InsertNextTuple2 (-1.0, -1.0); -#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 2) || VTK_MAJOR_VERSION > 8 - mapper->MapDataArrayToMultiTextureAttribute(mesh.tex_materials[tex_id].tex_name.c_str(), - this_coordinates_name.c_str(), - vtkDataObject::FIELD_ASSOCIATION_POINTS); -#else mapper->MapDataArrayToMultiTextureAttribute(tu, this_coordinates_name.c_str(), vtkDataObject::FIELD_ASSOCIATION_POINTS); -#endif polydata->GetPointData ()->AddArray (coordinates); actor->GetProperty ()->SetTexture (tu, texture);