[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