New upstream version 1.9.1+dfsg1
authorJochen Sprickerhof <git@jochen.sprickerhof.de>
Sat, 8 Dec 2018 09:24:40 +0000 (10:24 +0100)
committerJochen Sprickerhof <git@jochen.sprickerhof.de>
Sat, 8 Dec 2018 09:24:40 +0000 (10:24 +0100)
26 files changed:
.appveyor.yml [deleted file]
.azure-pipelines.yml [new file with mode: 0644]
.github/change_log.py
.travis.sh [deleted file]
.travis.yml [deleted file]
CHANGES.md
CMakeLists.txt
PCLConfig.cmake.in
PCLConfigVersion.cmake.in
README.md
cmake/Modules/FindEigen.cmake
cmake/cpack_options.cmake.in
cmake/pcl_cpack.cmake
cmake/pcl_targets.cmake
cmake/pcl_utils.cmake
cmake/pkgconfig-headeronly.cmake.in
cmake/pkgconfig.cmake.in
cmake/uninstall_target.cmake.in
doc/doxygen/doxyfile.in
doc/tutorials/content/compiling_pcl_dependencies_windows.rst
doc/tutorials/content/compiling_pcl_macosx.rst
doc/tutorials/content/compiling_pcl_posix.rst
doc/tutorials/content/compiling_pcl_windows.rst
pcl_config.h.in
test/features/test_shot_estimation.cpp
visualization/src/pcl_visualizer.cpp

diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644 (file)
index 956c885..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-cache:
-  - C:\Tools\vcpkg\installed\
-  - C:\Tools\ninja\ninja.exe
-
-configuration: Release
-
-environment:
-  VCPKG_DIR: C:\Tools\vcpkg
-  NINJA_DIR: C:\Tools\ninja
-  GENERATOR: Ninja
-  matrix:
-    - APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
-      PLATFORM: x86
-      VCVARSALL: '%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'
-      ARCHITECTURE: x86
-    - APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
-      PLATFORM: x64
-      VCVARSALL: '%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'
-      ARCHITECTURE: x86_amd64
-    #- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
-    #  PLATFORM: x86
-    #  VCVARSALL: '%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat'
-    #  ARCHITECTURE: x86
-    #- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
-    #  PLATFORM: x64
-    #  VCVARSALL: '%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat'
-    #  ARCHITECTURE: x86_amd64
-
-init:
-  - cd %VCPKG_DIR%
-  - git pull
-  - echo.set(VCPKG_BUILD_TYPE release)>> %VCPKG_DIR%\triplets\%PLATFORM%-windows.cmake
-  - .\bootstrap-vcpkg.bat
-  - vcpkg version
-  - cd %APPVEYOR_BUILD_FOLDER%
-
-install:
-  - vcpkg install 
-      boost-system
-      boost-filesystem
-      boost-thread
-      boost-date-time
-      boost-iostreams
-      boost-chrono
-      boost-asio
-      boost-dynamic-bitset
-      boost-foreach
-      boost-graph
-      boost-interprocess
-      boost-multi-array
-      boost-ptr-container
-      boost-random
-      boost-signals2
-      eigen3
-      flann
-      qhull
-      gtest
-      --triplet %PLATFORM%-windows
-  - vcpkg list
-  - set PATH=%VCPKG_DIR%\installed\%PLATFORM%-windows\bin;%PATH%
-  - if not exist %NINJA_DIR%\ mkdir %NINJA_DIR%
-  - cd %NINJA_DIR%
-  - if not exist ninja.exe appveyor DownloadFile https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip
-  - if not exist ninja.exe 7z x ninja-win.zip
-  - set PATH=%NINJA_DIR%;%PATH%
-
-build:
-  parallel: true
-
-build_script:
-  # These tests will fails on Windows.
-  # Therefore, these tests are disabled until fixed.
-  # AppVeyor Log : https://ci.appveyor.com/project/PointCloudLibrary/pcl/build/1.0.267
-  #   * common_eigen
-  #   * feature_rift_estimation
-  #   * feature_cppf_estimation
-  #   * feature_pfh_estimation
-  - call "%VCVARSALL%" %ARCHITECTURE%
-  - cd %APPVEYOR_BUILD_FOLDER%
-  - mkdir build
-  - cd build
-  - cmake -G"%GENERATOR%"
-          -DCMAKE_C_COMPILER=cl.exe
-          -DCMAKE_CXX_COMPILER=cl.exe
-          -DCMAKE_TOOLCHAIN_FILE=%VCPKG_DIR%\scripts\buildsystems\vcpkg.cmake
-          -DVCPKG_APPLOCAL_DEPS=OFF
-          -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=ON
-          -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=ON
-          -DPCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32=ON
-          -DPCL_NO_PRECOMPILE=OFF
-          -DBUILD_apps=OFF
-          -DBUILD_examples=OFF
-          -DBUILD_global_tests=ON
-          -DBUILD_simulation=OFF
-          -DBUILD_tools=OFF
-          ..
-  - cmake --build . --config %CONFIGURATION%
-  - ctest -C %CONFIGURATION% -V
-
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
new file mode 100644 (file)
index 0000000..815774a
--- /dev/null
@@ -0,0 +1,183 @@
+resources:
+  containers:
+    - container: env1604
+      image: pointcloudlibrary/env:16.04
+    - container: doc
+      image: pointcloudlibrary/doc
+
+jobs:
+  - job: ubuntu1604
+    displayName: Ubuntu 16.04 Build
+    timeoutInMinutes: 0
+    pool:
+      vmImage: 'Ubuntu 16.04'
+    container: env1604
+    variables:
+      BUILD_DIR: '$(Agent.BuildDirectory)/build'
+      CMAKE_CXX_FLAGS: '-Wall -Wextra -Wabi -O2'
+    steps:
+      - script: |
+          mkdir $BUILD_DIR && cd $BUILD_DIR
+          cmake $(Build.SourcesDirectory) \
+            -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
+            -DPCL_ONLY_CORE_POINT_TYPES=ON \
+            -DPCL_QT_VERSION=5 \
+            -DBUILD_simulation=ON \
+            -DBUILD_global_tests=ON \
+            -DBUILD_examples=ON \
+            -DBUILD_tools=ON \
+            -DBUILD_apps=ON \
+            -DBUILD_apps_3d_rec_framework=ON \
+            -DBUILD_apps_cloud_composer=ON \
+            -DBUILD_apps_in_hand_scanner=ON \
+            -DBUILD_apps_modeler=ON \
+            -DBUILD_apps_point_cloud_editor=ON
+        displayName: 'CMake Configuration'
+      - script: |
+          cd $BUILD_DIR
+          # Compiling some of the test targets with -j2 option leads to pipeline failures
+          # (presumably out of memory error). Thus we make them separately in a single
+          # thread mode. Their corresponding modules are built before with the -j2 mode
+          # to make the process faster.
+          cmake --build . -- -j2 pcl_filters pcl_registration
+          cmake --build . -- test_filters test_registration test_registration_api
+          cmake --build . -- -j2
+        displayName: 'Build Library'
+      - script: cd $BUILD_DIR && cmake --build . -- tests
+        displayName: 'Run Unit Tests'
+  - job: osx
+    displayName: macOS High Sierra
+    timeoutInMinutes: 0
+    pool:
+      vmImage: 'macOS-10.13'
+    variables:
+      BUILD_DIR: '$(Agent.BuildDirectory)/build'
+      GOOGLE_TEST_DIR: '$(Agent.WorkFolder)/googletest'
+      CMAKE_CXX_FLAGS: '-Wall -Wextra -Wabi -O2'
+    steps:
+      - script: |
+          brew install pkg-config qt5 libpcap brewsci/science/openni
+          brew install vtk --with-qt --without-python@2
+          brew install --only-dependencies pcl
+          git clone https://github.com/abseil/googletest.git $GOOGLE_TEST_DIR # the official endpoint changed to abseil/googletest
+          cd $GOOGLE_TEST_DIR && git checkout release-1.8.1
+        displayName: 'Install Dependencies'
+      - script: |
+          mkdir $BUILD_DIR && cd $BUILD_DIR
+          cmake $(Build.SourcesDirectory) \
+            -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
+            -DGTEST_SRC_DIR="$GOOGLE_TEST_DIR/googletest" \
+            -DGTEST_INCLUDE_DIR="$GOOGLE_TEST_DIR/googletest/include" \
+            -DQt5Core_DIR=/usr/local/opt/qt5/lib/cmake/Qt5Core \
+            -DQt5Gui_DIR=/usr/local/opt/qt5/lib/cmake/Qt5Gui \
+            -DQt5Widgets_DIR=/usr/local/opt/qt5/lib/cmake/Qt5Widgets \
+            -DQt5Concurrent_DIR=/usr/local/opt/qt5/lib/cmake/Qt5Concurrent \
+            -DQt5OpenGL_DIR=/usr/local/opt/qt5/lib/cmake/Qt5OpenGL \
+            -DPCL_ONLY_CORE_POINT_TYPES=ON \
+            -DPCL_QT_VERSION=5 \
+            -DBUILD_simulation=ON \
+            -DBUILD_global_tests=ON \
+            -DBUILD_examples=ON \
+            -DBUILD_tools=ON \
+            -DBUILD_apps=ON \
+            -DBUILD_apps_3d_rec_framework=ON \
+            -DBUILD_apps_cloud_composer=ON \
+            -DBUILD_apps_in_hand_scanner=ON \
+            -DBUILD_apps_modeler=ON \
+            -DBUILD_apps_point_cloud_editor=ON
+        displayName: 'CMake Configuration'
+      - script: |
+          cd $BUILD_DIR
+          # Compiling some of the test targets with -j2 option leads to pipeline failures
+          # (presumably out of memory error). Thus we make them separately in a single
+          # thread mode. Their corresponding modules are built before with the -j2 mode
+          # to make the process faster.
+          cmake --build . -- -j2 pcl_filters pcl_registration
+          cmake --build . -- test_filters test_registration test_registration_api
+          cmake --build . -- -j2
+        displayName: 'Build Library'
+      - script: cd $BUILD_DIR && cmake --build . -- tests
+        displayName: 'Run Unit Tests'
+  - job: documentation
+    displayName: Generate Documentation
+    pool:
+      vmImage: 'Ubuntu 16.04'
+    container: doc
+    variables:
+      BUILD_DIR: '$(Agent.BuildDirectory)/build'
+      DOC_DIR: '$(Agent.BuildDirectory)/documentation'
+    steps:
+      - task: InstallSSHKey@0
+        inputs:
+          hostName: github.com
+          sshPublicKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBh5Yrau/gguTfoNALxhVX77Pgz6y6UWoJRERMKR68ee documentation@pointclouds.org
+          sshKeySecureFile: id_ed25519
+      - task: UsePythonVersion@0
+        inputs:
+          versionSpec: '3.6'
+          addToPath: true
+      - script: |
+          mkdir $BUILD_DIR && cd $BUILD_DIR
+          cmake $(Build.SourcesDirectory) \
+                   -DDOXYGEN_USE_SHORT_NAMES=OFF \
+                   -DSPHINX_HTML_FILE_SUFFIX=php \
+                   -DWITH_DOCS=ON \
+                   -DWITH_TUTORIALS=ON
+        displayName: 'CMake Configuration'
+      - script: cd $BUILD_DIR && make doc tutorials advanced
+        displayName: 'Build Documentation'
+      - script: |
+          git config --global user.email "documentation@pointclouds.org"
+          git config --global user.name "PointCloudLibrary (via Azure Pipelines)"
+          echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
+          git clone git@github.com:PointCloudLibrary/documentation.git $DOC_DIR
+          cd $DOC_DIR
+          cp -r $BUILD_DIR/doc/tutorials/html/* tutorials
+          cp -r $BUILD_DIR/doc/advanced/html/* advanced
+          cp -r $BUILD_DIR/doc/doxygen/html/* .
+          git add --all
+          git commit --amend --reset-author -m 'Documentation for commit $(Build.SourceVersion)' -q
+          git push --force
+        displayName: 'Push Generated Documentation To GitHub'
+        condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
+  - job: vs2017
+    displayName: Windows VS2017 Build
+    timeoutInMinutes: 0
+    pool:
+      vmImage: 'vs2017-win2016'
+    strategy:
+      matrix:
+        x86:
+          PLATFORM: 'x86'
+          ARCHITECTURE: 'x86'
+          GENERATOR: 'Visual Studio 15 2017'
+        x64:
+          PLATFORM: 'x64'
+          ARCHITECTURE: 'x86_amd64'
+          GENERATOR: 'Visual Studio 15 2017 Win64'
+    variables:
+      BUILD_DIR: '$(Agent.WorkFolder)\build'
+      VCPKG_DIR: '$(Agent.WorkFolder)\vcpkg'
+      VCVARSALL: '%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat'
+      CONFIGURATION: 'Release'
+    steps:
+      - script: |
+          git clone https://github.com/microsoft/vcpkg --depth 1 %VCPKG_DIR%
+          echo.set(VCPKG_BUILD_TYPE release)>> %VCPKG_DIR%\triplets\%PLATFORM%-windows.cmake
+          %VCPKG_DIR%\bootstrap-vcpkg.bat
+          %VCPKG_DIR%\vcpkg.exe version
+        displayName: Bootstrap vcpkg
+      - script: |
+          %VCPKG_DIR%\vcpkg.exe install boost-system boost-filesystem boost-thread boost-date-time boost-iostreams boost-chrono boost-asio boost-dynamic-bitset boost-foreach boost-graph boost-interprocess boost-multi-array boost-ptr-container boost-random boost-signals2 eigen3 flann gtest qhull --triplet %PLATFORM%-windows
+          %VCPKG_DIR%\vcpkg.exe list
+        displayName: Install Dependencies
+      - script: |
+          call "%VCVARSALL%" %ARCHITECTURE%
+          set PATH=%VCPKG_DIR%\installed\%PLATFORM%-windows\bin;%PATH%
+          mkdir %BUILD_DIR% && cd %BUILD_DIR%
+          cmake $(Build.SourcesDirectory) -G"%GENERATOR%" -DCMAKE_TOOLCHAIN_FILE=%VCPKG_DIR%\scripts\buildsystems\vcpkg.cmake -DVCPKG_APPLOCAL_DEPS=ON -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=ON -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=ON -DPCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32=ON -DBUILD_global_tests=ON -DBUILD_tools=OFF -DBUILD_surface_on_nurbs=ON
+        displayName: 'CMake Configuration'
+      - script: cd %BUILD_DIR% && cmake --build . --config %CONFIGURATION%
+        displayName: 'Build Library'
+      - script: cd %BUILD_DIR% && ctest -C %CONFIGURATION% -V
+        displayName: 'Run Unit Tests'
index 2305a7ceb6a7a2147bcbb9a9fc2e44ae401b0d90..44453f57c14b3879a3cbdf7621a7ffe2d3fb0895 100755 (executable)
@@ -175,6 +175,7 @@ def generate_text_content(tag, pr_info):
         "simulation",
         "stereo",
         "surface",
+        "visualization",
         "apps",
         "docs",
         "tutorials",
diff --git a/.travis.sh b/.travis.sh
deleted file mode 100755 (executable)
index 02959aa..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/sh
-
-PCL_DIR=`pwd`
-BUILD_DIR=$PCL_DIR/build
-DOC_DIR=$BUILD_DIR/doc/doxygen/html
-
-TUTORIALS_DIR=$BUILD_DIR/doc/tutorials/html
-ADVANCED_DIR=$BUILD_DIR/doc/advanced/html
-
-CMAKE_C_FLAGS="-Wall -Wextra -Wabi -O2"
-CMAKE_CXX_FLAGS="-Wall -Wextra -Wabi -O2"
-
-if [ "$TRAVIS_OS_NAME" == "linux" ]; then
-  if [ "$CC" == "clang" ]; then
-    CMAKE_C_FLAGS="$CMAKE_C_FLAGS -Qunused-arguments"
-    CMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Qunused-arguments"
-  fi
-fi
-
-function before_install ()
-{
-  if [ "$TRAVIS_OS_NAME" == "linux" ]; then
-    if [ "$CC" == "clang" ]; then
-      sudo ln -s ../../bin/ccache /usr/lib/ccache/clang
-      sudo ln -s ../../bin/ccache /usr/lib/ccache/clang++
-    fi
-  fi
-}
-
-function build_all ()
-{
-  # A complete build
-  # Configure
-  mkdir $BUILD_DIR && cd $BUILD_DIR
-  cmake -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
-        -DPCL_ONLY_CORE_POINT_TYPES=ON \
-        -DPCL_QT_VERSION=5 \
-        -DBUILD_simulation=ON \
-        -DBUILD_global_tests=OFF \
-        -DBUILD_examples=ON \
-        -DBUILD_tools=ON \
-        -DBUILD_apps=ON \
-        -DBUILD_apps_3d_rec_framework=ON \
-        -DBUILD_apps_cloud_composer=ON \
-        -DBUILD_apps_in_hand_scanner=ON \
-        -DBUILD_apps_modeler=ON \
-        -DBUILD_apps_point_cloud_editor=ON \
-        $PCL_DIR
-  # Build
-  make -j2
-}
-
-function test_all ()
-{
-  # A complete build
-  # Configure
-  mkdir $BUILD_DIR && cd $BUILD_DIR
-  cmake -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
-        -DPCL_ONLY_CORE_POINT_TYPES=ON \
-        -DPCL_QT_VERSION=4 \
-        -DBUILD_simulation=ON \
-        -DBUILD_global_tests=ON \
-        -DBUILD_examples=OFF \
-        -DBUILD_tools=OFF \
-        -DBUILD_apps=OFF \
-        $PCL_DIR
-  # Build
-  make -j2 tests
-}
-
-
-function doc ()
-{
-  # Install sphinx
-  pip3 install --user setuptools
-  pip3 install --user Jinja2==2.8.1 sphinx sphinxcontrib-doxylink
-
-  # Configure
-  mkdir $BUILD_DIR && cd $BUILD_DIR
-  cmake -DDOXYGEN_USE_SHORT_NAMES=OFF \
-        -DSPHINX_HTML_FILE_SUFFIX=php \
-        -DWITH_DOCS=ON \
-        -DWITH_TUTORIALS=ON \
-        $PCL_DIR
-
-  git config --global user.email "documentation@pointclouds.org"
-  git config --global user.name "PointCloudLibrary (via TravisCI)"
-
-  cd $DOC_DIR
-  git clone https://github.com/PointCloudLibrary/documentation.git .
-
-  # Generate documentation and tutorials
-  cd $BUILD_DIR
-  make doc tutorials advanced
-
-  # Do not push documentation in pull requests
-  if [[ $TRAVIS_EVENT_TYPE == 'pull_request' ]] ; then exit; fi
-
-  # update the remote url to git-ssh protocol for commit
-  git remote set-url origin git@github.com:PointCloudLibrary/documentation.git
-
-  if [ -z "$id_rsa_{1..23}" ]; then echo 'No $id_rsa_{1..23} found !' ; exit 1; fi
-
-  echo -n $id_rsa_{1..23} >> ~/.ssh/travis_rsa_64
-  base64 --decode --ignore-garbage ~/.ssh/travis_rsa_64 > ~/.ssh/id_rsa
-
-  chmod 600 ~/.ssh/id_rsa
-
-  echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
-
-  # Upload to GitHub if generation succeeded
-  if [[ $? == 0 ]]; then
-    # Copy generated tutorials to the doc directory
-    cp -r $TUTORIALS_DIR/* $DOC_DIR/tutorials
-    cp -r $ADVANCED_DIR/* $DOC_DIR/advanced
-    # Commit and push
-    cd $DOC_DIR
-    git add --all
-    git commit --amend --reset-author -m "Documentation for commit $TRAVIS_COMMIT" -q
-    git push --force
-  else
-    exit 2
-  fi
-}
-
-case $1 in
-  before-install ) before_install;;
-  build ) build_all;;
-  test ) test_all;;
-  doc ) doc;;
-esac
-
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644 (file)
index 6920149..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-sudo: required
-dist: xenial
-language: cpp
-cache:
-  ccache: true
-git:
-  depth: 1
-addons:
-  apt:
-    packages:
-      - cmake
-      - libboost-filesystem-dev
-      - libboost-iostreams-dev
-      - libboost-thread-dev
-      - libboost-chrono-dev
-      - libeigen3-dev
-      - libgtest-dev
-      - doxygen-latex
-      - dvipng
-      - libusb-1.0-0-dev
-      - libqhull-dev
-      - libvtk6-dev
-      - libvtk6-qt-dev
-      - libflann-dev
-      - doxygen
-      - qtbase5-dev
-      - libqt5opengl5-dev
-      - libglew-dev
-      - libopenni-dev
-      - python3-pip
-      - libproj-dev #missing dependency from vtk?
-before_install:
-  - bash .travis.sh before-install
-
-env:
-  global:
-    - secure: XQw5SBf/7b1SHFR+kKklBWhWVgNvm4vIi+wwyajFSbDLOPpsAqtnDKeA2DV9ciaQJ3CVAvBoyxYgzAvpbsb5k95jadbvu9aSlo/AQnAbz+8DhkJL25DwJAn8G4s4zD1MFi7P4fxJHZsv/l9UcdW4BzjEhh0VidWCO4hP6I9BAQc=
-    - secure: dRKTSeQI2Jad+/K9XCkNZxuu8exPi2wGzf6D0ogd1Nb2ZIUsOtnHSME4DO+xv7F5ZYrythHTrfezQl5hhcK+cr7A12okxlvmF/gVFuGCBPkUbyWPOrxx/Ic5pqdVnmrMFG1hFmr1KmOxCVx0F48JfGNd4ZgtUBAmnIomRp8sXRI=
-    - secure: ah6/Y0D8bBFfAU38RdWsLJ/0Gp5uN5KEHVOnyhEUx1wDaBcDl9+aIE9Xyah44ei/fqQg1MXBfgMnaF7oHpDs4dAKITYP4wV8WDX1DCl1dalIrWMTSFYRknc3Y6hT+HadMlkcV9CCLEhZ7gyyNkm+idbekt/WbQE6Jls/vBhdZxI=
-    - secure: V8XIEPjagHSFInXjogs8ypsC/gL5dq4VENYZbC9q8KYrNT9y1DLnMgNh9pGad25OjOqftBFwsgx6QYo357+MwpynfF+KcYNybjuR/vVGXpLcm0Uytnp6bE7oQbQ1s806TlXHb0Xk/bO2cLRYCCMCkhUOm+Dreu1uhKpoI/z0VMs=
-    - secure: vPRheiXkGnzBHRaVFsA3VtwK6DtWG48VIdbOxboaR6jb9jT9yNz5EQrapiLOFFkhGsZ1mCgeunR58BGUPiSl8gEvOheBBUgZW6x8kbHDpxSUc2H70bLRAKxP4t8e3ZDFg2RjGnvXkGhzUTu9oWnbfWxGAILJAOpNoT0MqDgP+Z0=
-    - secure: bT9kXekVN89zJeS4IEobLOeuAmRJqsgTjZky/mGqmOY1H8oIgcHC+41twB+nxkaU2mQskOvG45UwnAAW/8X6WdTbwKYeFWI5mXpCiXoiGL/dsYiig3GzYYv32ZJQL9B8tkEW6Xc0GY6v4K91Xw+HoKLi/tjxh3NjQxpfktwwCBQ=
-    - secure: kp5CTFyo/E5+v382ypD1mIP7RIVOq5A1NDur1NrYI9or+8+zGcK5A2/Ex6Bb6rac5l7cVcqx6Xel+clxH2eQP2D8GqkaxdZs/u9L7MdFqsfn/QYOIshYlowRoLX86W0KOhsTdLLv2mOS6DnWhIuhgDfrczD3hFQdP9PMTBpd65A=
-    - secure: YXJJRdv5OD/Qo1vNqPnFfx//SotxecFQyXjzEKQ8Zxu+EfVKVs95DUiUX+hiDlPrVGKhI3kTvza+lkaIv9fkjWiwSja5LsUbW/+2cwkhoHmOzVtdcpascfP7fcXc0kWTuvg1FLGNBv26SEym1FfNzp0Sm+ANZsCc4fQVXjDhQSY=
-    - secure: wyWnJoZydXcFW359Vid6YfG9l0WTFqIpuEhgFV8gtSbkrSU0JrrUrKuN5ld/cPb+sRa/I8FAftSDsH4CW67impwLmfNfGf4wZTOBvBKyDGjlI+TLEo4ew/yq+MYIkkEleCWOj5eUkAHPHUUhJzI8SvX+ZuxiJEXapoV0xymbrig=
-    - secure: vCvNI8egL2DRCicbWTuLOyXiW8478tedYvRneDMtCDB2lYToG32sYY0fS9KIciNohgObC8dbVraScgobL5cL4Ir4qrTUfBvGJ71OOMVujNEvkTts4YyI5zhA1PeEJ9+xcbQkE0/f78g7HQnd2LjZLXSxxrFVyJnjGaq1siNNRik=
-    - secure: iUjKlT1bJq3pZp3tS0yOmycSZwmGSbrfTe9fWs0P78o3WRYlzBx4IWa+RZb1l0l6LpCUo00wdgeKKhvzClHFza31fumZJKkFeDf/jxAM2TtSbcIxxXwqpi4yJJZs7SkYrU/lugv0NI6UHtl5wAkIp8sjtCCHVYJjlYNHaLhL75o=
-    - secure: DWrK3JsbzV5iUK3Xj6MpVWwlZv85GxdLl8c73ONcynZJ1tzUU3bfdvOtMxJrAnmH9QANw5RGORgbOyiDnvydCCpmL9RjswFqfkQX0mRTV8UYDPlJ1bBZJkX8I97yw8W1UyK1Q76kfr5bZjhikpsS/81Ll6z6Kj9FOte6KFfbznk=
-    - secure: B32G/fehtPQdu1bF+dbCJ/Eo22MiszxZj7UOwNggRFifoxTmRdffZyuqapW0PLCTbBEvlS6UfajGOmVvZx5QH8Q/gtutJqXDTMgWpOai66JUwnpn6AX6NnhFGc+s2cpp3V2+5I26OrFkaXTcS7flz32XJdKZmPgvjY1qoppmyzo=
-    - secure: u0cyLpY3LVF1gA8Sj4Q7X4Xv4bBT7m8IBDnm/AS412H0dM47dcFu8uxVFgWRu3WrM8T87Uc7+ftHkxKJezXgDPEVUixAnwLg2nEVEf6v3HC/HW+X9m98q1mELKXTLxc/f57rAIhhYPkjQh+leg6JmrhG1t0X7kh7d3CY0wwdSL0=
-    - secure: KlIjQVEWlr+H/PAKIAcKS6WO1EFBdXXvXLisEnferB1RWgGwuLRgtIZzI+BJdt/7BMSyWvRExqt6xNyfqpxKXl1kdJawc3rpeYufklHQgmB2qGBSrpMtNr0S3gPFePBdnETbdPHwA63QCrpRKcrHqJxmeIzAmstH736iRXuubFs=
-    - secure: ldwk79cqSgaEUZLt5rbNLRcNaVf/bx2zjBEDbvzAF9JCqVx/L5zCRTr5raHsxzBOzz25Qs3nFW81e1WLwxMAWshvI7EM/YG8GXqECvJGWpHBwcZI1SVP3zMhpH/jJE8vbMFaM2NOmhMT03z91vt0NlvR4DJMY0KV351awGSL2Do=
-    - secure: SyLCwwc+jjkdmNUkRdGRDR2lNrPCu1ZvPstvVWQke5uw3BlnVKXWK7V3yq9g11ZsCl/7aldBexjf7pqeXbJ5Wl5goiI3E+/Ooujd/EWkMn9K3YlG57p8Zdw/A/fUMJgAH3qrM//ihdO0KDJD8eCGLlm4qV0SnlWFPQ+Dy8BsAc8=
-    - secure: DaqjsZS60Y070Gw2lUNltzDltiYKB8IlYqsp0SyOjZAKlDGgp97+9YGEaIGcKF1qw3VGswg+7rrjWQ59iiwstTqgvx1mTTik0Qc0RCc8GtvIm+PS9TOhWxQginmhZmET9QKnGB7uj6K63qN8V8MZakZWIJxgUXx8jGiCTD22/eQ=
-    - secure: x4x3vHY6Wf4kxjAT8dbWRl8n4PxTGv8RtzfGIZYXvJgbnY2qW+cJ8Edp64V1LegvQbBQmKqAP9YSLHwZsuL3LxfVqt/seRs+DJMDVUd9jVYmym0rPqemJLezapalEg6qfLuoeNkDPWvIVccQCDEBPfaUdD0ZXYo44LS5jIV0+T8=
-    - secure: Pm2hyxdSLnY3ltrAva0FwNWWEQQcnf1JK2Fhjc3sWFpStMF7Obk93u4G5M6f2f28ZY6HFaMRYC1qEz/+yMIjsusIv8j0E6hgB/EnoM0dlxCc0aryH3X2IOYBVjRMjOFPmhYbNBoMmZWLluHWSyVSqr9k9nxowMfM3mi4fah11aQ=
-    - secure: WTZ238yAEfXRyll1n8yau3FUW9HTvq6scKIl9AmNZrnzTr9dktupWrBVV6CtvaufT1mSmDigZ7VGC6T71HkyRIyb2qfVTrnjnxE96Wtcci6PfkuQc2L2puuZYo8dXaBRoOgJKGHFo/uKVKWnp7t55dp3lBJJmclHhon+K2hMSJw=
-    - secure: LNsNoBvqY/jYDoBjWCE5cM+f1H8xOwSBc/tbWZo6E/jPRjUOLzXSicMMUMrlVto+bFzSUT8OVajV3XmoRx+Qntzv6bDSAGjdycvHd2YZQPn8BYrsFtR4So7SsJkF9FlxzbiOXaiSRpwGn7TP/DO7Neubrr4IS2ef4nWowGrnCE8=
-    - secure: PZivWbaCWFA2BFFY8n3UMxdEWjz7rBh568u9LF5LH3HgWADnfiwWzNriACqX9fhe7tSmDru5Bk978s+xPPAY9v24cfiDEX5a5MQ/XVr2rP48n3vlUDWERDhIodJ73F9F9GGZXToGdNz0MBUAHgiv7Lb0GYUfmOYzUJjWghngLBw=
-
-
-jobs:
-  include:
-    - name: "Documentation"
-      compiler: gcc
-      env: TASK="doc"
-      script: bash .travis.sh $TASK
-    - name: "Library, Examples, Tools, Apps"
-      compiler: clang
-      env: TASK="build"
-      script: bash .travis.sh $TASK
-    - name: "Unit Tests"
-      compiler: gcc
-      env: TASK="test"
-      script: bash .travis.sh $TASK
-
-notifications:
-  email: false
index f11644474cf7f9143bd5e8c52a6446638188f87a..b0fe4ea6e1f009f8e7b939e3adb3b80db1abcafd 100644 (file)
@@ -1,5 +1,45 @@
 # ChangeList
 
+## *= 1.9.1 (26.11.2018) =*
+
+### `Modules:`
+
+#### `Uncategorized:`
+
+* Add missing visualization section from the changelog generation. [[#2634]](https://github.com/PointCloudLibrary/pcl/pull/2634)
+
+#### `CMake:`
+
+* Fix development version check on DISSECT_VERSION. [[#2633]](https://github.com/PointCloudLibrary/pcl/pull/2633)
+* Remove CMake policy CMP0054 setting. [[#2627]](https://github.com/PointCloudLibrary/pcl/pull/2627)
+* PCLConfig.cmake - POP policy-stack before return() [[#2626]](https://github.com/PointCloudLibrary/pcl/pull/2626)
+* Remove CMake config installation folder only when empty [[#2622]](https://github.com/PointCloudLibrary/pcl/pull/2622)
+* Downgrade grabber dependency message level to STATUS. [[#2620]](https://github.com/PointCloudLibrary/pcl/pull/2620)
+* Migrate CMake policy 0048 [[#2608]](https://github.com/PointCloudLibrary/pcl/pull/2608)
+* Bump CMake minimum version to 3.1. [[#2605]](https://github.com/PointCloudLibrary/pcl/pull/2605)
+* Bump version to 1.9.0-dev [[#2602]](https://github.com/PointCloudLibrary/pcl/pull/2602)
+* Search in $EIGEN_ROOT first while looking for Eigen [[#2592]](https://github.com/PointCloudLibrary/pcl/pull/2592)
+
+#### `libpcl_visualization:`
+
+* address conflict between visualization and VTK head [[#2612]](https://github.com/PointCloudLibrary/pcl/pull/2612)
+
+#### `PCL Tutorials:`
+
+* Bump CMake minimum version to 3.1. [[#2605]](https://github.com/PointCloudLibrary/pcl/pull/2605)
+
+#### `PCL Tests:`
+
+* Refactor `SHOTEstimation` and `SHOTColorEstimation` tests [[#2636]](https://github.com/PointCloudLibrary/pcl/pull/2636)
+
+#### `CI:`
+
+* Set up azure pipelines for macOS High Sierra [[#2635]](https://github.com/PointCloudLibrary/pcl/pull/2635)
+* Enable Windows builds on Azure Pipelines [[#2632]](https://github.com/PointCloudLibrary/pcl/pull/2632)
+* Add Ubuntu16.04 based build on Azure Pipelines [[#2611]](https://github.com/PointCloudLibrary/pcl/pull/2611)
+* Remove documentation job from Travis [[#2604]](https://github.com/PointCloudLibrary/pcl/pull/2604)
+
+
 ## *= 1.9.0 (06.11.2018) =*
 
 ### `New Features:`
 * Avoid phantom surfces in marching cubes hoppe [[#1874]](https://github.com/PointCloudLibrary/pcl/pull/1874)
 * **[api]** Add ability to cache mls results [[#1952]](https://github.com/PointCloudLibrary/pcl/pull/1952)
 
+#### `libpcl_visualization:`
+
+* Made PCLVisualizerInteractorStyle::CloudActorMapPtr public. [[#2542]](https://github.com/PointCloudLibrary/pcl/pull/2542)
+* **[new-feature]** Add Viridis color LUT [[#2420]](https://github.com/PointCloudLibrary/pcl/pull/2420)
+* Update sha1 header inclusion for Boost 1.68+ [[#2373]](https://github.com/PointCloudLibrary/pcl/pull/2373)
+* Second change VTK version check in addTextureMesh [[#2322]](https://github.com/PointCloudLibrary/pcl/pull/2322)
+* Include missing `vtkTexture.h`. Follow up on #2291 [[#2316]](https://github.com/PointCloudLibrary/pcl/pull/2316)
+* Change VTK version check in `addTextureMesh` [[#2311]](https://github.com/PointCloudLibrary/pcl/pull/2311)
+* Remove depreciated VTK function MapDataArrayToMultiTextureAttribute [[#2291]](https://github.com/PointCloudLibrary/pcl/pull/2291)
+* Warn and skip adding normal cloud if it is empty [[#2265]](https://github.com/PointCloudLibrary/pcl/pull/2265)
+* **[api]** Fix access specifier in `PointCloudColorHandlerRGBAField` [[#2226]](https://github.com/PointCloudLibrary/pcl/pull/2226)
+* Check if color handler returns false [[#2209]](https://github.com/PointCloudLibrary/pcl/pull/2209)
+* Handle VTK legacy function (follow up to #2112) [[#2165]](https://github.com/PointCloudLibrary/pcl/pull/2165)
+* Travis merge test jobs. Expose VTK include directory for the visualization module. [[#2163]](https://github.com/PointCloudLibrary/pcl/pull/2163)
+* Small optimizations and fixes in PCLVisualizer [[#2112]](https://github.com/PointCloudLibrary/pcl/pull/2112)
+* Add another variant to `getPointCloudRenderingProperties()`  [[#2142]](https://github.com/PointCloudLibrary/pcl/pull/2142)
+* Restrict accepted types in `PCLVisualizer::addLine` signature [[#2134]](https://github.com/PointCloudLibrary/pcl/pull/2134)
+* Typo fix in error message. [[#2132]](https://github.com/PointCloudLibrary/pcl/pull/2132)
+* Fix add/remove of 3D text without custom viewport [[#2110]](https://github.com/PointCloudLibrary/pcl/pull/2110)
+* Add `octree` dependency to `visualization` [[#2115]](https://github.com/PointCloudLibrary/pcl/pull/2115)
+* Fix pcd_viewer color handling when invalid fields are present in pcd [[#2105]](https://github.com/PointCloudLibrary/pcl/pull/2105)
+* Add pcl visualizer interactor null guards [[#2104]](https://github.com/PointCloudLibrary/pcl/pull/2104)
+* Add remove text3d [[#2088]](https://github.com/PointCloudLibrary/pcl/pull/2088)
+* Replace auto_ptr with scoped_ptr [[#2037]](https://github.com/PointCloudLibrary/pcl/pull/2037)
+* **[removal]** Removal of deprecated code in filters, io, surface and visualization modules [[#2077]](https://github.com/PointCloudLibrary/pcl/pull/2077)
+* Suppress sign compare warnings [[#2068]](https://github.com/PointCloudLibrary/pcl/pull/2068)
+* **[new-feature]** Add overload to `PCLVisualizer::addText3D()` that allows specifying text orientation [[#2038]](https://github.com/PointCloudLibrary/pcl/pull/2038)
+* Add new constructors to PCLVisualizer [[#2004]](https://github.com/PointCloudLibrary/pcl/pull/2004)
+* Fix bug in PointCloudGeometryHandlerCustom [[#2001]](https://github.com/PointCloudLibrary/pcl/pull/2001)
+* Add missing PCL_EXPORTS in pcl_visualizer.h [[#1995]](https://github.com/PointCloudLibrary/pcl/pull/1995)
+* **[abi]** Add accessor for current rendering framerate in PCLVisualizer [[#1974]](https://github.com/PointCloudLibrary/pcl/pull/1974)
+* Allow changing LUT properties of a shape actor [[#1668]](https://github.com/PointCloudLibrary/pcl/pull/1668)
+* Fixed spelling and grammar errors [[#1959]](https://github.com/PointCloudLibrary/pcl/pull/1959)
+* Fixed error in documentation. [[#1957]](https://github.com/PointCloudLibrary/pcl/pull/1957)
+
 #### `PCL Apps:`
 
 * Suppress miscelanious warnings [[#2556]](https://github.com/PointCloudLibrary/pcl/pull/2556)
index 5b8ee5e54a89501050d742b147724e2104af82e7..0b4c1a33d1577fffade32b63b6a9348c54772f14 100644 (file)
@@ -1,28 +1,5 @@
 ### ---[ PCL global CMake
-cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
-
-if(POLICY CMP0017)
-  # Do not include files in CMAKE_MODULE_PATH from files
-  # in CMake module directory. Fix MXE build
-  cmake_policy(SET CMP0017 NEW)
-endif()
-
-if(POLICY CMP0020 AND (WIN32 AND NOT MINGW))
-  cmake_policy(SET CMP0020 NEW) # Automatically link Qt executables to qtmain target on Windows
-endif()
-
-if(POLICY CMP0042)
-  # Uses Mac OS X @rpath in the target's install name
-  cmake_policy(SET CMP0042 NEW)
-endif()
-
-if(POLICY CMP0048)
-  cmake_policy(SET CMP0048 OLD) # do not use VERSION option in project() command
-endif()
-
-if(POLICY CMP0054)
-  cmake_policy(SET CMP0054 OLD) # Silent warnings about quoted variables
-endif()
+cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
 
 if(POLICY CMP0074)
   # TODO:
@@ -38,7 +15,7 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "")
   set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "build type default to RelWithDebInfo, set to Release to improve performance" FORCE)
 endif()
 
-project(PCL)
+project(PCL VERSION 1.9.1)
 string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
 
 ### ---[ Find universal dependencies
@@ -217,7 +194,6 @@ if(CMAKE_COMPILER_IS_CLANG)
 endif()
 
 include("${PCL_SOURCE_DIR}/cmake/pcl_utils.cmake")
-set(PCL_VERSION "1.9.0" CACHE STRING "PCL version")
 DISSECT_VERSION()
 GET_OS_INFO()
 SET_INSTALL_DIRS()
index 7ec40baa0c26b1537a3c39b05ae50568f9df74fa..6fadb5954ba494d165c8b042e70c9fe95c5caa9b 100644 (file)
@@ -36,6 +36,9 @@ macro(pcl_report_not_found _reason)
   elseif(NOT PCL_FIND_QUIETLY)
     message(WARNING ${_reason})
   endif()
+  if(POLICY CMP0074)
+    cmake_policy(POP)
+  endif()
   return()
 endmacro(pcl_report_not_found)
 
@@ -472,6 +475,9 @@ set(PCL_TO_FIND_COMPONENTS ${_PCL_TO_FIND_COMPONENTS})
 unset(_PCL_TO_FIND_COMPONENTS)
 
 if(NOT PCL_TO_FIND_COMPONENTS)
+  if(POLICY CMP0074)
+    cmake_policy(POP)
+  endif()
   return()
 endif()
 
index db85ffea8fb426cb86a9ecff5318dafa6310f42b..029804fff2bdd55f6773cf6b4679c56d14431a93 100644 (file)
@@ -1,6 +1,6 @@
 # Check whether the requested PACKAGE_FIND_VERSION is compatible
 
-set(PACKAGE_VERSION @PCL_VERSION_PLAIN@)
+set(PACKAGE_VERSION @PCL_VERSION@)
 
 # Check whether the requested PACKAGE_FIND_VERSION is compatible
 if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
index 27e2b127804165696eb36adae695b0b6b40b3c05..aaca7bdaead08116f69091f091c64689c38c0841 100644 (file)
--- a/README.md
+++ b/README.md
@@ -7,14 +7,13 @@ Continuous integration
 [![Release][release-image]][releases]
 [![License][license-image]][license]
 
-[release-image]: https://img.shields.io/badge/release-1.9.0-green.svg?style=flat
+[release-image]: https://img.shields.io/badge/release-1.9.1-green.svg?style=flat
 [releases]: https://github.com/PointCloudLibrary/pcl/releases
 
 [license-image]: https://img.shields.io/badge/license-BSD-green.svg?style=flat
 [license]: https://github.com/PointCloudLibrary/pcl/blob/master/LICENSE.txt
 
-[![Build Status](https://travis-ci.com/PointCloudLibrary/pcl.svg?branch=master)](https://travis-ci.com/PointCloudLibrary/pcl)
-[![Build Status](https://ci.appveyor.com/api/projects/status/oiep6oktpmuap7qr/branch/master?svg=true)](https://ci.appveyor.com/project/PointCloudLibrary/pcl/branch/master)
+[![Build Status](https://dev.azure.com/PointCloudLibrary/pcl/_apis/build/status/PointCloudLibrary.pcl)](https://dev.azure.com/PointCloudLibrary/pcl/_build/latest?definitionId=1)
 
 Description
 -----------
index 79e727d135be606761b8fb89027694450b9c45c0..ad27dc5e79e8ba9e290f15d423b577cb37e7e97b 100644 (file)
@@ -11,16 +11,8 @@ find_package(PkgConfig QUIET)
 pkg_check_modules(PC_EIGEN eigen3)
 set(EIGEN_DEFINITIONS ${PC_EIGEN_CFLAGS_OTHER})
 
-if(CMAKE_SYSTEM_NAME STREQUAL Linux)
-    set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /usr /usr/local)
-endif(CMAKE_SYSTEM_NAME STREQUAL Linux)
-if(APPLE)
-  list(APPEND CMAKE_INCLUDE_PATH /opt/local)
-  set(CMAKE_FIND_FRAMEWORK NEVER)
-endif()
-
 find_path(EIGEN_INCLUDE_DIR Eigen/Core
-    HINTS ${PC_EIGEN_INCLUDEDIR} ${PC_EIGEN_INCLUDE_DIRS} "${EIGEN_ROOT}" "$ENV{EIGEN_ROOT}"
+    HINTS "${EIGEN_ROOT}" "$ENV{EIGEN_ROOT}" ${PC_EIGEN_INCLUDEDIR} ${PC_EIGEN_INCLUDE_DIRS}
     PATHS "$ENV{PROGRAMFILES}/Eigen" "$ENV{PROGRAMW6432}/Eigen"
           "$ENV{PROGRAMFILES}/Eigen3" "$ENV{PROGRAMW6432}/Eigen3"
     PATH_SUFFIXES eigen3 include/eigen3 include)
@@ -38,7 +30,6 @@ if(EIGEN_INCLUDE_DIR)
 endif(EIGEN_INCLUDE_DIR)
 
 set(EIGEN_INCLUDE_DIRS ${EIGEN_INCLUDE_DIR})
-set(CMAKE_FIND_FRAMEWORK)
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(Eigen DEFAULT_MSG EIGEN_INCLUDE_DIR)
index 5e716d9426d9886bda1d89a5dad947487d4f84a3..3251694df6954757d414a6d98c97028d4d5ff534 100644 (file)
@@ -1,14 +1,14 @@
 set(CPACK_PACKAGE_NAME "@PROJECT_NAME@")
 set(CPACK_PACKAGE_VENDOR "PointClouds.org")
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Point Cloud Library (PCL)")
-set(CPACK_PACKAGE_INSTALL_DIRECTORY "@PROJECT_NAME@ @PCL_VERSION@")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "@PROJECT_NAME@ @PCL_VERSION_PRETTY@")
 set(CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/LICENSE.txt")
 set(CPACK_RESOURCE_FILE_README "@PROJECT_SOURCE_DIR@/AUTHORS.txt")
 
 @PCL_CPACK_COMPONENTS@
 
 IF ((WIN32 OR UNIX) AND (CPACK_GENERATOR STREQUAL "NSIS"))
-    set(CPACK_NSIS_DISPLAY_NAME "@PROJECT_NAME@-@PCL_VERSION@")
+    set(CPACK_NSIS_DISPLAY_NAME "@PROJECT_NAME@-@PCL_VERSION_PRETTY@")
     set(CPACK_NSIS_MUI_ICON "@PROJECT_SOURCE_DIR@/cmake/images/pcl.ico")
     set(CPACK_NSIS_MUI_UNIICON "@PROJECT_SOURCE_DIR@/cmake/images/pcl.ico")
     set(CPACK_NSIS_HELP_LINK "http://www.pointclouds.org")
@@ -16,9 +16,9 @@ IF ((WIN32 OR UNIX) AND (CPACK_GENERATOR STREQUAL "NSIS"))
     set(CPACK_NSIS_MODIFY_PATH ON)
     set(CPACK_PACKAGE_EXECUTABLES @PCL_EXECUTABLES@)
     set(CPACK_NSIS_MENU_LINKS 
-            "share/doc/pcl-@PCL_MAJOR_VERSION@.@PCL_MINOR_VERSION@/tutorials/html/index.html" "Tutorials"
-            "share/doc/pcl-@PCL_MAJOR_VERSION@.@PCL_MINOR_VERSION@/tutorials/html/sources" "Tutorials sources"
-            "share/doc/pcl-@PCL_MAJOR_VERSION@.@PCL_MINOR_VERSION@/html/pcl-@PCL_MAJOR_VERSION@.@PCL_MINOR_VERSION@.chm" "Documentation"
+            "share/doc/pcl-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@/tutorials/html/index.html" "Tutorials"
+            "share/doc/pcl-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@/tutorials/html/sources" "Tutorials sources"
+            "share/doc/pcl-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@/html/pcl-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@.chm" "Documentation"
             "http://www.pointclouds.org" "PCL Website")
     #set(CPACK_NSIS_MENU_LINKS "share/doc/@PROJECT_NAME@/user_guide.pdf" "User's guide")
     #set(CPACK_NSIS_MENU_LINKS "share/doc/@PROJECT_NAME@/developer_guide.pdf" "Developer's guide")
index 8869279f1271e2e1ef9ca919a9f7c522e32c9020..8ebcfea998ef5bfa70ad2b3f0782eb79437b96ad 100644 (file)
@@ -9,10 +9,10 @@
 #  list(APPEND CPACK_GENERATOR "RPM")
 #endif(EXISTS ${RPM_PROGRAM})
 
-set(CPACK_PACKAGE_VERSION "${PCL_VERSION}")
-set(CPACK_PACKAGE_VERSION_MAJOR "${PCL_MAJOR_VERSION}")
-set(CPACK_PACKAGE_VERSION_MINOR "${PCL_MINOR_VERSION}")
-set(CPACK_PACKAGE_VERSION_PATCH "${PCL_REVISION_VERSION}")
+set(CPACK_PACKAGE_VERSION "${PCL_VERSION_PRETTY}")
+set(CPACK_PACKAGE_VERSION_MAJOR "${PCL_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${PCL_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${PCL_VERSION_PATCH}")
 set(CPACK_PACKAGE_CONFIG_INSTALL_DIR ${PCLCONFIG_INSTALL_DIR})
 
 # DEB
@@ -33,9 +33,9 @@ if(WIN32)
     set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES32")
     set(win_system_name win32)
   endif(CMAKE_CL_64)
-  set(CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}-${PCL_VERSION}")
+  set(CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}-${PCL_VERSION_PRETTY}")
   if(BUILD_all_in_one_installer)
-    set(CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}-${PCL_VERSION}-AllInOne")
+    set(CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}-${PCL_VERSION_PRETTY}-AllInOne")
   endif(BUILD_all_in_one_installer)
   if(MSVC_VERSION EQUAL 1600)
     set(CPACK_NSIS_PACKAGE_NAME "${CPACK_NSIS_PACKAGE_NAME}-msvc2010-${win_system_name}")
@@ -54,7 +54,7 @@ if(WIN32)
   # force CPACK_PACKAGE_INSTALL_REGISTRY_KEY because of a known limitation in cmake/cpack to be fixed in next releases
   # http://public.kitware.com/Bug/view.php?id=9094
   # This is to allow a 32bit and a 64bit of PCL to get installed on one system
-  set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${PROJECT_NAME} ${PCL_VERSION} ${win_system_name}" )
+  set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${PROJECT_NAME} ${PCL_VERSION_PRETTY} ${win_system_name}" )
 endif()
 
 # dpkg
index 22049d262f0caebbe7b17c64b5960a0b2b1987a8..30696346f90fa4171b49c94741ef90a96e7ad826 100644 (file)
@@ -207,8 +207,8 @@ macro(PCL_ADD_LIBRARY _name _component)
        endif()
 
     set_target_properties(${_name} PROPERTIES
-        VERSION ${PCL_VERSION_PLAIN}
-        SOVERSION ${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}
+        VERSION ${PCL_VERSION}
+        SOVERSION ${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}
         DEFINE_SYMBOL "PCLAPI_EXPORTS")
     if(USE_PROJECT_FOLDERS)
       set_target_properties(${_name} PROPERTIES FOLDER "Libraries")
@@ -240,8 +240,8 @@ macro(PCL_CUDA_ADD_LIBRARY _name _component)
     target_link_libraries(${_name} ${Boost_LIBRARIES})
 
     set_target_properties(${_name} PROPERTIES
-        VERSION ${PCL_VERSION_PLAIN}
-        SOVERSION ${PCL_MAJOR_VERSION}
+        VERSION ${PCL_VERSION}
+        SOVERSION ${PCL_VERSION_MAJOR}
         DEFINE_SYMBOL "PCLAPI_EXPORTS")
     if(USE_PROJECT_FOLDERS)
       set_target_properties(${_name} PROPERTIES FOLDER "Libraries")
@@ -468,14 +468,14 @@ macro(PCL_MAKE_PKGCONFIG _name _component _desc _pcl_deps _ext_deps _int_deps _c
     LIST_TO_STRING(_ext_deps_str "${_ext_deps}")
     set(PKG_EXTERNAL_DEPS ${_ext_deps_str})
     foreach(_dep ${_pcl_deps})
-      set(PKG_EXTERNAL_DEPS "${PKG_EXTERNAL_DEPS} pcl_${_dep}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}")
+      set(PKG_EXTERNAL_DEPS "${PKG_EXTERNAL_DEPS} pcl_${_dep}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
     endforeach(_dep)
     set(PKG_INTERNAL_DEPS "")
     foreach(_dep ${_int_deps})
         set(PKG_INTERNAL_DEPS "${PKG_INTERNAL_DEPS} -l${_dep}")
     endforeach(_dep)
 
-    set(_pc_file ${CMAKE_CURRENT_BINARY_DIR}/${_name}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}.pc)
+    set(_pc_file ${CMAKE_CURRENT_BINARY_DIR}/${_name}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}.pc)
     configure_file(${PROJECT_SOURCE_DIR}/cmake/pkgconfig.cmake.in ${_pc_file}
         @ONLY)
     install(FILES ${_pc_file} DESTINATION ${PKGCFG_INSTALL_DIR}
@@ -503,13 +503,13 @@ set(PKG_CFLAGS ${_cflags})
 LIST_TO_STRING(_ext_deps_str "${_ext_deps}")
 set(PKG_EXTERNAL_DEPS ${_ext_deps_str})
 foreach(_dep ${_pcl_deps})
-set(PKG_EXTERNAL_DEPS "${PKG_EXTERNAL_DEPS} pcl_${_dep}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}")
+set(PKG_EXTERNAL_DEPS "${PKG_EXTERNAL_DEPS} pcl_${_dep}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
 endforeach(_dep)
 set(PKG_INTERNAL_DEPS "")
 foreach(_dep ${_int_deps})
 set(PKG_INTERNAL_DEPS "${PKG_INTERNAL_DEPS} -l${_dep}")
 endforeach(_dep)
-set(_pc_file ${CMAKE_CURRENT_BINARY_DIR}/${_name}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}.pc)
+set(_pc_file ${CMAKE_CURRENT_BINARY_DIR}/${_name}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}.pc)
 configure_file(${PROJECT_SOURCE_DIR}/cmake/pkgconfig-headeronly.cmake.in ${_pc_file} @ONLY)
 install(FILES ${_pc_file} DESTINATION ${PKGCFG_INSTALL_DIR}
 COMPONENT pcl_${_component})
@@ -861,7 +861,7 @@ macro(PCL_ADD_GRABBER_DEPENDENCY _name _description)
       find_package(${_name})
       if (NOT ${_name_capitalized}_FOUND)
         set(WITH_${_name_capitalized} FALSE CACHE BOOL "${_description}" FORCE)
-        message(WARNING "${_description}: not building because ${_name} not found")
+        message(STATUS "${_description}: not building because ${_name} not found")
       else()
         set(HAVE_${_name_capitalized} TRUE)
         include_directories(SYSTEM "${${_name_capitalized}_INCLUDE_DIRS}")
index 41a64a269840252fffc6cc390af48cb370931d30..f523dbc8c8ee572b9918f2eca0b279d8b3ab5d11 100644 (file)
@@ -59,19 +59,13 @@ endmacro(REMOVE_VTK_DEFINITIONS)
 ###############################################################################
 # Pull the component parts out of the version number.
 macro(DISSECT_VERSION)
-    # Find version components
-    string(REGEX REPLACE "^([0-9]+).*" "\\1"
-        PCL_MAJOR_VERSION "${PCL_VERSION}")
-    string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1"
-        PCL_MINOR_VERSION "${PCL_VERSION}")
-    string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1"
-        PCL_REVISION_VERSION "${PCL_VERSION}")
-    set(PCL_VERSION_PLAIN "${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}.${PCL_REVISION_VERSION}")
-    if(${PCL_VERSION} MATCHES "^[0-9]+\\.[0-9]+\\.[0-9]+-dev$")
+    # Detect if we're in a developlment version and generate pretty version string
+    if(PCL_VERSION_TWEAK EQUAL 99)
         set(PCL_DEV_VERSION 1)
-        set(PCL_VERSION_PLAIN "${PCL_VERSION_PLAIN}.99")
+        set(PCL_VERSION_PRETTY "${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}.${PCL_VERSION_PATCH}-dev")
     else()
         set(PCL_DEV_VERSION 0)
+        set(PCL_VERSION_PRETTY "${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}.${PCL_VERSION_PATCH}")
     endif()
 endmacro(DISSECT_VERSION)
 
@@ -105,18 +99,18 @@ macro(SET_INSTALL_DIRS)
   endif (NOT DEFINED LIB_INSTALL_DIR)
     if(NOT ANDROID)
       set(INCLUDE_INSTALL_ROOT
-          "include/${PROJECT_NAME_LOWER}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}")
+          "include/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
     else(NOT ANDROID)
       set(INCLUDE_INSTALL_ROOT "include") # Android, don't put into subdir
     endif(NOT ANDROID)
     set(INCLUDE_INSTALL_DIR "${INCLUDE_INSTALL_ROOT}/pcl")
-    set(DOC_INSTALL_DIR "share/doc/${PROJECT_NAME_LOWER}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}")
+    set(DOC_INSTALL_DIR "share/doc/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
     set(BIN_INSTALL_DIR "bin")
     set(PKGCFG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig")
     if(WIN32 AND NOT MINGW)
         set(PCLCONFIG_INSTALL_DIR "cmake")
       else(WIN32 AND NOT MINGW)
-        set(PCLCONFIG_INSTALL_DIR "share/${PROJECT_NAME_LOWER}-${PCL_MAJOR_VERSION}.${PCL_MINOR_VERSION}")
+        set(PCLCONFIG_INSTALL_DIR "share/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
       endif(WIN32 AND NOT MINGW)
 endmacro(SET_INSTALL_DIRS)
 
index b543e312a3bcb03f936132e449c3b1d9d6c10b0b..950fa785c25b16da18bc9e2b87bbcca1042ea57f 100644 (file)
@@ -3,10 +3,10 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
 libdir=${prefix}/@LIB_INSTALL_DIR@
 #includedir=${prefix}/@INCLUDE_INSTALL_DIR@
-includedir=${prefix}/include/@PROJECT_NAME_LOWER@-@PCL_MAJOR_VERSION@.@PCL_MINOR_VERSION@
+includedir=${prefix}/include/@PROJECT_NAME_LOWER@-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@
 Name: @PKG_NAME@
 Description: @PKG_DESC@
-Version: @PCL_VERSION_PLAIN@
+Version: @PCL_VERSION@
 Requires: @PKG_EXTERNAL_DEPS@
 Libs: 
 Cflags: -I${includedir} @PKG_CFLAGS@
index 6798be957c7e3a5cb7b501c3ee341478ede25ca9..c351e441a150db5a6adcf301e5432487902f689e 100644 (file)
@@ -3,10 +3,10 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
 libdir=${prefix}/@LIB_INSTALL_DIR@
 #includedir=${prefix}/@INCLUDE_INSTALL_DIR@
-includedir=${prefix}/include/@PROJECT_NAME_LOWER@-@PCL_MAJOR_VERSION@.@PCL_MINOR_VERSION@
+includedir=${prefix}/include/@PROJECT_NAME_LOWER@-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@
 Name: @PKG_NAME@
 Description: @PKG_DESC@
-Version: @PCL_VERSION_PLAIN@
+Version: @PCL_VERSION@
 Requires: @PKG_EXTERNAL_DEPS@
 Libs: -L${libdir} -l@PKG_NAME@ @PKG_LIBFLAGS@ @PKG_INTERNAL_DEPS@
 Cflags: -I${includedir} @PKG_CFLAGS@
index d11912336916e84a8435b6923f79129f61ef3e6d..803861cb5b7a64d48aa25fc8214441c3d8456a7f 100644 (file)
@@ -1,66 +1,66 @@
 if(NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")
-    message(FATAL_ERROR "Cannot find install manifest: \"@PROJECT_BINARY_DIR@/install_manifest.txt\"")
-endif(NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")
+  message(FATAL_ERROR "Cannot find install manifest: \"@PROJECT_BINARY_DIR@/install_manifest.txt\"")
+endif()
 
 file(READ "@PROJECT_BINARY_DIR@/install_manifest.txt" files)
 string(REGEX REPLACE "\n" ";" files "${files}")
 foreach(file ${files})
-    message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
-    if(EXISTS "$ENV{DESTDIR}${file}" OR IS_SYMLINK "$ENV{DESTDIR}${file}")
-        exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
-            OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
-        if(NOT "${rm_retval}" STREQUAL 0)
-            message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
-        endif(NOT "${rm_retval}" STREQUAL 0)
-    else(EXISTS "$ENV{DESTDIR}${file}" OR IS_SYMLINK "$ENV{DESTDIR}${file}")
-        message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
-    endif(EXISTS "$ENV{DESTDIR}${file}" OR IS_SYMLINK "$ENV{DESTDIR}${file}")
-endforeach(file)
+  message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
+  if(EXISTS "$ENV{DESTDIR}${file}" OR IS_SYMLINK "$ENV{DESTDIR}${file}")
+    exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+                 OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
+    if(NOT "${rm_retval}" STREQUAL 0)
+      message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+    endif()
+  else()
+    message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
+  endif()
+endforeach()
 
 # remove pcl directory in include (removes all files in it!)
 message(STATUS "Uninstalling \"@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@\"")
 if(EXISTS "@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@")
-    exec_program("@CMAKE_COMMAND@"
-        ARGS "-E remove_directory \"@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@\""
-        OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
-    if(NOT "${rm_retval}" STREQUAL 0)
-        message(FATAL_ERROR
-            "Problem when removing \"@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@\"")
-    endif(NOT "${rm_retval}" STREQUAL 0)
-else(EXISTS "@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@")
-    message(STATUS
-        "Directory \"@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@\" does not exist.")
-endif(EXISTS "@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@")
+  exec_program("@CMAKE_COMMAND@"
+               ARGS "-E remove_directory \"@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@\""
+               OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
+  if(NOT "${rm_retval}" STREQUAL 0)
+    message(FATAL_ERROR "Problem when removing \"@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@\"")
+  endif()
+else()
+  message(STATUS "Directory \"@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_ROOT@\" does not exist.")
+endif()
 
 # remove pcl directory in share (removes all files in it!)
 # created by CMakeLists.txt for PCLConfig.cmake
-message(STATUS "Uninstalling \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\"")
 if(EXISTS "@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@")
+  file(GLOB_RECURSE CMAKE_CONFIG_FOLDER_FILES FOLLOW_SYMLINKS
+       LIST_DIRECTORIES false
+       "@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@/*")
+  list(LENGTH CMAKE_CONFIG_FOLDER_FILES CMAKE_CONFIG_FOLDER_FILES_NUMBER)
+  if(CMAKE_CONFIG_FOLDER_FILES_NUMBER EQUAL 0)
+    message(STATUS "Uninstalling \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\"")
     exec_program("@CMAKE_COMMAND@"
-        ARGS "-E remove_directory \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\""
-        OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
+                 ARGS "-E remove_directory \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\""
+                 OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
     if(NOT "${rm_retval}" STREQUAL 0)
-        message(FATAL_ERROR
-            "Problem when removing \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\"")
-    endif(NOT "${rm_retval}" STREQUAL 0)
+      message(FATAL_ERROR "Problem when removing \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\"")
+    endif()
+  endif()
 else(EXISTS "@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@")
-    message(STATUS
-        "Directory \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\" does not exist.")
-endif(EXISTS "@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@")
+  message(STATUS "Directory \"@CMAKE_INSTALL_PREFIX@/@PCLCONFIG_INSTALL_DIR@\" does not exist.")
+endif()
 
 # remove pcl directory in share/doc (removes all files in it!)
 if(@WITH_DOCS@)
   message(STATUS "Uninstalling \"@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@\"")
   if(EXISTS "@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@")
-      exec_program("@CMAKE_COMMAND@"
-          ARGS "-E remove_directory \"@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@\""
-          OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
-      if(NOT "${rm_retval}" STREQUAL 0)
-          message(FATAL_ERROR
-              "Problem when removing \"@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@\"")
-      endif(NOT "${rm_retval}" STREQUAL 0)
+    exec_program("@CMAKE_COMMAND@"
+                 ARGS "-E remove_directory \"@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@\""
+                 OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval)
+    if(NOT "${rm_retval}" STREQUAL 0)
+      message(FATAL_ERROR "Problem when removing \"@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@\"")
+    endif()
   else(EXISTS "@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@")
-      message(STATUS
-          "Directory \"@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@\" does not exist.")
-  endif(EXISTS "@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@")
+    message(STATUS "Directory \"@CMAKE_INSTALL_PREFIX@/@DOC_INSTALL_DIR@\" does not exist.")
+  endif()
 endif()
index e204786251155f5a5dbe7c0581101ff1d34550a3..b30699360386c7c520b745afc3df41b7dd40a336 100644 (file)
@@ -3,7 +3,7 @@
 #---------------------------------------------------------------------------
 DOXYFILE_ENCODING      = UTF-8
 PROJECT_NAME           = "Point Cloud Library (PCL)"
-PROJECT_NUMBER         = @PCL_VERSION@
+PROJECT_NUMBER         = @PCL_VERSION_PRETTY@
 PROJECT_BRIEF          =
 PROJECT_LOGO           =
 OUTPUT_DIRECTORY       = "@CMAKE_CURRENT_BINARY_DIR@"
@@ -178,7 +178,7 @@ DOCSET_BUNDLE_ID       = pointclouds.org
 DOCSET_PUBLISHER_ID    = pointclouds.org.Publisher
 DOCSET_PUBLISHER_NAME  = Point Cloud Library (PCL) Development Team
 GENERATE_HTMLHELP      = @DOCUMENTATION_HTML_HELP@
-CHM_FILE               = "pcl-@PCL_MAJOR_VERSION@.@PCL_MINOR_VERSION@.chm"
+CHM_FILE               = "pcl-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@.chm"
 HHC_LOCATION           = "@HTML_HELP_COMPILER@"
 GENERATE_CHI           = NO
 CHM_INDEX_ENCODING     = 
index d2fe8db06854cbbf5d142c6487e99d55311e2b38..17ec1e1cc9977dff6bdae71ac57ef2cfebf292bf 100644 (file)
@@ -59,7 +59,7 @@ compile a series of 3rd party library dependencies:
 .. note::
   
    Though not a dependency per se, don't forget that you also need the CMake
-   build system (http://www.cmake.org/), at least version **2.8.3**. A Git
+   build system (http://www.cmake.org/), at least version **3.1.0**. A Git
    client for Windows is also required to download the PCL source code.
    
 Building dependencies
index cecaceb633054878d1fca4bdb3cb76e6fa72085c..034f99134327e38cefe62ea6dd26f86b5e8649ef 100644 (file)
@@ -44,7 +44,7 @@ Required
 
 The following libraries are **Required** to build PCL.
 
-- **CMake** version >= 2.8.3 (http://www.cmake.org)
+- **CMake** version >= 3.1.0 (http://www.cmake.org)
    Cross-platform, open-source build system.
 
    .. note::
index fd1dfaaf646da5c4d0059a993eb43f01646e4591..ed7be630ca01bfc0d2141e2556b728f6805a1aee 100644 (file)
@@ -4,7 +4,7 @@
 Compiling PCL from source on POSIX compliant systems
 ====================================================
 
-Though not a dependency per se, don’t forget that you also need the `CMake build system <http://www.cmake.org/download/>`_, at least version 2.8.3.
+Though not a dependency per se, don’t forget that you also need the `CMake build system <http://www.cmake.org/download/>`_, at least version 3.1.0.
 Additional help on how to use the CMake build system is available `here <http://www.pointclouds.org/documentation/tutorials/building_pcl.php#building-pcl>`_.
 
 Please note that the following installation instructions are only valid for POSIX systems (e.g., Linux, MacOS) with an already installed make/gnu toolchain.
index b1f541609cc27ae49be454a7405d7286e29f830d..60ebf62a386fb003e1d1198c5c217c67d4a044d5 100644 (file)
@@ -65,7 +65,7 @@ is needed only to build PCL tests. We do not provide GTest installers. **optiona
 .. note::
   
    Though not a dependency per se, don't forget that you also need the CMake
-   build system (http://www.cmake.org/), at least version **2.8.7**. A Git client
+   build system (http://www.cmake.org/), at least version **3.1.0**. A Git client
    for Windows is also required to download the PCL source code.
 
 Downloading PCL source code
index a654294f7be8dd076ce28cc6b8e553c4b695efa2..03650f0e24e17985fd081c09c08137afc83c4315 100644 (file)
@@ -2,11 +2,11 @@
 
 #define BUILD_@CMAKE_BUILD_TYPE@
 /* PCL version information */
