From f42dc93cedd09c33e20f5183820e1512ecb1ffee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Wed, 8 May 2019 23:33:07 +0200 Subject: [PATCH] - up to 1.9.1 --- eigen-dependency.patch | 11 -- fix-return-type.patch | 22 --- pcl-fz_api.patch | 19 --- pcl-openni.patch | 71 --------- pcl-tawara.patch | 276 --------------------------------- pcl.spec | 128 +++++++-------- vtk7.patch | 109 ------------- vtk71.patch | 129 ---------------- vtkOpenGL2.patch | 343 ----------------------------------------- 9 files changed, 65 insertions(+), 1043 deletions(-) delete mode 100644 eigen-dependency.patch delete mode 100644 fix-return-type.patch delete mode 100644 pcl-fz_api.patch delete mode 100644 pcl-openni.patch delete mode 100644 pcl-tawara.patch delete mode 100644 vtk7.patch delete mode 100644 vtk71.patch delete mode 100644 vtkOpenGL2.patch diff --git a/eigen-dependency.patch b/eigen-dependency.patch deleted file mode 100644 index d111b1f..0000000 --- a/eigen-dependency.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pcl-pcl-1.7.2/common/CMakeLists.txt.orig 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/common/CMakeLists.txt 2015-11-23 07:51:39.174060606 +0100 -@@ -176,7 +176,7 @@ - include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include") - PCL_ADD_LIBRARY("${LIB_NAME}" "${SUBSYS_NAME}" ${srcs} ${kissfft_srcs} ${incs} ${common_incs} ${impl_incs} ${ros_incs} ${tools_incs} ${kissfft_incs} ${common_incs_impl} ${range_image_incs} ${range_image_incs_impl}) - #PCL_ADD_LIBRARY("${LIB_NAME}" "${SUBSYS_NAME}" ${srcs} ${incs} ${common_incs} ${impl_incs} ${ros_incs} ${tools_incs} ${common_incs_impl} ${range_image_incs} ${range_image_incs_impl}) -- PCL_MAKE_PKGCONFIG("${LIB_NAME}" "${SUBSYS_NAME}" "${SUBSYS_DESC}" "" "" -+ PCL_MAKE_PKGCONFIG("${LIB_NAME}" "${SUBSYS_NAME}" "${SUBSYS_DESC}" "" "eigen3" - "" "" "") - - # Install include files diff --git a/fix-return-type.patch b/fix-return-type.patch deleted file mode 100644 index 15ebdc3..0000000 --- a/fix-return-type.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- pcl-pcl-1.7.2/registration/include/pcl/registration/correspondence_estimation_backprojection.h~ 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/registration/include/pcl/registration/correspondence_estimation_backprojection.h 2017-01-26 23:11:14.970602304 +0100 -@@ -184,7 +184,7 @@ - * cloud for computing correspondences. By default we use k = 10 nearest - * neighbors. - */ -- inline void -+ inline unsigned int - getKSearch () const { return (k_); } - - /** \brief Clone and cast to CorrespondenceEstimationBase */ ---- pcl-pcl-1.7.2/registration/include/pcl/registration/correspondence_estimation_normal_shooting.h~ 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/registration/include/pcl/registration/correspondence_estimation_normal_shooting.h 2017-01-26 23:12:02.468654319 +0100 -@@ -180,7 +180,7 @@ - * cloud for computing correspondences. By default we use k = 10 nearest - * neighbors. - */ -- inline void -+ inline unsigned int - getKSearch () const { return (k_); } - - /** \brief Clone and cast to CorrespondenceEstimationBase */ diff --git a/pcl-fz_api.patch b/pcl-fz_api.patch deleted file mode 100644 index 0d0ff83..0000000 --- a/pcl-fz_api.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -urN pcl-pcl-1.7.2.org/cmake/Modules/FindFZAPI.cmake pcl-pcl-1.7.2/cmake/Modules/FindFZAPI.cmake ---- pcl-pcl-1.7.2.org/cmake/Modules/FindFZAPI.cmake 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/cmake/Modules/FindFZAPI.cmake 2014-11-07 15:22:34.406580761 +0100 -@@ -13,7 +13,7 @@ - DOC "Fotonic include directories") - - # Find libraries -- find_library(FZAPI_LIBS fotonic_fz_api -+ find_library(FZAPI_LIBS fz_api - HINTS "${FZ_API_DIR}/Release" NO_DEFAULT_PATH - DOC "Fotonic libraries") - else() -@@ -23,4 +23,4 @@ - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(FZAPI DEFAULT_MSG - FZAPI_LIBS FZAPI_INCLUDE_DIR) -- -\ Brak znaku nowej linii na końcu pliku -+ diff --git a/pcl-openni.patch b/pcl-openni.patch deleted file mode 100644 index 924bdbe..0000000 --- a/pcl-openni.patch +++ /dev/null @@ -1,71 +0,0 @@ ---- pcl-pcl-1.7.2/./PCLConfig.cmake.in~ 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/./PCLConfig.cmake.in 2014-11-11 11:37:12.494124290 +0100 -@@ -182,13 +182,13 @@ macro(find_openni) - endif(NOT OPENNI_ROOT AND ("@HAVE_OPENNI@" STREQUAL "ON")) - - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_OPENNI openni-dev) -+ pkg_check_modules(PC_OPENNI libopenni) - endif(PKG_CONFIG_FOUND) - find_path(OPENNI_INCLUDE_DIRS XnStatus.h - HINTS ${PC_OPENNI_INCLUDEDIR} ${PC_OPENNI_INCLUDE_DIRS} - "${OPENNI_ROOT}" "$ENV{OPENNI_ROOT}" - PATHS "$ENV{OPEN_NI_INCLUDE}" "${OPENNI_INCLUDE_DIRS_HINT}" -- PATH_SUFFIXES include/openni Include) -+ PATH_SUFFIXES include/openni include/ni Include) - #add a hint so that it can find it without the pkg-config - set(OPENNI_SUFFIX) - if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8) -@@ -222,7 +222,7 @@ macro(find_openni2) - endif(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 8) - - if(PKG_CONFIG_FOUND) -- pkg_check_modules(PC_OPENNI2 openni2-dev) -+ pkg_check_modules(PC_OPENNI2 libopenni2) - endif(PKG_CONFIG_FOUND) - - find_path(OPENNI2_INCLUDE_DIRS OpenNI.h ---- pcl-pcl-1.7.2/./cmake/Modules/FindOpenNI.cmake~ 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/./cmake/Modules/FindOpenNI.cmake 2014-11-11 11:37:58.671931739 +0100 -@@ -35,9 +35,9 @@ if(NOT WIN32) - endif(NOT WIN32) - - if(${CMAKE_VERSION} VERSION_LESS 2.8.2) -- pkg_check_modules(PC_OPENNI openni-dev) -+ pkg_check_modules(PC_OPENNI libopenni) - else() -- pkg_check_modules(PC_OPENNI QUIET openni-dev) -+ pkg_check_modules(PC_OPENNI QUIET libopenni) - endif() - - set(OPENNI_DEFINITIONS ${PC_OPENNI_CFLAGS_OTHER}) ---- pcl-pcl-1.7.2/./io/CMakeLists.txt~ 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/./io/CMakeLists.txt 2014-11-11 11:38:42.636351255 +0100 -@@ -329,10 +329,10 @@ if(build) - set(EXT_DEPS eigen3) - - if(OPENNI_FOUND) -- list(APPEND EXT_DEPS openni-dev) -+ list(APPEND EXT_DEPS libopenni) - endif(OPENNI_FOUND) - if(OPENNI2_FOUND) -- list(APPEND EXT_DEPS openni2-dev) -+ list(APPEND EXT_DEPS libopenni2) - endif(OPENNI2_FOUND) - - PCL_MAKE_PKGCONFIG("${LIB_NAME}" "${SUBSYS_NAME}" "${SUBSYS_DESC}" ---- pcl-pcl-1.7.2/./visualization/CMakeLists.txt~ 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/./visualization/CMakeLists.txt 2014-11-11 11:39:19.057251297 +0100 -@@ -154,10 +154,10 @@ if(build) - - set(EXT_DEPS "") - if(OPENNI_FOUND) -- list(APPEND EXT_DEPS openni-dev) -+ list(APPEND EXT_DEPS libopenni) - endif(OPENNI_FOUND) - if(OPENNI2_FOUND) -- list(APPEND EXT_DEPS openni2-dev) -+ list(APPEND EXT_DEPS libopenni2) - endif(OPENNI2_FOUND) - PCL_MAKE_PKGCONFIG("${LIB_NAME}" "${SUBSYS_NAME}" "${SUBSYS_DESC}" - "${SUBSYS_DEPS}" "${EXT_DEPS}" "" "" "") diff --git a/pcl-tawara.patch b/pcl-tawara.patch deleted file mode 100644 index c352860..0000000 --- a/pcl-tawara.patch +++ /dev/null @@ -1,276 +0,0 @@ -diff -urN pcl-pcl-1.7.2.org/tools/CMakeLists.txt pcl-pcl-1.7.2/tools/CMakeLists.txt ---- pcl-pcl-1.7.2.org/tools/CMakeLists.txt 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/tools/CMakeLists.txt 2014-11-07 15:21:20.377848947 +0100 -@@ -253,14 +253,14 @@ - PCL_ADD_EXECUTABLE (pcl_transform_from_viewpoint "${SUBSYS_NAME}" transform_from_viewpoint.cpp) - target_link_libraries (pcl_transform_from_viewpoint pcl_common pcl_io pcl_registration) - -- find_package(tide QUIET) -- if(Tide_FOUND) -- include_directories(${Tide_INCLUDE_DIRS}) -- add_definitions(${Tide_DEFINITIONS}) -+ find_package(tawara QUIET) -+ if(Tawara_FOUND) -+ include_directories(${Tawara_INCLUDE_DIRS}) -+ add_definitions(${Tawara_DEFINITIONS}) - PCL_ADD_EXECUTABLE(pcl_video "${SUBSYS_NAME}" pcl_video.cpp) - target_link_libraries(pcl_video pcl_common pcl_io pcl_visualization -- ${Tide_LIBRARIES}) -- endif(Tide_FOUND) -+ ${Tawara_LIBRARIES}) -+ endif(Tawara_FOUND) - - - endif (BUILD_tools) -diff -urN pcl-pcl-1.7.2.org/tools/pcl_video.cpp pcl-pcl-1.7.2/tools/pcl_video.cpp ---- pcl-pcl-1.7.2.org/tools/pcl_video.cpp 2014-09-10 23:22:57.000000000 +0200 -+++ pcl-pcl-1.7.2/tools/pcl_video.cpp 2014-11-07 15:21:20.377848947 +0100 -@@ -36,13 +36,13 @@ - - #include - #include --#include --#include --#include --#include --#include --#include --#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include - #include - #include - #include -@@ -74,12 +74,12 @@ - // cluster's timecode measured in the segment's timecode scale. - bpt::ptime blk_start(bpt::microsec_clock::local_time()); - bpt::time_duration blk_offset = blk_start - cltr_start_; -- tide::BlockElement::Ptr block(new tide::SimpleBlock(1, -+ tawara::BlockElement::Ptr block(new tawara::SimpleBlock(1, - blk_offset.total_microseconds() / 10000)); - // Here the frame data itself is added to the block - pcl::PCLPointCloud2 blob; - pcl::toPCLPointCloud2(*cloud, blob); -- tide::Block::FramePtr frame_ptr(new tide::Block::Frame(blob.data.begin(), -+ tawara::Block::FramePtr frame_ptr(new tawara::Block::Frame(blob.data.begin(), - blob.data.end())); - block->push_back(frame_ptr); - cluster_->push_back(block); -@@ -106,7 +106,7 @@ - // Create a new cluster - cltr_start_ = bpt::microsec_clock::local_time(); - bpt::time_duration cltr_offset = cltr_start_ - seg_start_; -- cluster_.reset(new tide::FileCluster( -+ cluster_.reset(new tawara::FileCluster( - cltr_offset.total_microseconds() / 10000)); - cluster_->write(stream_); - } -@@ -115,14 +115,14 @@ - int Run() - { - // Write the EBML PCLHeader. This specifies that the file is an EBML -- // file, and is a Tide document. -- tide::EBMLElement ebml_el; -+ // file, and is a Tawara document. -+ tawara::EBMLElement ebml_el; - ebml_el.write(stream_); - - // Open a new segment in the file. This will write some initial meta-data - // and place some padding at the start of the file for final meta-data to - // be written after tracks, clusters, etc. have been written. -- tide::Segment segment; -+ tawara::Segment segment; - segment.write(stream_); - // Set up the segment information so it can be used while writing tracks - // and clusters. -@@ -136,7 +136,7 @@ - segment.info.filename(filename_); - // The segment's timecode scale is possibly the most important value in the - // segment meta-data data. Without it, timely playback of frames is not -- // possible. It has a sensible default (defined in the Tide specification), -+ // possible. It has a sensible default (defined in the Tawara specification), - // but here we set it to ten milliseconds for demonstrative purposes. - segment.info.timecode_scale(10000000); - // The segment's date should be set. It is the somewhat-awkward value of -@@ -148,16 +148,16 @@ - segment.info.date(td.total_microseconds() * 1000); - // Let's give the segment an inspirational title. - segment.info.title(title_); -- // It sometimes helps to know what created a Tide file. -- segment.info.muxing_app("libtide-0.1"); -+ // It sometimes helps to know what created a Tawara file. -+ segment.info.muxing_app("libtawara-0.1"); - segment.info.writing_app("pcl_video"); - - // Set up the tracks meta-data and write it to the file. -- tide::Tracks tracks; -+ tawara::Tracks tracks; - // Each track is represented in the Tracks information by a TrackEntry. - // This specifies such things as the track number, the track's UID and the - // codec used. -- tide::TrackEntry::Ptr track(new tide::TrackEntry(1, 1, "pointcloud2")); -+ tawara::TrackEntry::Ptr track(new tawara::TrackEntry(1, 1, "pointcloud2")); - track->name("3D video"); - track->codec_name("pcl::PCLPointCloud2"); - // Adding each level 1 element (only the first occurance, in the case of -@@ -183,7 +183,7 @@ - // seconds being usable. - // The first cluster will appear at this point in the file, so it is - // recorded in the segment's index for faster file reading. -- segment.index.insert(std::make_pair(tide::ids::Cluster, -+ segment.index.insert(std::make_pair(tawara::ids::Cluster, - segment.to_segment_offset(stream_.tellp()))); - - // Set up a callback to get clouds from a grabber and write them to the -@@ -195,7 +195,7 @@ - // Start the first cluster - cltr_start_ = bpt::microsec_clock::local_time(); - bpt::time_duration cltr_offset = cltr_start_ - seg_start_; -- cluster_.reset(new tide::FileCluster( -+ cluster_.reset(new tawara::FileCluster( - cltr_offset.total_microseconds() / 10000)); - cluster_->write(stream_); - last_ = pcl::getTime(); -@@ -224,7 +224,7 @@ - std::string filename_; - std::string title_; - std::fstream stream_; -- tide::FileCluster::Ptr cluster_; -+ tawara::FileCluster::Ptr cluster_; - bpt::ptime seg_start_; - bpt::ptime cltr_start_; - unsigned int count_; -@@ -245,30 +245,30 @@ - int Run() - { - // Open the file and check for the EBML header. This confirms that the file -- // is an EBML file, and is a Tide document. -+ // is an EBML file, and is a Tawara document. - std::ifstream stream(filename_, std::ios::in); -- tide::ids::ReadResult id = tide::ids::read(stream); -- if (id.first != tide::ids::EBML) -+ tawara::ids::ReadResult id = tawara::ids::read(stream); -+ if (id.first != tawara::ids::EBML) - { - std::cerr << "File does not begin with an EBML header.\n"; - return 1; - } -- tide::EBMLElement ebml_el; -+ tawara::EBMLElement ebml_el; - ebml_el.read(stream); -- if (ebml_el.doc_type() != tide::TideDocType) -+ if (ebml_el.doc_type() != tawara::TawaraDocType) - { -- std::cerr << "Specified EBML file is not a Tide document.\n"; -+ std::cerr << "Specified EBML file is not a Tawara document.\n"; - return 1; - } -- if (ebml_el.read_version() > tide::TideEBMLVersion) -+ if (ebml_el.read_version() > tawara::TawaraEBMLVersion) - { -- std::cerr << "This Tide document requires read version " << -+ std::cerr << "This Tawara document requires read version " << - ebml_el.read_version() << ".\n"; - return 1; - } -- if (ebml_el.doc_read_version() > tide::TideVersionMajor) -+ if (ebml_el.doc_read_version() > tawara::TawaraVersionMajor) - { -- std::cerr << "This Tide document requires doc read version " << -+ std::cerr << "This Tawara document requires doc read version " << - ebml_el.read_version() << ".\n"; - return 1; - } -@@ -278,13 +278,13 @@ - // and read (or build, if necessary) an index of the level 1 elements. With - // this index, we will be able to quickly jump to important elements such - // as the Tracks and the first Cluster. -- id = tide::ids::read(stream); -- if (id.first != tide::ids::Segment) -+ id = tawara::ids::read(stream); -+ if (id.first != tawara::ids::Segment) - { - std::cerr << "Segment element not found\n"; - return 1; - } -- tide::Segment segment; -+ tawara::Segment segment; - segment.read(stream); - // The segment's date is stored as the number of nanoseconds since the - // start of the millenium. Boost::Date_Time is invaluable here. -@@ -298,18 +298,18 @@ - // one will exist). - // We can guarantee that there is at least one in the index because - // otherwise the call to segment.read() would have thrown an error. -- std::streampos tracks_pos(segment.index.find(tide::ids::Tracks)->second); -+ std::streampos tracks_pos(segment.index.find(tawara::ids::Tracks)->second); - stream.seekg(segment.to_stream_offset(tracks_pos)); - // To be sure, we can check it really is a Tracks element, but this is - // usually not necessary. -- id = tide::ids::read(stream); -- if (id.first != tide::ids::Tracks) -+ id = tawara::ids::read(stream); -+ if (id.first != tawara::ids::Tracks) - { - std::cerr << "Tracks element not at indicated position.\n"; - return 1; - } - // Read the tracks -- tide::Tracks tracks; -+ tawara::Tracks tracks; - tracks.read(stream); - // Now we can introspect the tracks available in the file. - if (tracks.empty()) -@@ -334,7 +334,7 @@ - // reads blocks from the file on demand. This is usually a better - // option tham the memory-based cluster when the size of the stored - // data is large. -- for (tide::Segment::FileBlockIterator block(segment.blocks_begin_file(stream)); -+ for (tawara::Segment::FileBlockIterator block(segment.blocks_begin_file(stream)); - block != segment.blocks_end_file(stream); ++block) - { - bpt::time_duration blk_offset(bpt::microseconds(( -@@ -354,7 +354,7 @@ - // so there is only one frame per block. This is the general - // case; lacing is typically only used when the frame size is - // very small to reduce overhead. -- tide::BlockElement::FramePtr frame_data(*block->begin()); -+ tawara::BlockElement::FramePtr frame_data(*block->begin()); - // Copy the frame data into a serialised cloud structure - pcl::PCLPointCloud2 blob; - blob.height = 480; ---- pcl-pcl-1.7.0/tools/pcl_video.cpp.orig 2013-09-20 15:25:35.239248341 +0200 -+++ pcl-pcl-1.7.0/tools/pcl_video.cpp 2013-09-20 19:03:40.298699215 +0200 -@@ -36,6 +36,8 @@ - - #include - #include -+#include -+#include - #include - #include - #include -@@ -61,7 +63,7 @@ - public: - Recorder(std::string const& filename, std::string const& title) - : filename_(filename), title_(title), -- stream_(filename, std::ios::in|std::ios::out|std::ios::trunc), -+ stream_(filename.c_str(), std::ios::in|std::ios::out|std::ios::trunc), - count_(0) - { - } -@@ -248,7 +248,7 @@ class Player - { - // Open the file and check for the EBML header. This confirms that the file - // is an EBML file, and is a Tawara document. -- std::ifstream stream(filename_, std::ios::in); -+ std::ifstream stream(filename_.c_str(), std::ios::in); - tawara::ids::ReadResult id = tawara::ids::read(stream); - if (id.first != tawara::ids::EBML) - { - diff --git a/pcl.spec b/pcl.spec index 59da151..2fa9765 100644 --- a/pcl.spec +++ b/pcl.spec @@ -10,21 +10,13 @@ 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: 13 +Version: 1.9.1 +Release: 1 License: BSD Group: Libraries #Source0Download: http://pointclouds.org/downloads/ Source0: https://github.com/PointCloudLibrary/pcl/archive/%{name}-%{version}.tar.gz -# Source0-md5: 02c72eb6760fcb1f2e359ad8871b9968 -Patch0: %{name}-fz_api.patch -Patch1: %{name}-tawara.patch -Patch2: %{name}-openni.patch -Patch3: eigen-dependency.patch -Patch4: vtk7.patch -Patch5: vtk71.patch -Patch6: vtkOpenGL2.patch -Patch7: fix-return-type.patch +# Source0-md5: 4d4cfb6bf87cc1f08703deeeac1eb6e2 URL: http://pointclouds.org/ BuildRequires: OpenGL-devel BuildRequires: OpenGL-GLU-devel @@ -43,6 +35,7 @@ BuildRequires: libpcap-devel BuildRequires: libpng-devel BuildRequires: libstdc++-devel BuildRequires: libusb-devel >= 1.0 +BuildRequires: netcdf-cxx-devel BuildRequires: qhull-devel BuildRequires: qt4-build >= 4 BuildRequires: python @@ -113,14 +106,6 @@ Dokumentacja API oraz wprowadzenie do biblioteki PCL. %prep %setup -q -n pcl-pcl-%{version} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 %build mkdir build @@ -160,7 +145,9 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/pcl_compute_hausdorff %attr(755,root,root) %{_bindir}/pcl_compute_hull %attr(755,root,root) %{_bindir}/pcl_concatenate_points_pcd +%attr(755,root,root) %{_bindir}/pcl_converter %attr(755,root,root) %{_bindir}/pcl_convert_pcd_ascii_binary +%attr(755,root,root) %{_bindir}/pcl_crf_segmentation %attr(755,root,root) %{_bindir}/pcl_demean_cloud %attr(755,root,root) %{_bindir}/pcl_fast_bilateral_filter %attr(755,root,root) %{_bindir}/pcl_generate @@ -174,7 +161,9 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/pcl_ndt2d %attr(755,root,root) %{_bindir}/pcl_ndt3d %attr(755,root,root) %{_bindir}/pcl_obj2pcd +%attr(755,root,root) %{_bindir}/pcl_obj2ply %attr(755,root,root) %{_bindir}/pcl_oni2pcd +%attr(755,root,root) %{_bindir}/pcl_openni2_viewer %attr(755,root,root) %{_bindir}/pcl_openni_grabber_depth_example %attr(755,root,root) %{_bindir}/pcl_openni_grabber_example %attr(755,root,root) %{_bindir}/pcl_openni_pcd_recorder @@ -183,6 +172,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/pcl_outofcore_viewer %attr(755,root,root) %{_bindir}/pcl_pcd_change_viewpoint %attr(755,root,root) %{_bindir}/pcl_pcd_convert_NaN_nan +%attr(755,root,root) %{_bindir}/pcl_pcd_introduce_nan %attr(755,root,root) %{_bindir}/pcl_pclzf2pcd %attr(755,root,root) %{_bindir}/pcl_ply2obj %attr(755,root,root) %{_bindir}/pcl_ply2ply @@ -192,7 +182,10 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/pcl_radius_filter %attr(755,root,root) %{_bindir}/pcl_sac_segmentation_plane %attr(755,root,root) %{_bindir}/pcl_train_linemod_template +%attr(755,root,root) %{_bindir}/pcl_train_unary_classifier +%attr(755,root,root) %{_bindir}/pcl_unary_classifier_segment %attr(755,root,root) %{_bindir}/pcl_uniform_sampling +%attr(755,root,root) %{_bindir}/pcl_vlp_viewer %attr(755,root,root) %{_bindir}/pcl_xyz2pcd %if %{with vtk} %attr(755,root,root) %{_bindir}/pcl_add_gaussian_noise @@ -260,42 +253,46 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/pcl_vtk2ply %endif %attr(755,root,root) %{_libdir}/libpcl_common.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_common.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_common.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_features.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_features.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_features.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_filters.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_filters.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_filters.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_io.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_io.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_io.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_io_ply.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_io_ply.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_io_ply.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_kdtree.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_kdtree.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_kdtree.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_keypoints.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_keypoints.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_keypoints.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_octree.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_octree.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_octree.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_outofcore.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_outofcore.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_outofcore.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_recognition.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_recognition.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_recognition.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_registration.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_registration.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_registration.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_sample_consensus.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_sample_consensus.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_sample_consensus.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_search.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_search.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_search.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_segmentation.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_segmentation.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_segmentation.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_surface.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_surface.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_surface.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_tracking.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_tracking.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_tracking.so.1.9 +%attr(755,root,root) %{_libdir}/libpcl_ml.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libpcl_ml.so.1.9 +%attr(755,root,root) %{_libdir}/libpcl_stereo.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libpcl_stereo.so.1.9 %if %{with vtk} %attr(755,root,root) %{_libdir}/libpcl_people.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_people.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_people.so.1.9 %attr(755,root,root) %{_libdir}/libpcl_visualization.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcl_visualization.so.1.7 +%attr(755,root,root) %ghost %{_libdir}/libpcl_visualization.so.1.9 %endif %files devel @@ -303,10 +300,11 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libpcl_common.so %attr(755,root,root) %{_libdir}/libpcl_features.so %attr(755,root,root) %{_libdir}/libpcl_filters.so -%attr(755,root,root) %{_libdir}/libpcl_io.so %attr(755,root,root) %{_libdir}/libpcl_io_ply.so +%attr(755,root,root) %{_libdir}/libpcl_io.so %attr(755,root,root) %{_libdir}/libpcl_kdtree.so %attr(755,root,root) %{_libdir}/libpcl_keypoints.so +%attr(755,root,root) %{_libdir}/libpcl_ml.so %attr(755,root,root) %{_libdir}/libpcl_octree.so %attr(755,root,root) %{_libdir}/libpcl_outofcore.so %attr(755,root,root) %{_libdir}/libpcl_recognition.so @@ -314,41 +312,45 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libpcl_sample_consensus.so %attr(755,root,root) %{_libdir}/libpcl_search.so %attr(755,root,root) %{_libdir}/libpcl_segmentation.so +%attr(755,root,root) %{_libdir}/libpcl_stereo.so %attr(755,root,root) %{_libdir}/libpcl_surface.so %attr(755,root,root) %{_libdir}/libpcl_tracking.so %if %{with vtk} %attr(755,root,root) %{_libdir}/libpcl_people.so %attr(755,root,root) %{_libdir}/libpcl_visualization.so %endif -%{_includedir}/pcl-1.7 -%{_pkgconfigdir}/pcl_common-1.7.pc -%{_pkgconfigdir}/pcl_features-1.7.pc -%{_pkgconfigdir}/pcl_filters-1.7.pc -%{_pkgconfigdir}/pcl_geometry-1.7.pc -%{_pkgconfigdir}/pcl_io-1.7.pc -%{_pkgconfigdir}/pcl_kdtree-1.7.pc -%{_pkgconfigdir}/pcl_keypoints-1.7.pc -%{_pkgconfigdir}/pcl_octree-1.7.pc -%{_pkgconfigdir}/pcl_outofcore-1.7.pc -%{_pkgconfigdir}/pcl_recognition-1.7.pc -%{_pkgconfigdir}/pcl_registration-1.7.pc -%{_pkgconfigdir}/pcl_sample_consensus-1.7.pc -%{_pkgconfigdir}/pcl_search-1.7.pc -%{_pkgconfigdir}/pcl_segmentation-1.7.pc -%{_pkgconfigdir}/pcl_surface-1.7.pc -%{_pkgconfigdir}/pcl_tracking-1.7.pc +%{_includedir}/pcl-1.9 +%{_pkgconfigdir}/pcl_common-1.9.pc +%{_pkgconfigdir}/pcl_features-1.9.pc +%{_pkgconfigdir}/pcl_filters-1.9.pc +%{_pkgconfigdir}/pcl_geometry-1.9.pc +%{_pkgconfigdir}/pcl_io-1.9.pc +%{_pkgconfigdir}/pcl_kdtree-1.9.pc +%{_pkgconfigdir}/pcl_keypoints-1.9.pc +%{_pkgconfigdir}/pcl_octree-1.9.pc +%{_pkgconfigdir}/pcl_outofcore-1.9.pc +%{_pkgconfigdir}/pcl_recognition-1.9.pc +%{_pkgconfigdir}/pcl_registration-1.9.pc +%{_pkgconfigdir}/pcl_sample_consensus-1.9.pc +%{_pkgconfigdir}/pcl_search-1.9.pc +%{_pkgconfigdir}/pcl_segmentation-1.9.pc +%{_pkgconfigdir}/pcl_surface-1.9.pc +%{_pkgconfigdir}/pcl_tracking-1.9.pc +%{_pkgconfigdir}/pcl_2d-1.9.pc +%{_pkgconfigdir}/pcl_ml-1.9.pc +%{_pkgconfigdir}/pcl_stereo-1.9.pc %if %{with vtk} -%{_pkgconfigdir}/pcl_people-1.7.pc -%{_pkgconfigdir}/pcl_visualization-1.7.pc +%{_pkgconfigdir}/pcl_people-1.9.pc +%{_pkgconfigdir}/pcl_visualization-1.9.pc %endif -%dir %{_datadir}/pcl-1.7 -%{_datadir}/pcl-1.7/PCLConfig*.cmake +%dir %{_datadir}/pcl-1.9 +%{_datadir}/pcl-1.9/PCLConfig*.cmake %if %{with apidocs} %files apidocs %defattr(644,root,root,755) -%dir %{_docdir}/pcl-1.7 -%{_docdir}/pcl-1.7/advanced -%{_docdir}/pcl-1.7/html -%{_docdir}/pcl-1.7/tutorials +%dir %{_docdir}/pcl-1.9 +%{_docdir}/pcl-1.9/advanced +%{_docdir}/pcl-1.9/html +%{_docdir}/pcl-1.9/tutorials %endif diff --git a/vtk7.patch b/vtk7.patch deleted file mode 100644 index 24ebcf9..0000000 --- a/vtk7.patch +++ /dev/null @@ -1,109 +0,0 @@ -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 - #include - #include --#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 - #include - #else -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 - --#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 - #else - #include -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 - #include - --#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 - #include - #else -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 - #include - #include --#if VTK_MAJOR_VERSION==6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6) -+#if VTK_MAJOR_VERSION>=6 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6) - #include - #endif - #include -@@ -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 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6) - pcl::visualization::PCLPlotter ph_global; - #endif - boost::shared_ptr 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 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_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 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_VERSION>6) - boost::shared_ptr 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 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_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 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_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 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_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 || (VTK_MAJOR_VERSION==5 && VTK_MINOR_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 deleted file mode 100644 index a011a1b..0000000 --- a/vtk71.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 7884dbd4cbe3053b6f594d4b05e21ea604cb51af Mon Sep 17 00:00:00 2001 -From: v4hn -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 - #include - -+// Support for VTK 7.1 upwards -+#ifdef vtkGenericDataArray_h -+#define SetTupleValue SetTypedTuple -+#define InsertNextTupleValue InsertNextTypedTuple -+#define GetTupleValue GetTypedTuple -+#endif -+ - /////////////////////////////////////////////////////////////////////////////////////////// - template void - pcl::io::vtkPolyDataToPointCloud (vtkPolyData* const polydata, pcl::PointCloud& cloud) -@@ -503,5 +510,11 @@ pcl::io::pointCloudTovtkStructuredGrid (const pcl::PointCloud& 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 - #include - -+// 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 - #include - -+// 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 - -+// Support for VTK 7.1 upwards -+#ifdef vtkGenericDataArray_h -+#define SetTupleValue SetTypedTuple -+#define InsertNextTupleValue InsertNextTypedTuple -+#define GetTupleValue GetTypedTuple -+#endif -+ - ////////////////////////////////////////////////////////////////////////////////////////////// - template 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 - #include - -+// 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 diff --git a/vtkOpenGL2.patch b/vtkOpenGL2.patch deleted file mode 100644 index 169d23e..0000000 --- a/vtkOpenGL2.patch +++ /dev/null @@ -1,343 +0,0 @@ -From d0efc67fa0d5f3fb3fb99990a6b2a1967a93c229 Mon Sep 17 00:00:00 2001 -From: Sergey Alexandrov -Date: Sat, 13 Feb 2016 13:31:54 +0100 -Subject: [PATCH] Add CMake variable and C++ macro - VTK_RENDERING_BACKEND_OPENGL_VERSION - -These can be used at configuration and compilation times to adjust for -the currently used backend. ---- - CMakeLists.txt | 12 +++++++++++- - pcl_config.h.in | 4 ++++ - 2 files changed, 15 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 36fc4c9..e5fd763 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -361,7 +361,12 @@ option(WITH_VTK "Build VTK-Visualizations" TRUE) - if(WITH_VTK AND NOT ANDROID) - find_package(VTK) - if(VTK_FOUND) -- message(STATUS "VTK_MAJOR_VERSION ${VTK_MAJOR_VERSION}") -+ if(NOT DEFINED VTK_RENDERING_BACKEND) -+ # On old VTK versions this variable does not exist. In this case it is -+ # safe to assume OpenGL backend -+ set(VTK_RENDERING_BACKEND "OpenGL") -+ endif() -+ message(STATUS "VTK_MAJOR_VERSION ${VTK_MAJOR_VERSION}, rendering backend: ${VTK_RENDERING_BACKEND}") - if (PCL_SHARED_LIBS OR - (NOT (PCL_SHARED_LIBS) AND NOT (VTK_BUILD_SHARED_LIBS))) - set(VTK_FOUND TRUE) -@@ -377,6 +382,11 @@ if(WITH_VTK AND NOT ANDROID) - option (VTK_USE_COCOA "Use Cocoa for VTK render windows" ON) - MARK_AS_ADVANCED (VTK_USE_COCOA) - endif (APPLE) -+ if(${VTK_RENDERING_BACKEND} STREQUAL "OpenGL") -+ set(VTK_RENDERING_BACKEND_OPENGL_VERSION "1") -+ elseif(${VTK_RENDERING_BACKEND} STREQUAL "OpenGL2") -+ set(VTK_RENDERING_BACKEND_OPENGL_VERSION "2") -+ endif() - set(HAVE_VTK ON) - else () - set(VTK_FOUND OFF) -diff --git a/pcl_config.h.in b/pcl_config.h.in -index e4b10b0..3c25a06 100644 ---- a/pcl_config.h.in -+++ b/pcl_config.h.in -@@ -71,3 +71,7 @@ - /* Address the cases where on MacOS and OpenGL and GLUT are not frameworks */ - #cmakedefine OPENGL_IS_A_FRAMEWORK - #cmakedefine GLUT_IS_A_FRAMEWORK -+ -+/* Version of OpenGL used by VTK as rendering backend */ -+#define VTK_RENDERING_BACKEND_OPENGL_VERSION ${VTK_RENDERING_BACKEND_OPENGL_VERSION} -+ -From 9cfb00970f7d46f1732149d4c50ba3646f038b6c Mon Sep 17 00:00:00 2001 -From: Sergey Alexandrov -Date: Thu, 11 Feb 2016 22:19:01 +0100 -Subject: [PATCH] Use vtkTextureUnitManager to query the number of available - texture units - -The new OpenGL2 backend does not have vktOpenGLHardwareSupport class -which was used before. ---- - visualization/src/pcl_visualizer.cpp | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/visualization/src/pcl_visualizer.cpp b/visualization/src/pcl_visualizer.cpp -index dc91674..007c251 100644 ---- a/visualization/src/pcl_visualizer.cpp -+++ b/visualization/src/pcl_visualizer.cpp -@@ -84,7 +84,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -92,6 +91,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -3223,17 +3223,18 @@ pcl::visualization::PCLVisualizer::addTextureMesh (const pcl::TextureMesh &mesh, - #endif - - vtkSmartPointer actor = vtkSmartPointer::New (); -- vtkOpenGLHardwareSupport* hardware = vtkOpenGLRenderWindow::SafeDownCast (win_)->GetHardwareSupport (); -+ vtkTextureUnitManager* tex_manager = vtkOpenGLRenderWindow::SafeDownCast (win_)->GetTextureUnitManager (); -+ if (!tex_manager) -+ return (false); -- bool supported = hardware->GetSupportsMultiTexturing (); - // Check if hardware support multi texture -- std::size_t texture_units (hardware->GetNumberOfFixedTextureUnits ()); -- if ((mesh.tex_materials.size () > 1) && supported && (texture_units > 1)) -+ int texture_units = tex_manager->GetNumberOfTextureUnits (); -+ if ((mesh.tex_materials.size () > 1) && (texture_units > 1)) - { - if (texture_units < mesh.tex_materials.size ()) - PCL_WARN ("[PCLVisualizer::addTextureMesh] GPU texture units %d < mesh textures %d!\n", - texture_units, mesh.tex_materials.size ()); - // Load textures -- std::size_t last_tex_id = std::min (mesh.tex_materials.size (), texture_units); -+ std::size_t last_tex_id = std::min (static_cast (mesh.tex_materials.size ()), texture_units); - int tu = vtkProperty::VTK_TEXTURE_UNIT_0; - std::size_t tex_id = 0; - while (tex_id < last_tex_id) -@@ -3279,7 +3278,7 @@ pcl::visualization::PCLVisualizer::addTextureMesh (const pcl::TextureMesh &mesh, - } // end of multi texturing - else - { -- if (!supported || texture_units < 2) -+ if ((mesh.tex_materials.size () > 1) && (texture_units < 2)) - PCL_WARN ("[PCLVisualizer::addTextureMesh] Your GPU doesn't support multi texturing. " - "Will use first one only!\n"); - -From c50c65b042828cfa18765eef7876f896a40a6d1b Mon Sep 17 00:00:00 2001 -From: Sergey Alexandrov -Date: Sat, 13 Feb 2016 13:59:47 +0100 -Subject: [PATCH] Conditionally compile code that uses - vtkVertexBufferObjectMapper - -This mapper is a performance optimization that is only needed when -OpenGL backend is used. The modern OpenGL2 backend uses vertex buffer -objects transparently for us. ---- - outofcore/src/visualization/outofcore_cloud.cpp | 14 ++++++++++++-- - visualization/CMakeLists.txt | 18 ++++++++++++++---- - visualization/src/interactor_style.cpp | 6 ++++++ - visualization/src/pcl_visualizer.cpp | 15 ++++++++++++++- - 4 files changed, 46 insertions(+), 7 deletions(-) - -diff --git a/outofcore/src/visualization/outofcore_cloud.cpp b/outofcore/src/visualization/outofcore_cloud.cpp -index eaf490c..b08d30e 100644 ---- a/outofcore/src/visualization/outofcore_cloud.cpp -+++ b/outofcore/src/visualization/outofcore_cloud.cpp -@@ -21,7 +21,10 @@ - - // PCL - visualziation - #include -+ -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - #include -+#endif - - // VTK - #include -@@ -251,11 +254,18 @@ OutofcoreCloud::render (vtkRenderer* renderer) - { - - vtkSmartPointer cloud_actor = vtkSmartPointer::New (); -- vtkSmartPointer mapper = vtkSmartPointer::New (); -- - CloudDataCacheItem *cloud_data_cache_item = &cloud_data_cache.get(pcd_file); - -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 -+ vtkSmartPointer mapper = vtkSmartPointer::New (); - mapper->SetInput (cloud_data_cache_item->item); -+#else -+ vtkSmartPointer mapper = vtkSmartPointer::New (); -+ // Usually we choose between SetInput and SetInputData based on VTK version. But OpenGL ≥ 2 automatically -+ // means VTK version is ≥ 6.3 -+ mapper->SetInputData (cloud_data_cache_item->item); -+#endif -+ - cloud_actor->SetMapper (mapper); - cloud_actor->GetProperty ()->SetColor (0.0, 0.0, 1.0); - cloud_actor->GetProperty ()->SetPointSize (1); -diff --git a/visualization/CMakeLists.txt b/visualization/CMakeLists.txt -index 26bfd7c..940fc8e 100644 ---- a/visualization/CMakeLists.txt -+++ b/visualization/CMakeLists.txt -@@ -50,8 +50,6 @@ if(build) - src/common/float_image_utils.cpp - src/vtk/pcl_image_canvas_source_2d.cpp - src/vtk/pcl_context_item.cpp -- src/vtk/vtkVertexBufferObject.cxx -- src/vtk/vtkVertexBufferObjectMapper.cxx - src/vtk/vtkRenderWindowInteractorFix.cpp - ) - if("${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}" VERSION_LESS "5.6") -@@ -67,6 +65,13 @@ if(build) - ) - endif("${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}" VERSION_GREATER "5.6") - -+ if(VTK_RENDERING_BACKEND_OPENGL_VERSION VERSION_LESS 2) -+ list(APPEND srcs -+ "src/vtk/vtkVertexBufferObject.cxx" -+ "src/vtk/vtkVertexBufferObjectMapper.cxx" -+ ) -+ endif() -+ - set(incs - "include/pcl/${SUBSYS_NAME}/eigen.h" - "include/pcl/${SUBSYS_NAME}/boost.h" -@@ -127,11 +132,16 @@ if(build) - set(vtk_incs - "include/pcl/${SUBSYS_NAME}/vtk/pcl_image_canvas_source_2d.h" - "include/pcl/${SUBSYS_NAME}/vtk/pcl_context_item.h" -- "include/pcl/${SUBSYS_NAME}/vtk/vtkVertexBufferObject.h" - "include/pcl/${SUBSYS_NAME}/vtk/vtkRenderWindowInteractorFix.h" -- "include/pcl/${SUBSYS_NAME}/vtk/vtkVertexBufferObjectMapper.h" - ) - -+ if(VTK_RENDERING_BACKEND_OPENGL_VERSION VERSION_LESS 2) -+ list(APPEND vtk_incs -+ "include/pcl/${SUBSYS_NAME}/vtk/vtkVertexBufferObject.h" -+ "include/pcl/${SUBSYS_NAME}/vtk/vtkVertexBufferObjectMapper.h" -+ ) -+ endif() -+ - # on apple, a workaround is used for the cocoa render window interactor - if(APPLE) - list(APPEND srcs -diff --git a/visualization/src/interactor_style.cpp b/visualization/src/interactor_style.cpp -index 9e9fdaf..f443b6b 100644 ---- a/visualization/src/interactor_style.cpp -+++ b/visualization/src/interactor_style.cpp -@@ -64,7 +64,9 @@ - #include - #include - -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - #include -+#endif - - #define ORIENT_MODE 0 - #define SELECT_MODE 1 -@@ -660,6 +662,7 @@ pcl::visualization::PCLVisualizerInteractorStyle::OnKeyDown () - data->SetPoints (points); - data->SetVerts (vertices); - // Modify the mapper -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - if (use_vbos_) - { - vtkVertexBufferObjectMapper* mapper = static_cast(act->actor->GetMapper ()); -@@ -668,6 +671,7 @@ pcl::visualization::PCLVisualizerInteractorStyle::OnKeyDown () - act->actor->SetMapper (mapper); - } - else -+#endif - { - vtkPolyDataMapper* mapper = static_cast(act->actor->GetMapper ()); - #if VTK_MAJOR_VERSION < 6 -@@ -704,6 +708,7 @@ pcl::visualization::PCLVisualizerInteractorStyle::OnKeyDown () - vtkPolyData *data = static_cast(act->actor->GetMapper ()->GetInput ()); - data->GetPointData ()->SetScalars (scalars); - // Modify the mapper -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - if (use_vbos_) - { - vtkVertexBufferObjectMapper* mapper = static_cast(act->actor->GetMapper ()); -@@ -714,6 +719,7 @@ pcl::visualization::PCLVisualizerInteractorStyle::OnKeyDown () - act->actor->SetMapper (mapper); - } - else -+#endif - { - vtkPolyDataMapper* mapper = static_cast(act->actor->GetMapper ()); - mapper->SetScalarRange (minmax); -diff --git a/visualization/src/pcl_visualizer.cpp b/visualization/src/pcl_visualizer.cpp -index 007c251..40e516c 100644 ---- a/visualization/src/pcl_visualizer.cpp -+++ b/visualization/src/pcl_visualizer.cpp -@@ -63,9 +63,12 @@ - #include - - #include --#include - #include - -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 -+#include -+#endif -+ - #include - #include - #include -@@ -1079,6 +1082,7 @@ pcl::visualization::PCLVisualizer::createActorFromVTKDataSet (const vtkSmartPoin - if (!actor) - actor = vtkSmartPointer::New (); - -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - if (use_vbos_) - { - vtkSmartPointer mapper = vtkSmartPointer::New (); -@@ -1111,6 +1115,7 @@ pcl::visualization::PCLVisualizer::createActorFromVTKDataSet (const vtkSmartPoin - actor->SetMapper (mapper); - } - else -+#endif - { - vtkSmartPointer mapper = vtkSmartPointer::New (); - #if VTK_MAJOR_VERSION < 6 -@@ -1157,6 +1162,7 @@ pcl::visualization::PCLVisualizer::createActorFromVTKDataSet (const vtkSmartPoin - if (!actor) - actor = vtkSmartPointer::New (); - -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - if (use_vbos_) - { - vtkSmartPointer mapper = vtkSmartPointer::New (); -@@ -1189,6 +1195,7 @@ pcl::visualization::PCLVisualizer::createActorFromVTKDataSet (const vtkSmartPoin - actor->SetMapper (mapper); - } - else -+#endif - { - vtkSmartPointer mapper = vtkSmartPointer::New (); - #if VTK_MAJOR_VERSION < 6 -@@ -2771,6 +2778,7 @@ pcl::visualization::PCLVisualizer::updateColorHandlerIndex (const std::string &i - vtkPolyData *data = static_cast(am_it->second.actor->GetMapper ()->GetInput ()); - data->GetPointData ()->SetScalars (scalars); - // Modify the mapper -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - if (use_vbos_) - { - vtkVertexBufferObjectMapper* mapper = static_cast(am_it->second.actor->GetMapper ()); -@@ -2785,6 +2793,7 @@ pcl::visualization::PCLVisualizer::updateColorHandlerIndex (const std::string &i - //style_->setCloudActorMap (cloud_actor_map_); - } - else -+#endif - { - vtkPolyDataMapper* mapper = static_cast(am_it->second.actor->GetMapper ()); - mapper->SetScalarRange (minmax); -@@ -4296,8 +4305,12 @@ pcl::visualization::PCLVisualizer::resetStoppedFlag () - void - pcl::visualization::PCLVisualizer::setUseVbos (bool use_vbos) - { -+#if VTK_RENDERING_BACKEND_OPENGL_VERSION < 2 - use_vbos_ = use_vbos; - style_->setUseVbos (use_vbos_); -+#else -+ PCL_WARN ("[PCLVisualizer::setUseVbos] Has no effect when OpenGL version is ≥ 2\n"); -+#endif - } - - ////////////////////////////////////////////////////////////////////////////////////////////// -- 2.44.0