[packages/pcl] - fix building with vtk 7.1 - rel 12

baggins baggins at pld-linux.org
Wed Jan 25 08:00:46 CET 2017


commit 7bcf787f7ec2dd91571ce380240f8c8cf43e19ee
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Wed Jan 25 08:00:26 2017 +0100

    - fix building with vtk 7.1
    - rel 12

 pcl.spec    |   6 ++-
 vtk7.patch  | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 vtk71.patch | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 261 insertions(+), 1 deletion(-)
---
diff --git a/pcl.spec b/pcl.spec
index 1d05c73..ce1495e 100644
--- a/pcl.spec
+++ b/pcl.spec
@@ -11,7 +11,7 @@ Summary:	Point Cloud Library - library for point cloud processing
 Summary(pl.UTF-8):	Point Cloud Library - biblioteka do operacji na chmurze punktów
 Name:		pcl
 Version:	1.7.2
-Release:	11
+Release:	12
 License:	BSD
 Group:		Libraries
 #Source0Download: http://pointclouds.org/downloads/
@@ -21,6 +21,8 @@ Patch0:		%{name}-fz_api.patch
 Patch1:		%{name}-tawara.patch
 Patch2:		%{name}-openni.patch
 Patch3:		eigen-dependency.patch
+Patch4:		vtk7.patch
+Patch5:		vtk71.patch
 URL:		http://pointclouds.org/
 BuildRequires:	OpenGL-devel
 BuildRequires:	OpenGL-GLU-devel
