]> git.pld-linux.org Git - packages/pcl.git/commitdiff
- fix building with vtk 7.1
authorJan Rękorajski <baggins@pld-linux.org>
Wed, 25 Jan 2017 07:00:26 +0000 (08:00 +0100)
committerJan Rękorajski <baggins@pld-linux.org>
Wed, 25 Jan 2017 07:00:26 +0000 (08:00 +0100)
- rel 12

pcl.spec
vtk7.patch [new file with mode: 0644]
vtk71.patch [new file with mode: 0644]

index 1d05c73905f19a14bb51e2e90011cce6a8401a0a..ce1495e7d541d929e05cb40938fa85d18d1478e0 100644 (file)
--- 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 (file)
index 0000000..cade877
--- /dev/null
@@ -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 (file)
index 0000000..a011a1b
--- /dev/null
@@ -0,0 +1,129 @@
+From 7884dbd4cbe3053b6f594d4b05e21ea604cb51af Mon Sep 17 00:00:00 2001
+From: v4hn <me@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
This page took 0.267342 seconds and 4 git commands to generate.