-#define PCL_MAJOR_VERSION ${PCL_MAJOR_VERSION}
-#define PCL_MINOR_VERSION ${PCL_MINOR_VERSION}
-#define PCL_REVISION_VERSION ${PCL_REVISION_VERSION}
+#define PCL_MAJOR_VERSION ${PCL_VERSION_MAJOR}
+#define PCL_MINOR_VERSION ${PCL_VERSION_MINOR}
+#define PCL_REVISION_VERSION ${PCL_VERSION_PATCH}
 #define PCL_DEV_VERSION ${PCL_DEV_VERSION}
-#define PCL_VERSION_PRETTY "${PCL_VERSION}"
+#define PCL_VERSION_PRETTY "${PCL_VERSION_PRETTY}"
 #define PCL_VERSION_CALC(MAJ, MIN, PATCH) (MAJ*100000+MIN*100+PATCH)
 #define PCL_VERSION \
     PCL_VERSION_CALC(PCL_MAJOR_VERSION, PCL_MINOR_VERSION, PCL_REVISION_VERSION)
index dd2dabd5ead6f56a5f8d766028e6146fdec7bb34..1e7a8600b13e7585baeccf3514fa395827af2f82 100644 (file)
@@ -342,8 +342,39 @@ testSHOTLocalReferenceFrame (const typename PointCloud<PointT>::Ptr & points,
   checkDesc<OutputT> (output, output2);
 }
 
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-TEST (PCL, SHOTShapeEstimation)
+// "Placeholder" for the type specialized test fixture
+template<typename T>
+struct SHOTShapeTest;
+
+// Template specialization test for SHOTEstimation
+template<>
+struct SHOTShapeTest<SHOTEstimation<PointXYZ, Normal, SHOT352> >
+  : public ::testing::Test
+{
+  SHOTEstimation<PointXYZ, Normal, SHOT352> shot;
+};
+
+// Template specialization test for SHOTEstimationOMP
+template<>
+struct SHOTShapeTest<SHOTEstimationOMP<PointXYZ, Normal, SHOT352> >
+  : public ::testing::Test
+{
+  // Default Constructor is defined to instantiate 4 threads
+  SHOTShapeTest<SHOTEstimationOMP<PointXYZ, Normal, SHOT352> > ()
+    : shot (4)
+  {}
+
+  SHOTEstimationOMP<PointXYZ, Normal, SHOT352> shot;
+};
+
+// Types which will be instantiated
+typedef ::testing::Types<SHOTEstimation<PointXYZ, Normal, SHOT352>,
+                         SHOTEstimationOMP<PointXYZ, Normal, SHOT352> > SHOTEstimatorTypes;
+TYPED_TEST_CASE (SHOTShapeTest, SHOTEstimatorTypes);
+
+// This is a copy of the old SHOTShapeEstimation test which will now
+// be applied to both SHOTEstimation and SHOTEstimationOMP
+TYPED_TEST (SHOTShapeTest, Estimation)
 {
   // Estimate normals first
   double mr = 0.002;
@@ -399,7 +430,7 @@ TEST (PCL, SHOTShapeEstimation)
 */
 
   // SHOT352
-  SHOTEstimation<PointXYZ, Normal, SHOT352> shot352;
+  TypeParam& shot352 = this->shot;
   shot352.setInputNormals (normals);
   EXPECT_EQ (shot352.getInputNormals (), normals);
   shot352.setRadiusSearch (20 * mr);
@@ -437,8 +468,8 @@ TEST (PCL, SHOTShapeEstimation)
   //testSHOTIndicesAndSearchSurface<SHOTEstimation<PointXYZ, Normal, SHOT>, PointXYZ, Normal, SHOT> (cloud.makeShared (), normals, test_indices);
   //testSHOTLocalReferenceFrame<SHOTEstimation<PointXYZ, Normal, SHOT>, PointXYZ, Normal, SHOT> (cloud.makeShared (), normals, test_indices);
 
-  testSHOTIndicesAndSearchSurface<SHOTEstimation<PointXYZ, Normal, SHOT352>, PointXYZ, Normal, SHOT352> (cloud.makeShared (), normals, test_indices);
-  testSHOTLocalReferenceFrame<SHOTEstimation<PointXYZ, Normal, SHOT352>, PointXYZ, Normal, SHOT352> (cloud.makeShared (), normals, test_indices);
+  testSHOTIndicesAndSearchSurface<TypeParam, PointXYZ, Normal, SHOT352> (cloud.makeShared (), normals, test_indices);
+  testSHOTLocalReferenceFrame<TypeParam, PointXYZ, Normal, SHOT352> (cloud.makeShared (), normals, test_indices);
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -498,8 +529,40 @@ TEST (PCL, GenericSHOTShapeEstimation)
   testSHOTLocalReferenceFrame<SHOTEstimation<PointXYZ, Normal, SHOT>, PointXYZ, Normal, SHOT> (cloud.makeShared (), normals, test_indices, shapeStep_);
 }
 */
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-TEST (PCL, SHOTShapeAndColorEstimation)
+
+// "Placeholder" for the type specialized test fixture
+template<typename T>
+struct SHOTShapeAndColorTest;
+
+// Template specialization test for SHOTColorEstimation
+template<>
+struct SHOTShapeAndColorTest<SHOTColorEstimation<PointXYZRGBA, Normal, SHOT1344> >
+  : public ::testing::Test
+{
+  SHOTColorEstimation<PointXYZRGBA, Normal, SHOT1344> shot;
+};
+
+// Template specialization test for SHOTColorEstimationOMP
+template<>
+struct SHOTShapeAndColorTest<SHOTColorEstimationOMP<PointXYZRGBA, Normal, SHOT1344> >
+  : public ::testing::Test
+{
+  // Default Constructor is defined to instantiate 4 threads
+  SHOTShapeAndColorTest<SHOTColorEstimationOMP<PointXYZRGBA, Normal, SHOT1344> > ()
+    : shot (true, true, 4)
+  {}
+
+  SHOTColorEstimationOMP<PointXYZRGBA, Normal, SHOT1344> shot;
+};
+
+// Types which will be instantiated
+typedef ::testing::Types<SHOTColorEstimation<PointXYZRGBA, Normal, SHOT1344>,
+                         SHOTColorEstimationOMP<PointXYZRGBA, Normal, SHOT1344> > SHOTColorEstimatorTypes;
+TYPED_TEST_CASE (SHOTShapeAndColorTest, SHOTColorEstimatorTypes);
+
+// This is a copy of the old SHOTShapeAndColorEstimation test which will now
+// be applied to both SHOTColorEstimation and SHOTColorEstimationOMP
+TYPED_TEST (SHOTShapeAndColorTest, Estimation)
 {
   double mr = 0.002;
   // Estimate normals first
@@ -572,7 +635,7 @@ TEST (PCL, SHOTShapeAndColorEstimation)
 */
 
   // SHOT1344
-  SHOTColorEstimation<PointXYZRGBA, Normal, SHOT1344> shot1344 (true, true);
+  TypeParam& shot1344 = this->shot;
   shot1344.setInputNormals (normals);
   EXPECT_EQ (shot1344.getInputNormals (), normals);
 
@@ -618,228 +681,8 @@ TEST (PCL, SHOTShapeAndColorEstimation)
   //testSHOTIndicesAndSearchSurface<SHOTEstimation<PointXYZRGBA, Normal, SHOT>, PointXYZRGBA, Normal, SHOT> (cloudWithColors.makeShared (), normals, test_indices);
   //testSHOTLocalReferenceFrame<SHOTEstimation<PointXYZRGBA, Normal, SHOT>, PointXYZRGBA, Normal, SHOT> (cloudWithColors.makeShared (), normals, test_indices);
 
-  testSHOTIndicesAndSearchSurface<SHOTColorEstimation<PointXYZRGBA, Normal, SHOT1344>, PointXYZRGBA, Normal, SHOT1344> (cloudWithColors.makeShared (), normals, test_indices);
-  testSHOTLocalReferenceFrame<SHOTColorEstimation<PointXYZRGBA, Normal, SHOT1344>, PointXYZRGBA, Normal, SHOT1344> (cloudWithColors.makeShared (), normals, test_indices);
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-TEST (PCL, SHOTShapeEstimationOpenMP)
-{
-  // Estimate normals first
-  double mr = 0.002;
-#ifdef _OPENMP
-  NormalEstimationOMP<PointXYZ, Normal> n (omp_get_max_threads ());
-#else
-  NormalEstimationOMP<PointXYZ, Normal> n;
-#endif
-  PointCloud<Normal>::Ptr normals (new PointCloud<Normal> ());
-  // set parameters
-  n.setInputCloud (cloud.makeShared ());
-  boost::shared_ptr<vector<int> > indicesptr (new vector<int> (indices));
-  n.setIndices (indicesptr);
-  n.setSearchMethod (tree);
-  n.setRadiusSearch (20 * mr);
-  n.compute (*normals);
-
-/*
-  SHOTEstimationOMP<PointXYZ, Normal, SHOT> shot;
-  shot.setInputNormals (normals);
-  EXPECT_EQ (shot.getInputNormals (), normals);
-
-  shot.setRadiusSearch ( 20 * mr);
-
-  // Object
-  PointCloud<SHOT>::Ptr shots (new PointCloud<SHOT>);
-
-  // set parameters
-  shot.setInputCloud (cloud.makeShared ());
-  shot.setIndices (indicesptr);
-  shot.setSearchMethod (tree);
-
-  // estimate
-  shot.compute (*shots);
-  EXPECT_EQ (shots->points.size (), indices.size ());
-
-  EXPECT_NEAR (shots->points[103].descriptor[9 ], 0.0072018504, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[10], 0.0023103887, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[11], 0.0024724449, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[19], 0.0031367359, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[20], 0.17439659, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[21], 0.070665278, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[42], 0.013304681, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[53], 0.0073520984, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[54], 0.013584172, 1e-4);
-  EXPECT_NEAR (shots->points[103].descriptor[55], 0.0050609680, 1e-4);
-*/
-
-  // SHOT352
-  SHOTEstimationOMP<PointXYZ, Normal, SHOT352> shot352;
-  shot352.setInputNormals (normals);
-  EXPECT_EQ (shot352.getInputNormals (), normals);
-
-  shot352.setRadiusSearch ( 20 * mr);
-
-  // Object
-  PointCloud<SHOT352>::Ptr shots352 (new PointCloud<SHOT352>);
-
-  // set parameters
-  shot352.setInputCloud (cloud.makeShared ());
-  shot352.setIndices (indicesptr);
-  shot352.setSearchMethod (tree);
-
-  // estimate
-  shot352.compute (*shots352);
-  EXPECT_EQ (shots352->points.size (), indices.size ());
-
-  EXPECT_NEAR (shots352->points[103].descriptor[9 ], 0.0072018504, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[10], 0.0023103887, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[11], 0.0024724449, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[19], 0.0031367359, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[20], 0.17439659, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[21], 0.06542316, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[42], 0.013304681, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[53], 0.0073520984, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[54], 0.013584172, 1e-4);
-  EXPECT_NEAR (shots352->points[103].descriptor[55], 0.0050609680, 1e-4);
-
-  // Test results when setIndices and/or setSearchSurface are used
-  boost::shared_ptr<vector<int> > test_indices (new vector<int> (0));
-  for (size_t i = 0; i < cloud.size (); i+=3)
-    test_indices->push_back (static_cast<int> (i));
-
-  //testSHOTIndicesAndSearchSurface<SHOTEstimationOMP<PointXYZ, Normal, SHOT>, PointXYZ, Normal, SHOT> (cloud.makeShared (), normals, test_indices);
-  //testSHOTLocalReferenceFrame<SHOTEstimationOMP<PointXYZ, Normal, SHOT>, PointXYZ, Normal, SHOT> (cloud.makeShared (), normals, test_indices);
-
-  testSHOTIndicesAndSearchSurface<SHOTEstimationOMP<PointXYZ, Normal, SHOT352>, PointXYZ, Normal, SHOT352> (cloud.makeShared (), normals, test_indices);
-  testSHOTLocalReferenceFrame<SHOTEstimationOMP<PointXYZ, Normal, SHOT352>, PointXYZ, Normal, SHOT352> (cloud.makeShared (), normals, test_indices);
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-TEST (PCL,SHOTShapeAndColorEstimationOpenMP)
-{
-  double mr = 0.002;
-  // Estimate normals first
-  NormalEstimation<PointXYZ, Normal> n;
-  PointCloud<Normal>::Ptr normals (new PointCloud<Normal> ());
-  // set parameters
-  n.setInputCloud (cloud.makeShared ());
-  boost::shared_ptr<vector<int> > indicesptr (new vector<int> (indices));
-  n.setIndices (indicesptr);
-  n.setSearchMethod (tree);
-  n.setRadiusSearch (20 * mr);
-  n.compute (*normals);
-
-  search::KdTree<PointXYZRGBA>::Ptr rgbaTree;
-
-  rgbaTree.reset (new search::KdTree<PointXYZRGBA> (false));
-
-  // Create fake point cloud with colors
-  PointCloud<PointXYZRGBA> cloudWithColors;
-  for (int i = 0; i < static_cast<int> (cloud.points.size ()); ++i)
-  {
-    PointXYZRGBA p;
-    p.x = cloud.points[i].x;
-    p.y = cloud.points[i].y;
-    p.z = cloud.points[i].z;
-
-    p.rgba = ( (i%255) << 16 ) + ( ( (255 - i ) %255) << 8) + ( ( i*37 ) %255);
-    cloudWithColors.push_back(p);
-  }
-
-/*
-  // Object
-  SHOTEstimationOMP<PointXYZRGBA, Normal, SHOT> shot (true, true, -1);
-  shot.setInputNormals (normals);
-
-  EXPECT_EQ (shot.getInputNormals (), normals);
-
-  shot.setRadiusSearch ( 20 * mr);
-
-  rgbaTree->setInputCloud (cloudWithColors.makeShared ());
-
-  PointCloud<SHOT>::Ptr shots (new PointCloud<SHOT> ());
-
-  shot.setInputCloud (cloudWithColors.makeShared ());
-  shot.setIndices (indicesptr);
-  shot.setSearchMethod (rgbaTree);
-
-  // estimate
-  shot.compute (*shots);
-  EXPECT_EQ (shots->points.size (), indices.size ());
-
-  EXPECT_NEAR (shots->points[103].descriptor[10], 0.0020453099, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[11], 0.0021887729, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[21], 0.062557608, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[42], 0.011778189, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[53], 0.0065085669, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[54], 0.012025614, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[55], 0.0044803056, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[64], 0.064429596, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[65], 0.046486385, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[86], 0.011518310, 1e-5);
-
-  EXPECT_NEAR (shots->points[103].descriptor[357], 0.0020453099, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[360], 0.0027993850, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[386], 0.045115642, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[387], 0.059068538, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[389], 0.0047547864, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[453], 0.0051176427, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[481], 0.0053625242, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[482], 0.012025614, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[511], 0.0057367259, 1e-5);
-  EXPECT_NEAR (shots->points[103].descriptor[512], 0.048357654, 1e-5);
-*/
-
-  // SHOT1344
-  SHOTColorEstimationOMP<PointXYZRGBA, Normal, SHOT1344> shot1344 (true, true);
-  shot1344.setInputNormals (normals);
-
-  EXPECT_EQ (shot1344.getInputNormals (), normals);
-
-  shot1344.setRadiusSearch ( 20 * mr);
-
-  PointCloud<SHOT1344>::Ptr shots1344 (new PointCloud<SHOT1344> ());
-
-  shot1344.setInputCloud (cloudWithColors.makeShared ());
-  shot1344.setIndices (indicesptr);
-  shot1344.setSearchMethod (rgbaTree);
-
-  // estimate
-  shot1344.compute (*shots1344);
-  EXPECT_EQ (shots1344->points.size (), indices.size ());
-
-  EXPECT_NEAR (shots1344->points[103].descriptor[10], 0.0020453099, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[11], 0.0021887729, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[21], 0.057930067, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[42], 0.011778189, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[53], 0.0065085669, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[54], 0.012025614, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[55], 0.0044803056, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[64], 0.0644530654, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[65], 0.0465045683, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[86], 0.011518310, 1e-5);
-
-  EXPECT_NEAR (shots1344->points[103].descriptor[357], 0.0020453099, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[360], 0.0027993850, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[386], 0.0451327376, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[387], 0.0544394031, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[389], 0.0047547864, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[453], 0.0051176427, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[481], 0.0053625242, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[482], 0.012025614, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[511], 0.0057367259, 1e-5);
-  EXPECT_NEAR (shots1344->points[103].descriptor[512], 0.048375979, 1e-5);
-
-  // Test results when setIndices and/or setSearchSurface are used
-  boost::shared_ptr<vector<int> > test_indices (new vector<int> (0));
-  for (size_t i = 0; i < cloud.size (); i+=3)
-    test_indices->push_back (static_cast<int> (i));
-
-  //testSHOTIndicesAndSearchSurface<SHOTEstimationOMP<PointXYZRGBA, Normal, SHOT>, PointXYZRGBA, Normal, SHOT> (cloudWithColors.makeShared (), normals, test_indices);
-  //testSHOTLocalReferenceFrame<SHOTEstimationOMP<PointXYZRGBA, Normal, SHOT>, PointXYZRGBA, Normal, SHOT> (cloudWithColors.makeShared (), normals, test_indices);
-
-  testSHOTIndicesAndSearchSurface<SHOTColorEstimationOMP<PointXYZRGBA, Normal, SHOT1344>, PointXYZRGBA, Normal, SHOT1344> (cloudWithColors.makeShared (), normals, test_indices);
-  testSHOTLocalReferenceFrame<SHOTColorEstimationOMP<PointXYZRGBA, Normal, SHOT1344>, PointXYZRGBA, Normal, SHOT1344> (cloudWithColors.makeShared (), normals, test_indices);
+  testSHOTIndicesAndSearchSurface<TypeParam, PointXYZRGBA, Normal, SHOT1344> (cloudWithColors.makeShared (), normals, test_indices);
+  testSHOTLocalReferenceFrame<TypeParam, PointXYZRGBA, Normal, SHOT1344> (cloudWithColors.makeShared (), normals, test_indices);
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
index afdddb35513d90b4649380527389c8c439744cb5..a0b881e9b4dd3605fb9100beb0692feca3ee2b5b 100644 (file)
@@ -3528,12 +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 < 9
-    int tu = vtkProperty::VTK_TEXTURE_UNIT_0 + 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
-    const char *tu = mesh.tex_materials[tex_id].tex_name.c_str ();
+    int tu = vtkProperty::VTK_TEXTURE_UNIT_0 + tex_id;
 #endif
-
     vtkSmartPointer<vtkTexture> texture = vtkSmartPointer<vtkTexture>::New ();
     if (textureFromTexMaterial (mesh.tex_materials[tex_id], texture))
     {
@@ -3561,10 +3560,10 @@ 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);
-
     mapper->MapDataArrayToMultiTextureAttribute(tu,
-                                                this_coordinates_name.c_str (),
-                                                vtkDataObject::FIELD_ASSOCIATION_POINTS);
+      this_coordinates_name.c_str(),
+      vtkDataObject::FIELD_ASSOCIATION_POINTS);
+    
     polydata->GetPointData ()->AddArray (coordinates);
     actor->GetProperty ()->SetTexture (tu, texture);
     ++tex_id;