@@ -112,6 +114,8 @@ Dokumentacja API oraz wprowadzenie do biblioteki PCL.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 mkdir build
diff --git a/vtk7.patch b/vtk7.patch
new file mode 100644
index 0000000..cade877
--- /dev/null
+++ b/vtk7.patch
@@ -0,0 +1,127 @@
+diff -ur pcl-pcl-1.7.2/apps/src/render_views_tesselated_sphere.cpp pcl-pcl-1.7.2.vtk7/apps/src/render_views_tesselated_sphere.cpp
+--- pcl-pcl-1.7.2/apps/src/render_views_tesselated_sphere.cpp	2014-09-10 23:22:57.000000000 +0200
++++ pcl-pcl-1.7.2.vtk7/apps/src/render_views_tesselated_sphere.cpp	2017-01-25 07:58:21.891198767 +0100
+@@ -13,7 +13,7 @@
+ #include <vtkLoopSubdivisionFilter.h>
+ #include <vtkTriangle.h>
+ #include <vtkTransform.h>
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>4)
++#if VTK_MAJOR_VERSION >= 6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>4)
+ #include <vtkHardwareSelector.h>
+ #include <vtkSelectionNode.h>
+ #else 
+@@ -380,7 +380,7 @@
+       /////////////////////////////////////
+       // * Select visible cells (triangles)
+       /////////////////////////////////////
+-#if (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION<6)
++#if (VTK_MAJOR_VERSION >= 6)
+       vtkSmartPointer<vtkVisibleCellSelector> selector = vtkSmartPointer<vtkVisibleCellSelector>::New ();
+       vtkSmartPointer<vtkIdTypeArray> selection = vtkSmartPointer<vtkIdTypeArray>::New ();
+ 
+diff -ur pcl-pcl-1.7.2/visualization/include/pcl/visualization/vtk.h pcl-pcl-1.7.2.vtk7/visualization/include/pcl/visualization/vtk.h
+--- pcl-pcl-1.7.2/visualization/include/pcl/visualization/vtk.h	2014-09-10 23:22:57.000000000 +0200
++++ pcl-pcl-1.7.2.vtk7/visualization/include/pcl/visualization/vtk.h	2017-01-25 07:58:21.891198767 +0100
+@@ -157,7 +157,7 @@
+ #endif
+ #include <vtkSelection.h>
+ 
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>4)
++#if VTK_MAJOR_VERSION >= 6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>4)
+ #include <vtkHardwareSelector.h>
+ #else
+ #include <vtkVisibleCellSelector.h>
+diff -ur pcl-pcl-1.7.2/visualization/src/pcl_visualizer.cpp pcl-pcl-1.7.2.vtk7/visualization/src/pcl_visualizer.cpp
+--- pcl-pcl-1.7.2/visualization/src/pcl_visualizer.cpp	2014-09-10 23:22:57.000000000 +0200
++++ pcl-pcl-1.7.2.vtk7/visualization/src/pcl_visualizer.cpp	2017-01-25 07:58:21.897865243 +0100
+@@ -52,7 +52,7 @@
+ #include <vtkMapper.h>
+ #include <vtkDataSetMapper.h>
+ 
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>4)
++#if VTK_MAJOR_VERSION >= 6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>4)
+ #include <vtkHardwareSelector.h>
+ #include <vtkSelectionNode.h>
+ #else
+@@ -3709,7 +3709,7 @@
+     /////////////////////////////////////
+     // * Select visible cells (triangles)
+     /////////////////////////////////////
+-#if  (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION<6)
++#if  (VTK_MAJOR_VERSION >= 6)
+ 
+     vtkSmartPointer<vtkVisibleCellSelector> selector = vtkSmartPointer<vtkVisibleCellSelector>::New ();
+     vtkSmartPointer<vtkIdTypeArray> selection = vtkSmartPointer<vtkIdTypeArray>::New ();
+diff -ur pcl-pcl-1.7.2/visualization/tools/pcd_viewer.cpp pcl-pcl-1.7.2.vtk7/visualization/tools/pcd_viewer.cpp
+--- pcl-pcl-1.7.2/visualization/tools/pcd_viewer.cpp	2014-09-10 23:22:57.000000000 +0200
++++ pcl-pcl-1.7.2.vtk7/visualization/tools/pcd_viewer.cpp	2017-01-25 07:58:21.897865243 +0100
+@@ -47,7 +47,7 @@
+ #include <pcl/visualization/pcl_visualizer.h>
+ #include <pcl/visualization/image_viewer.h>
+ #include <pcl/visualization/histogram_visualizer.h>
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+ #include <pcl/visualization/pcl_plotter.h>
+ #endif
+ #include <pcl/visualization/point_picking_event.h>
+@@ -142,7 +142,7 @@
+ }
+ 
+ // Global visualizer object
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+ pcl::visualization::PCLPlotter ph_global;
+ #endif
+ boost::shared_ptr<pcl::visualization::PCLVisualizer> p;
+@@ -196,7 +196,7 @@
+     if (!isMultiDimensionalFeatureField (cloud->fields[i]))
+       continue;
+     PCL_INFO ("Multidimensional field found: %s\n", cloud->fields[i].name.c_str ());
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+     ph_global.addFeatureHistogram (*cloud, cloud->fields[i].name, idx, ss.str ());
+     ph_global.renderOnce ();
+ #endif
+@@ -326,7 +326,7 @@
+       shadings.push_back ("flat");
+ 
+   // Create the PCLVisualizer object
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+   boost::shared_ptr<pcl::visualization::PCLPlotter> ph;
+ #endif  
+   // Using min_p, max_p to set the global Y min/max range for the histogram
+@@ -429,13 +429,13 @@
+     {
+       cloud_name << argv[p_file_indices.at (i)];
+ 
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+       if (!ph)
+         ph.reset (new pcl::visualization::PCLPlotter);
+ #endif
+ 
+       pcl::getMinMax (*cloud, 0, cloud->fields[0].name, min_p, max_p);
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+       ph->addFeatureHistogram (*cloud, cloud->fields[0].name, cloud_name.str ());
+ #endif
+       print_info ("[done, "); print_value ("%g", tt.toc ()); print_info (" ms : "); print_value ("%d", cloud->fields[0].count); print_info (" points]\n");
+@@ -687,7 +687,7 @@
+     bool stopped = false;
+     do
+     {
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+       if (ph) ph->spinOnce ();
+ #endif
+ 
+@@ -717,7 +717,7 @@
+   else
+   {
+     // If no images, continue
+-#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6)
++#if VTK_MAJOR_VERSION >= 6)
+     if (ph)
+     {
+       //print_highlight ("Setting the global Y range for all histograms to: "); print_value ("%f -> %f\n", min_p, max_p);
diff --git a/vtk71.patch b/vtk71.patch
new file mode 100644
index 0000000..a011a1b
--- /dev/null
+++ b/vtk71.patch
@@ -0,0 +1,129 @@
+From 7884dbd4cbe3053b6f594d4b05e21ea604cb51af Mon Sep 17 00:00:00 2001
+From: v4hn <me at v4hn.de>
+Date: Sat, 3 Dec 2016 13:51:03 +0100
+Subject: [PATCH] compile-time support for VTK7.1
+
+The *TupleValue function family got removed in favor of the *TypedTuple functions.
+
+To preserve backward compatibility with older VTK versions,
+this introduces local macro-overloads for the used functions.
+---
+ io/include/pcl/io/impl/vtk_lib_io.hpp                       | 13 +++++++++++++
+ io/src/vtk_lib_io.cpp                                       |  7 +++++++
+ surface/src/vtk_smoothing/vtk_utils.cpp                     |  6 ++++++
+ .../include/pcl/visualization/impl/pcl_visualizer.hpp       | 13 +++++++++++++
+ visualization/src/pcl_visualizer.cpp                        |  7 +++++++
+ 5 files changed, 46 insertions(+)
+
+diff --git a/io/include/pcl/io/impl/vtk_lib_io.hpp b/io/include/pcl/io/impl/vtk_lib_io.hpp
+index 695e346..e6c0200 100644
+--- a/io/include/pcl/io/impl/vtk_lib_io.hpp
++++ b/io/include/pcl/io/impl/vtk_lib_io.hpp
+@@ -61,6 +61,13 @@
+ #include <vtkStructuredGrid.h>
+ #include <vtkVertexGlyphFilter.h>
+ 
++// Support for VTK 7.1 upwards
++#ifdef vtkGenericDataArray_h
++#define SetTupleValue SetTypedTuple
++#define InsertNextTupleValue InsertNextTypedTuple
++#define GetTupleValue GetTypedTuple
++#endif
++
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ template <typename PointT> void
+ pcl::io::vtkPolyDataToPointCloud (vtkPolyData* const polydata, pcl::PointCloud<PointT>& cloud)
+@@ -503,5 +510,11 @@ pcl::io::pointCloudTovtkStructuredGrid (const pcl::PointCloud<PointT>& cloud, vt
+   }
+ }
+ 
++#ifdef vtkGenericDataArray_h
++#undef SetTupleValue
++#undef InsertNextTupleValue
++#undef GetTupleValue
++#endif
++
+ #endif  //#ifndef PCL_IO_VTK_IO_H_
+ 
+diff --git a/io/src/vtk_lib_io.cpp b/io/src/vtk_lib_io.cpp
+index 3e70df0..cc537c1 100644
+--- a/io/src/vtk_lib_io.cpp
++++ b/io/src/vtk_lib_io.cpp
+@@ -46,6 +46,13 @@
+ #include <vtkImageShiftScale.h>
+ #include <vtkPNGWriter.h>
+ 
++// Support for VTK 7.1 upwards
++#ifdef vtkGenericDataArray_h
++#define SetTupleValue SetTypedTuple
++#define InsertNextTupleValue InsertNextTypedTuple
++#define GetTupleValue GetTypedTuple
++#endif
++
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ int
+ pcl::io::loadPolygonFile (const std::string &file_name, pcl::PolygonMesh& mesh)
+diff --git a/surface/src/vtk_smoothing/vtk_utils.cpp b/surface/src/vtk_smoothing/vtk_utils.cpp
+index ed8dc77..b8b9863 100644
+--- a/surface/src/vtk_smoothing/vtk_utils.cpp
++++ b/surface/src/vtk_smoothing/vtk_utils.cpp
+@@ -49,6 +49,12 @@
+ #include <vtkPointData.h>
+ #include <vtkFloatArray.h>
+ 
++// Support for VTK 7.1 upwards
++#ifdef vtkGenericDataArray_h
++#define SetTupleValue SetTypedTuple
++#define InsertNextTupleValue InsertNextTypedTuple
++#define GetTupleValue GetTypedTuple
++#endif
+ 
+ //////////////////////////////////////////////////////////////////////////////////////////////
+ int
+diff --git a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp
+index 3706f61..4fb134c 100644
+--- a/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp
++++ b/visualization/include/pcl/visualization/impl/pcl_visualizer.hpp
+@@ -64,6 +64,13 @@
+ 
+ #include <pcl/visualization/common/shapes.h>
+ 
++// Support for VTK 7.1 upwards
++#ifdef vtkGenericDataArray_h
++#define SetTupleValue SetTypedTuple
++#define InsertNextTupleValue InsertNextTypedTuple
++#define GetTupleValue GetTypedTuple
++#endif
++
+ //////////////////////////////////////////////////////////////////////////////////////////////
+ template <typename PointT> bool
+ pcl::visualization::PCLVisualizer::addPointCloud (
+@@ -1843,4 +1850,10 @@ pcl::visualization::PCLVisualizer::updatePolygonMesh (
+   return (true);
+ }
+ 
++#ifdef vtkGenericDataArray_h
++#undef SetTupleValue
++#undef InsertNextTupleValue
++#undef GetTupleValue
++#endif
++
+ #endif
+diff --git a/visualization/src/pcl_visualizer.cpp b/visualization/src/pcl_visualizer.cpp
+index 7c84b75..5b12331 100644
+--- a/visualization/src/pcl_visualizer.cpp
++++ b/visualization/src/pcl_visualizer.cpp
+@@ -104,6 +104,13 @@
+ #include <boost/filesystem.hpp>
+ #include <pcl/console/parse.h>
+ 
++// Support for VTK 7.1 upwards
++#ifdef vtkGenericDataArray_h
++#define SetTupleValue SetTypedTuple
++#define InsertNextTupleValue InsertNextTypedTuple
++#define GetTupleValue GetTypedTuple
++#endif
++
+ #if defined(_WIN32)
+   // Remove macros defined in Windows.h
+   #undef near
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/pcl.git/commitdiff/7bcf787f7ec2dd91571ce380240f8c8cf43e19ee



More information about the pld-cvs-commit mailing list