All Versions
64
Latest Version
Avg Release Cycle
124 days
Latest Release
-

Changelog History
Page 1

  • v1.12.0 Changes

    PCL 1.12.0 enables custom index size and type, from int16_t to uint64_t, allowing ๐Ÿ‘‰ users to have as small or large clouds as they wish. 1.12 also comes with improved ๐Ÿ‘Œ support for VTK and CUDA, along with making existing functionality more user friendly.

    ๐ŸŽ This is all on top of the usual bug-fixes and performance improvements across the board

    Notable changes

    ๐Ÿ†• New features added to PCL

    • [sample_consensus] Add SIMD implementations to some countWithinDistance functions [#3519]
    • [io] Enable Real Sense 2 grabber for all platforms [#4471]
    • [visualization] add ellipsoid shape to pcl_visualizer [#4531]
    • [common] Add constexpr to static member functions for point types, add macro for if constexpr [#4735]
    • [ci] Use windows docker image in CI. [#4426]
    • [common] Add pcl log stream macros [#4595]

    ๐Ÿ—„ Deprecation of public APIs, scheduled to be removed after two minor releases

    • [common] Modify index type for vertices [#4256]
    • [gpu] Add square distances to GPU knnSearch API [#4322]
    • [gpu] Add square distances to ApproxNearestSearch [#4340]
    • ๐Ÿ—„ Deprecate unused ease-of-internal-use headers [#4367]
    • [registration] Deprecate TransformationEstimationDQ in favor of TransformationEstimationDualQuaternion [#4425]
    • [segmentation] Deprecate unused max_label in extractLabeledEuclideanClusters [#4105]
    • [surface] MLS: correct typo in principle by using principal instead [#4505]
    • ๐Ÿ—„ Deprecate unneeded meta-headers [#4628]
    • [apps][tracking] pyramidal klt: switch keypoints_status_ to int vector [#4681]
    • ๐Ÿšš Properly remove remaining items deprecated for version 1.12, deprecate uniform_sampling.h [#4688]
    • [recognition] Add deprecation for incorrectly installed headers [#4650]

    Removal of the public APIs deprecated in previous releases

    • โœ‚ Remove deprecated items as scheduled in preparation of v1.12 (except concatenatePointCloud) [#4341]
    • [apps] Remove unused code in persistence_utils.h [#4500]
    • ๐Ÿšš Properly remove remaining items deprecated for version 1.12, deprecate uniform_sampling.h [#4688]

    Behavior changes in classes, apps, or tools

    • [registration] Don't move, or copy ICP [#4167]
    • [common] Fix PointXYZRGBA ctor, set A as 255 by default [#4799]

    API changes that did not go through the proper deprecation and removal cycle

    • [common] modify index type for PCLImage [#4257]
    • [registration] Don't move, or copy ICP [#4167]
    • [kdtree] KdTree: handle 0 or negative k for nearestKSearch [#4430]
    • [common] Use std::array instead of C-array for ColorLUT [#4489]
    • [tracking] Use SFINAE instead of relying on macro PCL_TRACKING_NORMAL_SUPPORTED [#4643]
    • [gpu] Export and template extract clusters [#4196]
    • [common] Added namespace pcl to free functions: aligned_{malloc/free} [#4742]

    ABI changes that are still API compatible

    • [registration] Refactoring and Bugfix of NDT [#4180]
    • [common] modify index types for PCLPointCloud2 [#4199]
    • [common] Modify index type for vertices [#4256]
    • [common] Modify index type for PCLPointField [#4228]
    • [surface] Enabled multithreading in Poisson surface reconstruction [#4332]
    • [io] Allow file_io to read large point clouds depending on PCL config [#4331]
    • [sample_consensus] Allow user to apply arbitrary constraint on models in sample consensus [#4260]
    • [tracking] Use SFINAE instead of relying on macro PCL_TRACKING_NORMAL_SUPPORTED [#4643]
    • [features] Move the init of static variables to library load time [#4640]
    • [octree] Octree2BufBase: Fix bug that contents from previous buffer appear in current buffer [#4642]

    ๐Ÿ”„ Changes grouped by module

    CMake:

    • Update pcl_find_boost to allow compilation with Boost 1.74 [#4330]
    • Variable needs to be expanded when checking for EXT_DEPS [#4353]
    • Update pcl_find_cuda.cmake to contain all supported architectures [#4400]
    • โž• Add support for VTK 9 [#4262]
    • ๐Ÿ”จ Refactor cmake find script of libusb [#4483]
    • โž• Add AVX for windows [#4598]
    • โž• Add SSE definitions for SSE 4.1 and 4.2 [#4596]

    libpcl_common:

    • [ABI break] modify index types for PCLPointCloud2 [#4199]
    • [API break] modify index type for PCLImage [#4257]
    • ๐Ÿ—„ [ABI break][deprecation] Modify index type for vertices [#4256]
    • [ABI break] Modify index type for PCLPointField [#4228]
    • ๐Ÿ‘ Allow PCL_DEPRECATED to detect and help remove deprecations before release [#4336]
    • ๐Ÿ‘ Allow conversion of PointCloud with more than 32-bit size rows/columns [#4343]
    • ๐Ÿ‘Œ Improve routing for transformPointCloud [#4398]
    • Correct typo in transformPlane [#4396]
    • [API break] Use std::array instead of C-array for ColorLUT [#4489]
    • Set header in two toPCLPointCloud2 functions [#4538]
    • โž• Add more operators to PointCloud to prevent perf regression in refactoring [#4397]
    • ๐Ÿ‘‰ Make sure that organized point clouds are still organized after transformPointCloud [#4488]
    • [API break] Added namespace pcl to free functions: aligned_{malloc/free} [#4742]
    • [new feature] Add constexpr to static member functions for point types, add macro for if constexpr [#4735]
    • ๐Ÿ›  Fix PolygonMesh::concatenate and its unit test [#4745]
    • [behavior change] Fix PointXYZRGBA ctor, set A as 255 by default [#4799]
    • โœ‚ Remove pseudo-template-instantiations in eigen.h to reduce compilation time [#4788]
    • [new feature] Add pcl log stream macros [#4595]

    libpcl_features:

    • [ABI break] Move the init of static variables to library load time [#4640]
    • ๐Ÿ‘‰ Use correct cloud for checking finite-ness in fpfh [#4720]

    libpcl_filters:

    • ๐Ÿ‘Œ Improve performance of median filter by using nth_element [#4360]
    • ๐Ÿ›  Fix the covariance calculation as suggested by @zxd123 [#4466]
    • Filters: fix wrong initialization of covariance in VoxelGridCovariance [#4556]
    • ๐Ÿ›  Fix application of setMinimumPointsNumberPerVoxel for PCLPointCloud2 implementation of VoxelGrid [#4389]
    • โž• Adding tests for CropHull and using hull_cloud instead of input in getHullCloudRange [#3976]

    libpcl_gpu:

    • ๐Ÿ—„ [deprecation] Add square distances to GPU knnSearch API [#4322]
    • ๐Ÿ—„ [deprecation] Add square distances to ApproxNearestSearch [#4340]
    • [API break] Export and template extract clusters [#4196]
    • โšก๏ธ Update support for CUDA arch in CMake and convertSMVer2Cores [#4748]
    • โž• Add ability to download contiguous chunk of memory to host using Device{Array,Memory} [#4741]
    • Speeding up GPU clustering using smarter download strategy and memory allocations [#4677]

    libpcl_io:

    • [ABI break] Allow file_io to read large point clouds depending on PCL config [#4331]
    • ๐Ÿ‘Œ Improve PCD read performance (more than 50%) by reusing istringstream [#4339]
    • [new feature] Enable Real Sense 2 grabber for all platforms [#4471]
    • Throw error if the device bluffs about its capability [#4141]
    • ๐Ÿ›  Fix crash in Dinast Grabber due to bad initialization of device handle [#4484]
    • PLY face definition accepts uint fields as well [#4492]
    • Prevent segfault in vtk2mesh [#4581]
    • ๐Ÿ‘ป Prevent exception in PCDReader for misformed PCD files [#4566]
    • Enable arbitary size Indices for Octree module [#4350]
    • ๐Ÿ›  Fix addition of Carriage Return to PCD files. [#4727]
    • ๐Ÿ‘Œ Support Ensenso SDK 3.0 for ensenso_grabber [#4751]
    • Specify no face elements in PLY files (from point cloud) to make them interoperable with VTK [#4774]

    libpcl_kdtree:

    • [API break] KdTree: handle 0 or negative k for nearestKSearch [#4430]

    libpcl_ml:

    • ๐Ÿ›  Fix un-initialized centroids bug (k-means) [#4570]

    libpcl_octree:

    • Enable arbitary size Indices for Octree module [#4350]
    • ๐Ÿ›  Fix problems in octree search functions when using dynamic depth [#4657]
    • [ABI break] Octree2BufBase: Fix bug that contents from previous buffer appear in current buffer [#4642]

    libpcl_outofcore:

    • ๐Ÿ›  Fix compile issue due to missing include under MSVC 2019 [#4755]

    libpcl_recognition:

    • ๐Ÿ—„ [deprecation] Add deprecation for incorrectly installed headers [#4650]

    libpcl_registration:

    • [ABI break] Refactoring and Bugfix of NDT [#4180]
    • [API break][behavior change] Don't move, or copy ICP [#4167]
    • ๐Ÿ—„ [deprecation] Deprecate TransformationEstimationDQ in favor of TransformationEstimationDualQuaternion [#4425]
    • ๐Ÿ›  Fix force no recompute [#4535]
    • Skip non-finite points for Pyramid Feature Matching [#4711]

    libpcl_sample_consensus:

    • [ABI break] Allow user to apply arbitrary constraint on models in sample consensus [#4260]
    • ๐Ÿ‘Œ Improve logging errors during sample consensus model registration [#4381]
    • [new feature] Add SIMD implementations to some countWithinDistance functions [#3519]
    • Faster sample consensus functions [#4424]
    • ๐Ÿ›  Fix and improve MLESAC [#4575]
    • ๐Ÿ‘Œ Improve logging in module sample_consensus [#4261]

    libpcl_search:

    • Faster organized search [#4496]
    • โž• Add access to boxSearch [#4282]

    libpcl_segmentation:

    • ๐Ÿ—„ [deprecation] Deprecate unused max_label in extractLabeledEuclideanClusters [#4105]
    • ๐Ÿ›  Fix the dotproduct calculation in extractEuclideanClusters for smooth surfaces [#4162]
    • ๐Ÿ‘‰ Make euclidean clustering with normals faster [#4551]

    libpcl_surface:

    • [ABI break] Enabled multithreading in Poisson surface reconstruction [#4332]
    • โž• Add stdlib header for malloc in poisson (bugfix for gcc-5) [#4376]
    • โšก๏ธ Always update counter and prevent overflow access in poisson4 octree [#4316]
    • Add missing include to nurbs_solve_umfpack.cpp [#4571]
    • ๐Ÿ—„ [deprecation] MLS: correct typo in principle by using principal instead [#4505]

    libpcl_visualization:

    • โž• Add support for VTK 9 [#4262]
    • [new feature] add ellipsoid shape to pcl_visualizer [#4531]

    PCL Apps:

    • [removal] Remove unused code in persistence_utils.h [#4500]
    • ๐Ÿ—„ [deprecation] pyramidal klt: switch keypoints_status_ to int vector [#4681]

    ๐Ÿ“„ PCL Docs:

    • ๐Ÿ“š Update documentation to be coherent with the style guide [#4771]

    PCL Tutorials:

    • ๐Ÿšš Replace PassThrough with removeNaNFromPointCloud in 3 tutorials [#4760]

    PCL Tools:

    • ๐Ÿ›  Fix virtual scanner [#4730]

    CI:

    • ๐Ÿ Make windows build on c:\ drive to fix out-of-disk-space errors [#4382]
    • [new feature] Use windows docker image in CI. [#4426]
  • v1.11.1 Changes

    August 14, 2020

    ๐Ÿ›  Apart from the usual serving of bug-fixes and speed improvements, PCL 1.11.1 brings in ๐Ÿ‘ better support for CUDA, more uniform behavior in code as well as cmake, and an experimental feature: functor_filter.

    Notable changes

    ๐Ÿ†• New features added to PCL

    • [ci] Add support for CUDA in CI [#4101]
    • [common] Add always-unsigned index type uindex_t dependent on index_t [#4205]
    • [filters] Add a filter accepting a functor to reduce boiler plate code for simple filters [#3890]

    ๐Ÿ”„ Changes grouped by module

    CMake:

    • Update pcl_find_boost to allow compilation with Boost 1.73 and 1.72 [#4080]
    • ๐Ÿ›  Fix NSIS Template for NSIS3 [#4093]
    • โž• Add option to choose pcl::index_t while compiling [#4166]
    • ๐Ÿ›  Fix name warnings for PCAP, libusb and Ensenso. [#4182]
    • ๐Ÿ›  Fixes compile error on MSVC by disabling Whole Program Optimization [#4197]

    libpcl_common:

    • โœ‚ Remove use of dynamic allocation in GaussianKernel::convolve{Rows,Cols} [#4092]
    • Replace usage of std::vector<int> with Indices [#3989]
    • โšก๏ธ Update PointCloud to conform to requirements of ReversibleContainer [#3980]
    • [new feature] Add always-unsigned index type uindex_t dependent on index_t [#4205]
    • โž• Adding data member function to PointCloud [#4216]
    • Switch int to index_t for field index variables in pclBase, add pcl::UNAVAILABLE for same [#4211]
    • โž• Added resize with 2 arguments to PointCloud [#4225]
    • โž• Adding max_size to PointCloud [#4254]
    • ๐Ÿ‘Œ Support multiple arguments in pcl::utils::ignore() [#4269]

    libpcl_features:

    • ๐Ÿ›  Fix feature histogram constructor bug [#4234]
    • ๐Ÿ›  Fix regression in Organized Edge Detection (introduced in PCL 1.10.1) [#4311]

    libpcl_filters:

    • โฌ‡๏ธ reduce computations involved in iterating over the pointcloud for FastBilateral{OMP} [#4134]
    • [new feature] Add a filter accepting a functor to reduce boiler plate code for simple filters [#3890]
    • Refatoring VoxelGridCovariance to make it multi-thread safe (and more) [#4251]

    libpcl_gpu:

    • Replace volatile shared memory with shfl_sync in KNNSearch [#4306]
    • ๐Ÿ›  Fix octree radiusSearch [#4146]

    libpcl_io:

    • ๐Ÿ‘ Better conversion of depth data + focal length into X,Y,Z point data [#4128]
    • โž• Add iterator include for back_iterator to support VS2019 [#4319]

    libpcl_outofcore:

    • Fix compile issue in OutofcoreOctreeBase::setLODFilter after switching from boost::shared_ptr to std::shared_ptr [#4081]

    libpcl_registration:

    • ๐Ÿ›  Fix bug in NDT step interval convergence criteria [#4181]

    libpcl_segmentation:

    • Clean FLANN includes [#4025]
    • โšก๏ธ Update angle between 2 planes to be the smallest angle between them [#4161]

    libpcl_simulation:

    • Don't prefix in shaders. [#4209]

    libpcl_visualization:

    • ๐Ÿ›  Fix error: misplaced deprecation attributes in vtkVertexBufferObject{,Mapper} [#4079]

    ๐Ÿ“„ PCL Docs:

    • Fix typo in FPFH documentation, $$p_k$$ was used instead of $$p_i$$ [#4112]
    • ๐Ÿ›  Fix typos in PFH estimation tutorial [#4111]

    CI:

    • [new feature] Add support for CUDA in CI [#4101]
  • v1.11.1-rc2 Changes

    August 13, 2020

    ๐Ÿ›  PCL 1.11.1 brings in new bug fixes and improvements such as

    • Increasing coverage of index_t for allowing std::int64_t as indices
    • Increased conformance to std::vector API for PointCloud
    • Speed improvements, thread safety and a new flexible experimental filter

    ๐Ÿ—„ For an exhaustive list of newly added features, deprecations and other changes
    ๐Ÿ‘€ in PCL 1.11.1, please see CHANGES.md.

    โšก๏ธ PS: Link wouldn't work since CHANGES.md isn't updated

  • v1.11.1-rc1 Changes

    August 06, 2020

    ๐Ÿ›  PCL 1.11.1 brings in new bug fixes and improvements such as

    • Increasing coverage of index_t for allowing std::int64_t as indices
    • Increased conformance to std::vector API for PointCloud
    • Speed improvements, thread safety and a new flexible experimental filter

    ๐Ÿ—„ For an exhaustive list of newly added features, deprecations and other changes
    ๐Ÿ‘€ in PCL 1.11.1, please see CHANGES.md.

    โšก๏ธ PS: Link wouldn't work since CHANGES.md isn't updated

  • v1.11.0 Changes

    May 11, 2020

    Starting with PCL 1.11, PCL uses std::shared_ptr and std::weak_ptr instead of the boost smart pointers. The change leverages type aliases included with the 1.10.0 ๐Ÿš€ release. PCL 1.11 also introduces pcl::index_t which should be used for the size ๐Ÿ—„ of point types instead of int, std::size_t, etc. EOL for deprecated features ๐Ÿ—„ is also explicitly mentioned in the deprecation compile time warnings

    Notable changes

    ๐Ÿ†• New features added to PCL

    • [common] Provide dynamic and static pointer casts in namespace pcl to allow easy migration in future [#3770]
    • [common] Add ignore function to remove Doxygen warnings for unused arguments [#3942]
    • ๐Ÿ“„ [docs] Generate TODO list [#3937]
    • ๐Ÿ‘ฎ Force include order via clang-format [#3909]
    • ๐Ÿ”„ Change PCL smart pointers from boost to std [#3750]
    • [ci] Add pipeline for building PCL's environment docker image [#3843]

    ๐Ÿ—„ Deprecation of public APIs, scheduled to be removed after two minor releases

    • [common] Remove #undef Success in pcl_macros.h by extracting PCL_MAKE_ALIGNED_OPERATOR_NEW into memory.h [#3654]
    • [common] Rename point_traits.h into type_traits.h [#3698]
    • [filters] Deprecating functions in non-speclialized Passthrough filter [#3888]
    • [outofcore][registration] Homogenize deprecation with PCL_DEPRECATED [#3925]
    • [cmake][visualization] Deprecate legacy OpenGL backend of VTK [#4065]

    Removal of the public APIs deprecated in previous releases

    • [io][recognition][tools] Remove very old deprecated headers [#3906]
    • ๐Ÿ“„ [docs] Remove backup (and defunct) CMakeLists.txt [#3915]
    • Remove use of VTK_EXCLUDE_STRSTREAM_HEADERS (unavailable since VTK 6.0.0) [#3939]

    Behavior changes in classes, apps, or tools

    • [io] Make grabbers move-only using unique_ptr [#3626]

    API changes that did not go through the proper deprecation and removal cycle

    • [io] Make grabbers move-only using unique_ptr [#3626]
    • [common] Add pcl::index_t; move some type declarations from pcl/pcl_macros.h to pcl/types.h [#3651]
    • [filters] Clean up Filter and FilterIndices, move indices_/input_ from public to protected section [#3726]
    • [registration] Better Generalized ICP optimizer gradient check management [#3854]
    • ๐Ÿ”„ Change PCL smart pointers from boost to std [#3750]
    • [registration] Removing deprecated method setInputCloud from public API [#4026]

    ABI changes that are still API compatible

    • [filters] NormalSpaceSampling - fix bucket assignment, remove use of raw distribution pointer, unit-test rewriting [#3862]
    • [io] Add pcl::weak_ptr to have a single-switch move from boost:: to std:: weak pointers [#3753]

    ๐Ÿ”„ Changes grouped by module

    CMake:

    • โž• Add a stamp file to build documentation once [#3819]
    • ๐Ÿ›  Fix compilation in OSX Catalina with OMP enabled [#3721]
    • 0๏ธโƒฃ Show proper message in CMake config for default-off modules [#3927]
    • ๐Ÿ—„ [deprecation] Deprecate legacy OpenGL backend of VTK [#4065]

    libpcl_2d:

    • variable assigned a value which is never used [#3857]
    • ๐Ÿ›  Fix issue with missing templating of Keypoint. Fixes coming from clang-doxy [#3898]

    libpcl_common:

    • ๐Ÿ—„ [deprecation] Remove #undef Success in pcl_macros.h by extracting PCL_MAKE_ALIGNED_OPERATOR_NEW into memory.h [#3654]
    • ๐Ÿ›  Fix issues with math defines on mingw-w64. [#3756]
    • [API break] Add pcl::index_t; move some type declarations from pcl/pcl_macros.h to pcl/types.h [#3651]
    • ๐Ÿ—„ [deprecation] Rename point_traits.h into type_traits.h [#3698]
    • ๐Ÿ‘Œ Improve PCL_DEPRECATED macro to include scheduled removal version [#3808]
    • ๐Ÿ›  Fix erroneous PCL version in deprecated message [#3824]
    • Select OpenMP data sharing mode based on specific GCC versions [#3823]
    • Define PointIndices based on the global Indices type alias [#3822]
    • ๐Ÿ›  Fix warning C4067: unexpected tokens following preprocessor directive- expected a newline [#3871]
    • [new feature] Provide dynamic and static pointer casts in namespace pcl to allow easy migration in future [#3770]
    • [new feature] Add ignore function to remove Doxygen warnings for unused arguments [#3942]
    • ๐Ÿ›  Fix excessive warnings on MSVC [#3964]
    • ๐Ÿ”จ Refactoring PCL_DEPRECATED macro [#3945]
    • Correcting type mismatch [#3967]
    • โœ‚ Removed empty file [#4019]

    libpcl_filters:

    • Clean up code duplication in FilterIndices derived classes [#3807]
    • [API break] Clean up Filter and FilterIndices, move indices_/input_ from public to protected section [#3726]
    • ๐Ÿ—„ [deprecation] Deprecating functions in non-speclialized Passthrough filter [#3888]
    • [ABI break] NormalSpaceSampling - fix bucket assignment, remove use of raw distribution pointer, unit-test rewriting [#3862]
    • โšก๏ธ Optimize VoxelGrid Filter [#3853]
    • ๐Ÿ›  Fix error due to multiple declarations of template member function specializations in convolution [#3971]

    libpcl_io:

    • [ABI break][API break][behavior change] Make grabbers move-only using unique_ptr [#3626]
    • [removal] Remove very old deprecated headers [#3906]
    • [ABI break] Add pcl::weak_ptr to have a single-switch move from boost:: to std:: weak pointers [#3753]
    • ๐Ÿ‘‰ Use pcl::io::raw_read instead of direct call to POSIX function read [#4062]

    libpcl_octree:

    • ๐Ÿ›  Fix a memory leak in OctreeBase::operator= [#3787]

    libpcl_outofcore:

    • ๐Ÿ—„ [deprecation] Homogenize deprecation with PCL_DEPRECATED [#3925]

    libpcl_people:

    • ๐Ÿ Missing include on windows [#3791]

    libpcl_recognition:

    • [removal] Remove very old deprecated headers [#3906]

    libpcl_registration:

    • [API break] Better Generalized ICP optimizer gradient check management [#3854]
    • ๐Ÿ—„ [deprecation] Homogenize deprecation with PCL_DEPRECATED [#3925]
    • [API break] Removing deprecated method setInputCloud from public API [#4026]

    libpcl_sample_consensus:

    • ๐Ÿ‘ Better performance, error handling and other improvements in SAC classes [#3642]
    • ๐Ÿ‘‰ Use better types for indices: int -> index_t, std::vector<int> ->Indices [#3835]

    libpcl_search:

    • ๐Ÿ‘‰ Use better types for indices: int -> index_t, std::vector<int> ->Indices [#3840]
    • โž• Add include for pcl::isFinite for compilation on VS2019 [#4056]

    libpcl_segmentation:

    • Check and warn user about missing normals in OrganizedMultiPlaneSegmentation [#3861]

    libpcl_surface:

    • ๐Ÿ›  Fix error due to multiple declarations of template member function specializations in Poisson4 [#3972]
    • โฌ‡๏ธ Reduce time taken in TextureMapping::sortFacesByCamera from O(faces*points) to O(faces) [#3981]

    libpcl_visualization:

    • Minor fix for converting unorganized PointClouds to VTK data [#3988]
    • ๐Ÿ›  Fixes #4001 and #3452. [#4017]
    • ๐Ÿ—„ [deprecation] Deprecate legacy OpenGL backend of VTK [#4065]
    • ๐Ÿ›  Fix rendering of points. [#4067]

    ๐Ÿ“„ PCL Docs:

    • ๐Ÿ›  Fix Doxygen warnings unrelated to documentation -- Part 1 [#3701]
    • โšก๏ธ update automatic code formatting info to clang-format [#3845]
    • replace formula with math [#3846]
    • ๐Ÿ›  Fix PCL_DEPRECATED usage in doxygen for a proper Deprecation List in documentation [#3905]
    • [removal] Remove backup (and defunct) CMakeLists.txt [#3915]
    • [new feature] Generate TODO list [#3937]
    • ๐Ÿ‘Œ Improve output to match the text in tutorial by adding a newline [#4029]
    • ๐Ÿ›  Fix typo in region growing tutorial [#4052]
    • โž• Add information regarding header include order [#4020]

    PCL Tutorials:

    • โž• Add a unit test for ICP and modernize tutorial code [#3628]

    PCL Examples:

    • โœ‚ Remove unnecessary includes in examples [#4071]

    PCL Tools:

    • [removal] Remove very old deprecated headers [#3906]

    CI:

    • โœ… Temporary fix for skipping of certain tests [#3789]
    • ๐Ÿ‘ท Simplify Ubuntu CI using matrix strategy [#3783]
    • Strip leading tag in commit message from changelog [#3847]
    • Shift to clang-format-10 to resolve bug in clang-format-{7-9} [#3895]
    • [new feature] Add pipeline for building PCL's environment docker image [#3843]
    • ๐Ÿ‘Œ Improve docker ci for other PRs [#4051]
    • โœ‚ Remove unused variables from exceptions [#4064]
    • ๐Ÿ‘ท Removing hardcoded version number from tutorial CI [#4058]
  • v1.10.1 Changes

    March 19, 2020

    Notable changes

    ๐Ÿ—„ Deprecation of public APIs, scheduled to be removed after two minor releases

    • [common] Deprecate several PointWithViewpoint ctors; make ctors more uniform in PCL point types [#3597]

    Removal of the public APIs deprecated in previous releases

    • [common] Remove deprecated checks for USE_ROS macro [#3690]

    Behavior changes in classes, apps, or tools

    • [tools] Continue on PCD load failure in pcl_train_linemod_template [#3652]

    ๐Ÿ”„ Changes grouped by module

    CMake:

    • ๐Ÿ›  Fix CMake grouping of tools targets [#3709]
    • Enable PCL_ONLY_CORE_POINT_TYPES in mingw builds [#3694]
    • โฌ‡๏ธ Downgrade RSSDK2 warning message to status [#3683]
    • ๐Ÿ›  Fix test targets arguments for MSVC [#3636]
    • โœ‚ Remove duplicate /bigobj for MSVC [#3604]

    libpcl_common:

    • Better PointType ctor and reduced warnings in register_point_struct.h [#3732]
    • [removal] Remove deprecated checks for USE_ROS macro [#3690]
    • Replace dirent with boost::filesystem [#3676]
    • ๐Ÿ›  Fix code accidentally casting away const-ness [#3648]
    • ๐Ÿ›  Fix compilation of CUDA code on Windows [#3634]
    • โœ‚ Remove undefined behavior and add stricter checks in console arg parsing [#3613]
    • ๐Ÿ—„ [deprecation] Deprecate several PointWithViewpoint ctors; make ctors more uniform in PCL point types [#3597]

    libpcl_cuda:

    • ๐Ÿ›  Fix memory leaks in CUDA apps [#3587]
    • ๐Ÿ›  Fix compilation of CUDA/GPU modules [#3576]

    libpcl_features:

    • โž• Add precompiled computeApproximateCovariances; fix compilation error for the same [#3711]
    • ๐Ÿ›  Fix vector initialization in NormalEstimationOMP [#3614]
    • ๐Ÿ›  Fix indexing bug in IntegralImageNormalEstimation [#3574]

    libpcl_filters:

    • ๐Ÿšš Set is_dense based on actual cloud contents in removeNaNNormalsFromPointCloud() [#3685]

    libpcl_gpu:

    • ๐Ÿ›  Fix compile error in KinFuLS initRegistration [#3737]
    • ๐Ÿ›  Fix illegal memory acces in CUDA Octree builder [#3627]
    • ๐Ÿ›  Fix compile issue in people_app [#3618]
    • ๐Ÿ›  Fix compilation of CUDA/GPU modules [#3576]

    libpcl_io:

    • ๐Ÿ›  Fix if/ifdef WIN32 issues [#3668]
    • โž• Add Grabber::toggle() method [#3615]
    • Close the correct file in pcl::io::savePLYFileBinary [#3601]
    • ๐Ÿ›  Fix entropy range encoding in octree-based pointcloud compression [#3579]

    libpcl_surface:

    • โž• Add default initialization of grid resolution in MarchingCubes [#3718]

    PCL Apps:

    • ๐Ÿ›  Fix if/ifdef WIN32 issues [#3668]

    ๐Ÿ“„ PCL Docs:

    • ๐Ÿ›  Fix missing standard includes, reduce warnings in doxygen-enabled builds [#3755]

    PCL Tutorials:

    • ๐Ÿ›  Fix documentation for point cloud stream compression executable name [#3693]
    • ๐Ÿ›  Fix segfault in NARF keypoint extraction tutorial [#3623]

    PCL Tools:

    • ๐Ÿ‘‰ Use linemod member method to save templates [#3691]
    • [behavior change] Continue on PCD load failure in pcl_train_linemod_template [#3652]
    • Warn user about unorganized PCDs in pcl_train_linemod_template [#3644]
  • v1.10.0 Changes

    January 19, 2020

    ๐Ÿš€ Starting with PCL 1.10, to ensure compatibility with future PCL releases, please ๐Ÿ‘‰ use pcl::make_shared and the Class::Ptr + Class::ConstPtr type-alias instead of using direct names like {boost, std}::shared_ptr or {boost, std}::make_shared. There is also pcl::shared_ptr which offers the same abstraction for non-PCL types.

    New Features:

    ๐Ÿ†• Newly added functionalities.

    • [sample_consensus] Add parallel RANSAC implementation with OpenMP [#3514]
    • [registration] Add linear least squares version of symmetric objective function for ICP [#3390]
    • [common] Add concatenate operation for PolygonMesh [#3316]
    • [common] Add emplace[_back] to pcl::PointCloud [#3207]
    • [cmake] Add format compilation target that applies clang-format to whitelisted modules [#3188]
    • [common] Add pcl::make_shared that automatically handles aligned allocations [#3163]
    • [modernization][cmake] Enable C++ 14 flags [#2690]
    • [io] Add RSSDK 2.0 (librealsense2) grabber [#2214]

    ๐Ÿ—„ Deprecated:

    ๐Ÿš€ Deprecated code scheduled to be removed after two minor releases.

    • [common] Revert smart pointer type change in PointCloud and deprecate getMapping() [#3563]
    • [common] Deprecate getFields() with output parameter in favor of overload with return value [#3401]
    • [recognition] Refactor MaskMap and deprecate several of its methods [#3399]
    • [common] Deprecate getFieldIndex()/getFields() with first argument as cloud [#3365]
    • [common] Add PCLPointCloud2::operator+=() and update concatenation operation [#3320]
    • [segmentation] Delete unused params in OrganizedMultiPlaneSegmentation::refine() [#3302]
    • [visualization] Add new overload of PointCloudColorHandler::getColor() [#3187]
    • [modernization][io] Add registerCallback() overload to grabbers to support assignment of boost::functions with templated signatures [#3128]
    • [surface] Convert MovingLeastSquaresOMP into an alias template and deprecate [#3119]
    • [kdtree] Remove unnecessary FLANN includes, deprecate "kdtree/flann.h" header [#2993]
    • [features] Deprecate computeRSD() functions that take pointclouds by pointer [#2827]
    • [modernization] Deprecate pcl_isnan, pcl_isfinite, and pcl_isinf in favor of std methods [#2798, #3457]
    • [filters] Restructure and add functionality to filters templated on PCLPointCloud2 [#3483, #3500]

    ๐Ÿšš Removed:

    ๐Ÿ—„ Removal of deprecated code.

    • [segmentation] Remove SupervoxelClustering::getColoredVoxelCloud() [#3469]
    • [io] Remove FZ-API [#2747]

    Behavioral changes:

    ๐Ÿ”„ Changes in the expected default behavior.

    • [sample_consensus] Set default min and max angle for SAC cone models [#3466]
    • [tools] Do not discard data fields in pcl_uniform_sampling tool [#3461]
    • [common] Disable colored output for non-interactive terminals [#3310]
    • [io] Add support for device URI in OpenNI2Grabber constructor [#3238]
    • [common] Enforce right-hand-rule on PCA eigenvectors [#2946]
    • [visualization] Improve c/C command in PCLVisualizer [#2926]
    • [registration] Fix ICP misbehavior in the "failure after maximum iterations" mode [#2892]
    • [common] Initialize curvature in PointNormal default constructor [#2674]

    API changes:

    ๐Ÿ”„ Changes to the API which didn't go through the proper deprecation and removal cycle.

    • [gpu] Replace uint64_type by std::uint64_t [#3435]
    • [modernization] Migrate from boost::tuple to std::tuple [#3250]
    • [modernization] Migrate boost::function to std::function [#3079]

    ABI changes:

    ๐Ÿ”„ Changes that cause ABI incompatibility but are still API compatible.

    • [modernization] Migrate from boost::unordered_map to std::unordered_map [#3107]
    • [modernization] Migrate to standard library type traits [#3105]
    • [visualization] Minor refactoring of pcl::visualization::Camera and related functions [#2901]
    • [modernization] Migrate from boost::thread to std::thread [#3060, #3094]
    • [modernization] Prefer using Ptr typedefs and migrate to std smart pointers in non-API code [#2804, #2821, #2823, #2929, #3061, #3141, #3142, #3217, #3474, #3482, #3486, #3489, #3497]
    • [modernization] Migrate to std random number generators [#2956, #2962, #3069]
    • [filters] Restructure and add functionality to filters templated on PCLPointCloud2 [#3483, #3500]

    Migration to C++14 and code modernization:

    Modules:

    CMake:

    • Set compile features on imported PCL targets [#3567]
    • Create CMake imported targets for header-only modules [#3495]
    • โš  Add PCL_WARNINGS_ARE_ERRORS CMake option and enable it in Ubuntu 16.04 CI job [#3478]
    • Avoid using VERSION_GREATER_EQUAL to preserve compatibility with CMake 3.5 [#3460]
    • โœ‚ Remove policy push/pop from "PCLConfig.cmake" file [#3431]
    • ๐Ÿ›  Fix link-type keywords in linked libraries in "PCLConfig.cmake" with CMake >= 3.11 [#3341]
    • โšก๏ธ Update prefix hints in GTest finder script [#3331]
    • ๐Ÿšš PCL All-in-one Installer: add process to add/remove VTK path [#3322]
    • โž• Add surface module to the list of dependencies of examples [#3295]
    • โž• Add missing install rule for "2d/kernel.hpp" header [#3278]
    • [new-feature] Add format compilation target that applies clang-format to whitelisted modules [#3188]
    • ๐Ÿ‘‰ Use COMPONENTS when finding VTK to avoid linking agains unnecessary modules [#3140]
    • โž• Add thread library of the system by Threads::Threads instead of via -pthread flag [#3102]
    • ๐Ÿ“ฆ Fix find_package_handle_standard_args incorrect argument in GTest finder script [#3098]
    • ๐Ÿ›  Fix compound target's target registration [#3090]
    • Set CMP0072 to NEW to prefer GLVND over legacy OpenGL modules [#3066]
    • โž• Improve parsing of BUNDLE option in PCL_ADD_EXECUTABLE [#3064]
    • ๐Ÿš€ Change debug/release targets postfix on Windows [#3055]
    • โž• Add version info on Windows for DLLs/Exe [#3054]
    • Modernize some CMake macros (Increases minimum required CMake version to 3.5) [#3044]
    • โž• Add newer Boost versions to Boost_ADDITIONAL_VERSIONS [#3003]
    • ๐Ÿ‘‰ Refactor PCL_MAKE_PKGCONFIG [#2894]
    • โฌ†๏ธ Bump Eigen minimum version to 3.1 [#2893]
    • ๐Ÿ‘Œ Improve compatibility with latest VTK [#2885]
    • PCL All-in-one Installer: add quiet flag to msiexec installs [#2873]
    • ๐Ÿ‘‰ Use -mtune instead of -march on non-x86 CPUs [#2868]
    • Prevent adding /MP flag for MSVC in case any other language than C/CXX will be used (e.g. CUDA) [#2862]
    • โž• Add support for Visual Studio 2019 [#2826]
    • โฌ‡๏ธ Drop MSVC 2013 (and below) support [#2817]
    • โฌ‡๏ธ Drop GCC 4 support [#2760]
    • Mark include directories of 3rd-party libraries as system includes [#2733]
    • ๐Ÿ›  Fix Qt5 CMake issue [#2719]
    • โฌ‡๏ธ Reduce unnecessary nesting in "CMakeLists.txt" [#2718]
    • โฌ‡๏ธ Drop Qt4 support [#2716]
    • Remove unnecessary VTK_INCLUDE_DIRECTORIES [#2713]
    • โž• Add MSVC_MP CMake option to adjust number of parallel build jobs [#2705]
    • Set interface compile features to cxx_std_14 on PCL targets [#2697]
    • Reorganize and beautify project generation for IDEs [#2691]
    • [new-feature] Enable C++ 14 flags [#2690]
    • โœ‚ Remove vendored "FindGLEW.cmake" and adopt imported targets; rename "FindGTest.cmake" to prevent name clash [#2679]
    • โž• Add compound CMake targets for examples, tools, and apps [#2673]
    • Set CMake policy CMP0074 to NEW [#2671]
    • โœ‚ Remove conditional code for no longer supported versions of CMake [#2667]
    • ๐Ÿ—„ Raise minimum required Boost version to 1.55; fix deprecated Boost endians [#2801]
    • Modernize FLANN finder script [#2740, #2861, #2905, #2910, #3157, #3202, #3220, #3317]

    libpcl_2d:

    • ๐Ÿ›  Fix EIGEN_ALIGN16 positionining for point type XYZHSV [#3237]

    libpcl_common:

    • ๐Ÿ—„ [deprecation] Revert smart pointer type change in PointCloud and deprecate getMapping() [#3563]
    • Define RangeImage destructor as virtual [#3477]
    • ๐Ÿ”จ Refactor pcl::eigen33() to reduce potential errors (and remove bug) [#3441]
    • ๐Ÿ‘‰ Use generic detection idiom in isFinite() [#3402]
    • ๐Ÿ—„ [deprecation] Deprecate getFields() with output parameter in favor of overload with return value [#3401]
    • ๐Ÿ”จ Refactor polynomial calculations and remove memory leak [#3392]
    • โœ‚ Removes deprecated usage of getFields(cloud, fields) [#3374]
    • ๐Ÿ—„ [deprecation] Deprecate getFieldIndex()/getFields() with first argument as cloud [#3365]
    • โœ‚ Remove vector.reserve() from hot path in cloud concatenation [#3361]
    • ๐Ÿ—„ [deprecation] Add PCLPointCloud2::operator+=() and update concatenation operation [#3320]
    • [new-feature] Add concatenate operation for PolygonMesh [#3316]
    • Simplify the resize logic in PCLBase [#3315]
    • [behavior] Disable colored output for non-interactive terminals [#3310]
    • [new-feature] Add emplace[_back] to pcl::PointCloud [#3207]
    • [new-feature] Add pcl::make_shared that automatically handles aligned allocations [#3163]
    • [behavior] Enforce right-hand-rule on PCA eigenvectors [#2946]
    • ๐Ÿ›  Fix a bug in CentroidPoint [#2875]
    • [behavior] Initialize curvature in PointNormal default constructor [#2674]

    libpcl_cuda:

    • โœ‚ Remove code for CUDA below 7.5, update version checks [#3152]
    • โž• Add missing include to support CUDA 10.1 [#2883]
    • โฌ‡๏ธ Drop CUDA 7.0 (and below) support [#2736]

    libpcl_features:

    • ๐Ÿ›  Fix numerical issue in GASD estimation [#3498]
    • ๐Ÿ—„ [deprecation] Deprecate computeRSD() functions that take pointclouds by pointer [#2827]
    • ๐Ÿ›  Fix data race in NormalEstimationOMP on Windows [#2770]

    libpcl_filters:

    • ๐Ÿ”€ Merge pull request #3540 from facontidavide/fix_filter [#3540]
    • ๐Ÿ›  Fix incorrect switch fallthrough in convolution operator [#3429]
    • ๐Ÿ‘‰ Use size_t for address computation in CropBox filter [#3418]
    • ๐Ÿšš Fix a bug in removed index extraction in UniformSampling [#3323]
    • ๐Ÿ›  Fix CropBox with indices; add new assertions for unit tests [#3306]
    • ๐Ÿ›  Use fixed-size Eigen block expressions in FrustumCulling [#2786]
    • ๐Ÿ—„ [abi][deprecation] Restructure and add functionality to filters templated on PCLPointCloud2 [#3483, #3500]

    libpcl_gpu:

    • ๐Ÿ›  Fix building of KinFu Large Scale app with Visual Studio [#3504]
    • [api] Replace uint64_type by std::uint64_t [#3435]
    • โž• Add OpenNI2 support to kinfu_largescale tool [#3391]
    • ๐Ÿ‘‰ Use constexpr in KinFu and KinFu large scale apps [#3386]
    • โœ‚ Remove duplicated and unused "cutil_math.h" [#3264]
    • Drop unnecessary CUDA_ARCH checks [#3154]
    • โœ‚ Remove code for CUDA below 7.5, update version checks [#3152]
    • โœ‚ Remove unused timer routines in "NCV.cu" [#3135]
    • โž• Add sync variants to CUDA vote functions to support PTX/ARCH >= 7.0 [#2981]
    • Fix -debug option parsing in people_pcd_prob tool [#2656]

    libpcl_io:

    • ๐Ÿ“œ Make PLY parser more tolerant towards files not adhering to standard [#3542]
    • ๐Ÿ›  Fix a bug in binary header generation for PCD files [#3522]
    • [behavior] Add support for device URI in OpenNI2Grabber constructor [#3238]
    • Include "pcl_config.h" before checking HAVE_OPENNI2 [#3191]
    • ๐Ÿ–จ Print descriptive error if PLY file not found [#3143]
    • ๐Ÿ—„ [deprecation] Add registerCallback() overload to grabbers to support assignment of boost::functions with templated signatures [#3128]
    • ๐Ÿ›  Fix preallocation of memory in PLY reader [#2800]
    • ๐Ÿ›  Fix possible integer overflow while iterating PointCloud fields [#2754]
    • [removal] Remove FZ-API [#2747]
    • ๐Ÿ‘Œ Improve loading of massive PLY files [#2715]
    • [new-feature] Add RSSDK 2.0 (librealsense2) grabber [#2214]
    • ๐Ÿ›  Fix callback signatures in some grabbers [#3216, #3225]

    libpcl_kdtree:

    • ๐Ÿ—„ [deprecation] Remove unnecessary FLANN includes, deprecate "kdtree/flann.h" header [#2993]

    libpcl_keypoints:

    • โœ‚ Removed all duplicated branches in AgastKeypoint2D [#2657]

    libpcl_recognition:

    • ๐Ÿ‘‰ Use range-based for loops with boost::filesystem::directory_iterator [#3432]
    • ๐Ÿ—„ [deprecation] Refactor MaskMap and deprecate several of its methods [#3399]
    • โž• Add missing include in "trimmed_icp.h" [#3286]
    • ๐Ÿ‘‰ Use I/O helper method in pcl::LineRGBD [#2796]

    libpcl_registration:

    • ๐Ÿ‘‰ Make Registration::hasConverged() const-qualified [#3456]
    • ๐Ÿ›  Fix debug message by reordering statements in GICP [#3398]
    • [new-feature] Add linear least squares version of symmetric objective function for ICP [#3390]
    • ๐Ÿ›  Fix the OpenMP errors/warnings in "ia_fpcs.hpp" [#3389]
    • ๐Ÿ›  Fix pcl::Registration::getFitnessScore() documentation [#3082]
    • [behavior] Fix ICP misbehavior in the "failure after maximum iterations" mode [#2892]

    libpcl_sample_consensus:

    • [new-feature] Add parallel RANSAC implementation with OpenMP [#3514]
    • [behavior] Set default min and max angle for SAC cone models [#3466]
    • โž• Add const qualifier to multiple methods in SAC module [#2970]
    • ๐Ÿ›  Fix regression in pcl::SACSegmentation line fitting [#2767]

    libpcl_segmentation:

    • [removal] Remove SupervoxelClustering::getColoredVoxelCloud() [#3469]
    • ๐Ÿ—„ [deprecation] Delete unused params in OrganizedMultiPlaneSegmentation::refine() [#3302]
    • โž• Add noexcept for boost::checked_delete<> friend [#2942]
    • ๐Ÿ›  Fix SupervoxelClustering compilation problem in MSVC 2015.3 [#2867]

    libpcl_simulation:

    • Fix bug in SimExample::write_depth_image_uint trigerring -Wtype-limits warning [#3430]

    libpcl_stereo:

    • ๐Ÿ”€ Merge pull request #3566 from kunaltyagi/stereo [#3566]

    libpcl_surface:

    • ๐Ÿ›  Fix undefined behaviour in OctNode [#3561]
    • ๐Ÿ›  Fix memory leak in TextureMapping [#3549]
    • Prevent memset for empty vector in 3rdparty/poisson4 [#3537]
    • โœ‚ Remove incorrect tree update in MarchingCubes [#3240]
    • ๐Ÿ—„ [deprecation] Convert MovingLeastSquaresOMP into an alias template and deprecate [#3119]
    • ๐Ÿ›  Fix a bug in ConvexHull when indices are used [#2999]
    • โœ… Include "pcl_config.h" before testing HAVE_QHULL [#2979]
    • Throw exceptions instead of exit(0) in Poisson surface reconstruction [#2891]
    • Add check for invalid plane coefficients in MovingLeastSquares [#2805]
    • ๐Ÿ›  Fix the size of the lookup table in BilateralUpsampling [#2749]
    • Replace hash_map with unordered_map in 3rdparty/poisson4 [#2640]

    libpcl_visualization:

    • โž• Add a flag to disable window autoresizing in ImageViewer [#3394]
    • ๐Ÿ—„ [deprecation] Add new overload of PointCloudColorHandler::getColor() [#3187]
    • [behavior] Improve c/C command in PCLVisualizer [#2926]
    • โš  Disable VTK warning display with OpenGL rendering backend [#2912]
    • [abi] Minor refactoring of pcl::visualization::Camera and related functions [#2901]
    • ๐Ÿ›  Fix a bug in PCLVisualizer::setShapeRenderingProperties() [#2900]
    • ๐Ÿ›  Fix possible integer overflow while iterating PointCloud fields [#2754]
    • Raise minimum VTK version to 6.2 [#2685]

    PCL Apps:

    • ๐Ÿ›  Fix memory leaks in OpenNI apps [#3553]
    • ๐Ÿ‘‰ Use range-based for loops with boost::filesystem::directory_iterator [#3432]
    • Do not use deprecated function in stereo_ground_segmentation [#3406]
    • โž• Add missing std::move or const reference for parameters [#3232]
    • Remove magic numbers from organized_segmentation_demo app [#3108]
    • Add missing include render_views_tesselated_sphere app [#2909]
    • โœ‚ Remove Qt version checks [#2762]
    • Cleanup Qt includes in Modeler app [#2756]
    • Cleanup Qt includes in CloudComposer app [#2744]
    • ๐Ÿ›  Fix MSVC compile issues in CloudComposer app [#2712]
    • ๐Ÿ›  Fix Modeler app with OpenGL2 rendering backend [#2653]

    ๐Ÿ“„ PCL Docs:

    • ๐Ÿ›  Fix and improve documentation in sample_consensus module [#3301]
    • ๐Ÿ›  Fix pcl::Registration::getFitnessScore() documentation [#3082]
    • ๐Ÿ›  Fix source file name path stripping in Doxygen [#2714]

    PCL Tutorials:

    • ๐Ÿ›  Fix "CMakeLists.txt" in VFH tutorial [#3449]
    • โšก๏ธ Update information about types with RGBA data in tutorial [#3294]
    • โž• Add a note about adjusting passthrough limits in template alignment tutorial [#3193]
    • โž• Add missing shell command in "Building PCL" tutorial [#2996]
    • ๐Ÿ›  Fix cube rendering properties in "Moment of Inertia" tutorial [#2880]
    • Migrate from boost::math::iround to std::lround [#2818]
    • Link with PCL_LIBRARIES, not PCL_***_LIBRARIES [#2799]

    โœ… PCL Tests:

    • ๐Ÿšš Move OMP version of MovingLeastSquares into a separate test case [#3382]
    • ๐Ÿ›  Fix CropBox with indices; add new assertions for unit tests [#3306]
    • ๐Ÿ“ฆ Fix find_package_handle_standard_args incorrect argument in GTest finder script [#3098]
    • โœ… Do not test buffers instantiated with char template argument [#2980]
    • ๐Ÿ‘‰ Remove GTEST_USE_OWN_TR1_TUPLE defines [#2828]
    • โž• Add a new test for SampleConsensusModelLine [#2768]
    • โœ… Split test_registration into three binaries [#2727]

    PCL Tools:

    • [behavior] Do not discard data fields in pcl_uniform_sampling tool [#3461]
    • โž• Add missing includes in ensenso_viewer.cpp [#3035]
    • Do not terminate openni_viewer/openni2_viewer if image viewer was not instantiated [#2698]

    CI:

    • โš  Add PCL_WARNINGS_ARE_ERRORS CMake option and enable it in Ubuntu 16.04 CI job [#3478]
    • โž• Add a new Azure pipeline for Ubuntu 19.10 [#3446]
    • โž• Add formatting job on CI [#3420]
    • โž• Add Dockerfiles for images used on CI [#3350]
    • โœ… Publish test results on Azure pipelines [#2948]
    • ๐Ÿ— Build tutorials on Azure Pipelines [#2696]
  • v1.9.1 Changes

    November 26, 2018

    = 1.9.1 (26.11.2018) =

    Modules:

    Uncategorized:

    • โž• Add missing visualization section from the changelog generation. [#2634]

    CMake:

    • ๐Ÿ›  Fix development version check on DISSECT_VERSION. [#2633]
    • โœ‚ Remove CMake policy CMP0054 setting. [#2627]
    • PCLConfig.cmake - POP policy-stack before return() [#2626]
    • โœ‚ Remove CMake config installation folder only when empty [#2622]
    • โฌ‡๏ธ Downgrade grabber dependency message level to STATUS. [#2620]
    • Migrate CMake policy 0048 [#2608]
    • โฌ†๏ธ Bump CMake minimum version to 3.1. [#2605]
    • โฌ†๏ธ Bump version to 1.9.0-dev [#2602]
    • Search in $EIGEN_ROOT first while looking for Eigen [#2592]

    libpcl_visualization:

    • โž• address conflict between visualization and VTK head [#2612]

    PCL Tutorials:

    • โฌ†๏ธ Bump CMake minimum version to 3.1. [#2605]

    โœ… PCL Tests:

    • ๐Ÿ”จ Refactor SHOTEstimation and SHOTColorEstimation tests [#2636]

    CI:

    • ๐ŸŽ Set up azure pipelines for macOS High Sierra [#2635]
    • ๐Ÿ Enable Windows builds on Azure Pipelines [#2632]
    • โž• Add Ubuntu16.04 based build on Azure Pipelines [#2611]
    • โœ‚ Remove documentation job from Travis [#2604]
  • v1.9.0 Changes

    November 06, 2018

    New Features:

    ๐Ÿ†• Newly added functionalities.

    • [common][visualization] Add Viridis color LUT [#2420]
    • [octree] Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [#2204]
    • [octree] Implementation of the iterator 'OctreeFixedDepthIterator'. [#1983]
    • [ci] Enable Global Tests on Windows CI [#2137]
    • [features] Add GASD global point cloud descriptor [#1652]
    • [visualization] Add overload to PCLVisualizer::addText3D() that allows specifying text orientation [#2038]
    • [features] FLARELocalReferenceFrameEstimation class added [#1571]
    • [surface][tools] Add new mls projection method. Deprecated MovingLeastSquares::setPolynomialFit(). [#1960]

    ๐Ÿ—„ Deprecated:

    ๐Ÿš€ Deprecated code scheduled to be removed after two minor releases.

    • [octree] Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [#2204]
    • [common][segmentation] Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [#2096]
    • [io] Add support pcl::PointXYZRGBA to pcl::VLPGrabber. Deprecate rgb signatures. [#2102]
    • [surface][tools] Add new mls projection method. Deprecated MovingLeastSquares::setPolynomialFit(). [#1960]

    ๐Ÿšš Removed:

    ๐Ÿ—„ Removal of deprecated code.

    • [filters][io][surface][visualization] Removal of deprecated code in filters, io, surface and visualization modules [#2077]
    • [common] Remove deprecated ros headers [#2075]
    • [registration] Remove registration module deprecated methods [#2076]
    • [sample_consensus] Remove deprecated functions and variables from SAC module [#2071]
    • [common] Removal of PCA deprecated constructor [#2070]

    Behavioral changes:

    ๐Ÿ”„ Changes in the expected default behavior.

    • [common] PointCloudDepthAndRGBtoXYZRGBA: initialize with the default alpha value (fix #2476) [#2533]
    • [octree] Reverse octree's depth first iterator order [#2332]
    • [common] PointXYZRGBL label field is now default constructed to 0 [#2462]
    • [io] Fix PLYReader is_dense behavior [#2133]

    API changes:

    ๐Ÿ”„ Changes to the API which didn't went through the proper deprecation and removal cycle.

    • [octree] Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [#2204]
    • [sample_consensus] Const-qualify most of the methods in SAC model classes [#2270]
    • [simulation] Use GLuint rather than size_t to represent OpenGL indices. [#2238]
    • [visualization] Fix access specifier in PointCloudColorHandlerRGBAField [#2226]
    • ๐Ÿ“„ [docs] Misc. typos (cont.) [#2215]
    • [octree] OctreeIterators special member revision [#2108]
    • [io] Add support pcl::PointXYZRGBA to pcl::VLPGrabber. Deprecate rgb signatures. [#2102]
    • [surface][tools] Add new mls projection method. Deprecated MovingLeastSquares::setPolynomialFit(). [#1960]
    • [surface] Add ability to cache mls results [#1952]

    ABI changes:

    ๐Ÿ”„ Changes that cause ABI incompatibility but are still API compatible.

    • [surface] Missing pcl::MovingLeastSquaresOMP declaration without /openmp [#2324]
    • [common][filters][surface] Improved docstrings and error messages [#2300]
    • [common] Modified GlasbeyLUT indexing type to size_t [#2297]
    • [octree] Implementation of the iterator 'OctreeFixedDepthIterator'. [#1983]
    • [common][segmentation] Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [#2096]
    • [gpu] Allow specifying decimation step in convertToTsdfCloud [#2099]
    • [apps] More warning suppression in pcl apps [#2080]
    • [io] Removed unused member from ply_parser [#2066]
    • [filters] Fixes remove_indices in UniformSampling [#1902]
    • [visualization] Add accessor for current rendering framerate in PCLVisualizer [#1974]
    • [simulation] Redo: Simulation: enable returning of organized point clouds [#1687]
    • [registration] Added option to specify translation and rotation convergence deltas in ICP and NDT algorithms. [#1724]

    Modules:

    Uncategorized:

    • ๐Ÿ”„ Change Log generation tool. Automates change log generation. [#2396]
    • Compatibility reports generation script [#2410]
    • โšก๏ธ Update logo [#2547]
    • Never close stale issues/prs [#2400]
    • ๐Ÿ›  Fix typos in the whole codebase [#2217]
    • ๐Ÿ›  Fixed typo and rearragend items in the issue template [#2197]
    • ๐Ÿ”„ Change Stale daysTillClose to 100 years [#2166]
    • set stale daysUntilClose to a really big number [#2162]
    • Stale set up [#2101]

    CMake:

    • ๐Ÿ›  Fix checks for user-provided CXX flags [#2579]
    • ๐Ÿ›  Fix FLANN path to lower case [#2576]
    • ๐Ÿ‘‰ Use pkg-config to find Flann [#2563]
    • โšก๏ธ Update FindBoost versions [#2558]
    • ๐Ÿ— Add PCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32 option [#2552]
    • ๐Ÿ›  Fix app/CMakeLists to enable Apps under Windows [#2550]
    • ๐Ÿ”ง When configuring with WITH_DOCS, but Doxygen is not available, prevent generation. [#2516]
    • โœ… CMake: Do not include test targets in PCLConfig.cmake [#2458]
    • CMake Set temporarily the policy CMP0074 to OLD [#2454]
    • prevent GCC flags propagating to NVCC [#2430]
    • Mark visualization as an optional dependency of tools [#2439]
    • Do not mark imported libraries as GLOBAL in PCLConfig [#2435]
    • ๐Ÿ›  Intel fixes [#2432]
    • Export -march=native for Clang and prevent it from being included during cross compilation. [#2416]
    • Do not search for PCL components that have been found already [#2428]
    • Move SSE compiler options to PCL_COMPILE_OPTIONS. Expose PCL as a CMake imported target. [#2100]
    • โž• Add Visual Studio compiler option /FS for Ninja build [#2414]
    • ๐Ÿ‘‰ Use rpath in the target's install name [#2241]
    • ๐Ÿ‘Œ Improve QHull finder script [#2344]
    • ๐Ÿ›  Fix link order issue with boost [#2236]
    • Mark found PCL component libraries and include dirs as advanced [#2235]
    • Prevent search for disabled optional dependencies in targets. [#2229]
    • ๐Ÿ›  Fix installation rules for ml module [#2192]
    • ๐Ÿ›  Fix conditional branch of Visual C++ 2017 [#2121]
    • ๐Ÿ‘‰ Add *_USE_STATIC options to PCLConfig [#2086]
    • โž• Add search path suffixes for Vcpkg [#2085]
    • โšก๏ธ Update finder scripts for Ensenso, OpenNI, and OpenNI2 [#2061]
    • ๐Ÿ›  Fix PACKAGE to include cmake/Modules directory [#2053]
    • Unifies Find scripts in PCLConfig [#1421]
    • CUDA 9 Arch Flags [#2047]
    • Suppress log when PCL_FIND_QUIETLY is turned on. [#2032]
    • ๐Ÿ›  fix /MP option not generated for Visual Studio. [#2031]
    • Generate pkgconfig for 2d module [#1979]
    • โšก๏ธ Update Find Boost [#1972]
    • โž• Added CUDA compute capability 5.3 [#1929]
    • ๐Ÿ›  Fix issue with finding pcl deployed out of path [#1923]
    • โž• Add new gtest path [#1920]

    libpcl_2d:

    • ๐Ÿšš Avoid huge index jumps in RandomSample. Remove io dependency from 2d. [#2141]
    • ๐Ÿ›  Fix header names [#2079]
    • Generate pkgconfig for 2d module [#1979]

    libpcl_common:

    • ๐Ÿ›  Fix docstrings [#2591]
    • ๐Ÿ‘ป Throw an early exception to prevent divide by zero error (#2481) [#2530]
    • โœ… Relax requirements in eigen22d test. Always provide a normalized result in pcl::transformPlane. [#2503]
    • [behavior] PointCloudDepthAndRGBtoXYZRGBA: initialize with the default alpha value (fix #2476) [#2533]
    • Throw UnorganizedPointCloudException in PointCloud::at [#2521]
    • โž• Add missing const specifier for getters in PCLBase. [#2502]
    • swap the header in pcl::PointCloud::swap [#2499]
    • โž• Add header guard and copyright info to polynomial_calculations.hpp [#2500]
    • โž• Add header to the print output of PointCloud [#2498]
    • ๐Ÿ›  Fix force recalculation option in BivariatePolynomialT::calculateGradient [#2479]
    • ๐Ÿ›  Fix various errors and typos in the docstrings and tutorials [#2486]
    • ๐Ÿ›  Fix a bug in PointRGBtoI color conversion [#2475]
    • Provide operator<< for Intensity32u point type [#2467]
    • [behavior] PointXYZRGBL label field is now default constructed to 0 [#2462]
    • โž• Add some missing eigen alignment operators [#2433]
    • ๐Ÿ›  Intel fixes [#2432]
    • [new-feature] Add Viridis color LUT [#2420]
    • โœ‚ Remove malloc header to restore builds on BSDs [#2374]
    • Add support for multiple extensions in parse_file_extension_argument (). [#2347]
    • ๐Ÿ‘Œ Improve speed of transformPointCloud/WithNormals() functions [#2247]
    • โž• Add RGB constructor that takes R, G, and B components [#2329]
    • [abi] Improved docstrings and error messages [#2300]
    • [abi] Modified GlasbeyLUT indexing type to size_t [#2297]
    • Add GASDSignatures to PCL_POINT_TYPES and PCL_FEATURE_POINTTYPES macros. [#2295]
    • ๐Ÿ“œ [PARSE] Constness of the API [#2224]
    • ๐Ÿ›  Fix two "unreachable code" warnings in pca.hpp [#2219]
    • ๐Ÿ›  Fix covariance calculation in PCA [#2130]
    • ๐Ÿ—„ [abi][deprecation] Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [#2096]
    • [removal] Remove deprecated ros headers [#2075]
    • โš  Suppress (maybe) uninitialized warning [#2073]
    • [removal] Removal of PCA deprecated constructor [#2070]
    • ๐Ÿ›  [gcc] fixes -Wimplicit-fallthrough: common/io.h [#2041]
    • Include pcl/point_cloud.h and pcl/point_types.h headers. [#1962]
    • ๐Ÿ‘‰ Add test for macro _USE_MATH_DEFINES. [#1956]
    • ๐Ÿšš instantiate: remove duplicate macro definition. Fixes #1924. [#1925]

    libpcl_cuda:

    • โž• add support for latest Turing gpu and cuda 10 [#2560]
    • ๐Ÿ›  Fix compilation issues with CUDA 9.1 [#2212]
    • ๐Ÿ›  Fix some CUDA 9 related errors [#2181]
    • โž• Added CUDA compute capability 5.3 [#1929]

    libpcl_features:

    • โœ… Solve issues with failing features tests [#2544]
    • โšก๏ธ Update the OpenMP implementations of normal and FPFH estimation [#2278]
    • ๐Ÿ‘‰ Make MomentOfInertia instantiations consistent with the rest of the library [#2266]
    • ๐Ÿ“„ Docstring corrections [#2143]
    • ๐Ÿ‘Œ Improve Doxygen comments for HistogramInterpolationMethod [#2111]
    • [new-feature] Add GASD global point cloud descriptor [#1652]
    • โš  Suppress (maybe) uninitialized warning [#2073]
    • [new-feature] FLARELocalReferenceFrameEstimation class added [#1571]
    • ๐Ÿ›  fix missing include file: from_meshes.h is using pcl::Vertices in it [#2009]
    • Typo [#1968]

    libpcl_filters:

    • โœ… Corrections to CovarianceSampling class and corresponding test [#2512]
    • โž• Add the missing const modifier in Filter::getRemovedIndices. [#2523]
    • โž• Add const modifiers to getters of pcl::PassThrough [#2524]
    • โž• Add const specifiers for getters in VoxelGrid. [#2526]
    • Copy the pose info from the input cloud to the output cloud in NaN removal functions [#2522]
    • ๐Ÿ›  Fix misc. typos in tutorials and docstrings [#2529]
    • ๐Ÿ›  Fix various errors and typos in the docstrings and tutorials [#2486]
    • โž• Add some missing eigen alignment operators [#2433]
    • โž• Add PointNormal to ExtractIndices Instantiate Types [#2389]
    • [abi] Improved docstrings and error messages [#2300]
    • Public access to VoxelGrid boost pointer. [#2205]
    • โž• Add const qualifiers to getters in filter_indices.h [#2193]
    • ๐Ÿšš Avoid huge index jumps in RandomSample. Remove io dependency from 2d. [#2141]
    • [removal] Removal of deprecated code in filters, io, surface and visualization modules [#2077]
    • โš  Suppress unused parameter warning [#2074]
    • โš  Suppress sign compare warnings [#2068]
    • Transformation Fix for BoxClipper3D [#1961]
    • [abi] Fixes remove_indices in UniformSampling [#1902]
    • Inherit StatisticalOutlierRemoval from FilterIndices [#1663]

    libpcl_gpu:

    • โœ‚ Remove sm_72 from CUDA 9.0 [#2567]
    • ๐Ÿ›  Fix compilation issues with CUDA 9.1 [#2212]
    • ๐Ÿ›  Fix compilation error in gpu_people code [#2199]
    • ๐Ÿ›  Fix some CUDA 9 related errors [#2181]
    • [abi] Allow specifying decimation step in convertToTsdfCloud [#2099]
    • ๐Ÿ›  Fix the incorrect include directory. [#2024]
    • need to include instantiate.hpp to use PCL_INSTANTIATE [#1943]
    • โž• Added CUDA compute capability 5.3 [#1929]
    • ๐Ÿ›  Fix issue #1674 [#1926]

    libpcl_io:

    • โš  Suppress miscelanious warnings [#2556]
    • ๐Ÿ“œ vtk2mesh: Add parsing support to the new RGBA scalar field added in vtk8 [#2492]
    • ๐Ÿ›  Fix various errors and typos in the docstrings and tutorials [#2486]
    • ๐Ÿ‘Œ Improved obj file parsing efficiency. Make parsing robust against situations where there are more normals than points. Added unit tests. [#2450]
    • pcl::PCDReader::readHeader() change nr_points type to size_t to avoid possible int32 overflow [#2408]
    • ๐Ÿ›  Fix raw_fallocate for Android and deal with unsupported filesystems. [#2363]
    • Add low_level_io.h to the header list of the io module [#2356]
    • Created header for low level I/O helpers. Fix for ::posix_fallocate on Mac OSX [#2354]
    • โž• Added warnings when the input data is too large for compressed pcds [#2323]
    • Allocate disk space with posix_fallocate before mmapping. [#2325]
    • ๐Ÿ›  Fix cmake warning: Logical block closes with mis-matching arguments [#2320]
    • Added PCL_IO_ENABLE_MAND_LOCKING cmake flag. [#2315]
    • โž• Added missing 8 bytes to compressed binary pcd length. [#2281]
    • โœ‚ Remove useless size check in PLYReader::endHeaderCallback() [#2246]
    • [behavior] Fix PLYReader is_dense behavior [#2133]
    • EnsensoGrabber uint is undefined in Visual studio. [#2223]
    • โž• Add protection from invalid WIDTH values in PCD reader [#2195]
    • PLYReader Cast cloud point step as 64-bit integer [#2161]
    • OpenNI2Device Add device sensor check for IR and depth modesetting [#2150]
    • โž• Adds a check for when CreateFileMappingA fails [#2146]
    • PCDWriterchanged toff to size_t in writeBinaryCompressed [#2144]
    • ๐Ÿ“œ Prevent POINTS field parsing before point_step is specified [#2131]
    • Check COUNT value specified in PCD files [#2126]
    • Prevent mmapping more than the original PCD file size [#2125]
    • ๐Ÿ—„ [api][deprecation] Add support pcl::PointXYZRGBA to pcl::VLPGrabber. Deprecate rgb signatures. [#2102]
    • [removal] Removal of deprecated code in filters, io, surface and visualization modules [#2077]
    • โš  Suppress strict alias warning [#2072]
    • โš  Suppress unused parameter warnings [#2067]
    • [abi] Removed unused member from ply_parser [#2066]
    • Suppress control reaches end of non-void function in io.h [#2057]
    • Modify STRICT_ALIGN because macro expansion w/defined is undefined [#2043]
    • โž• Add necessary boost headers to pcl/io to build in CUDA mode [#2025]
    • ๐Ÿ›  Fix MSVC compile issue related with ssize_t [#2027]
    • โž• Adds in-memory PCD serialization/deserialization; de-duplicates PCDReader::readHeader(). (take #2) [#1986]

    libpcl_kdtree:

    • Consistent ptr typedefs for kd tree flann [#1607]

    libpcl_keypoints:

    • โž• Add TrajkovicKeypoint2D/3D to CMake build [#2179]

    libpcl_ml:

    • ๐Ÿ›  Fix installation rules for ml module [#2192]

    libpcl_octree:

    • [behavior] Reverse octree's depth first iterator order [#2332]
    • ๐Ÿ›  Fix various errors and typos in the docstrings and tutorials [#2486]
    • โœ… Make test conditions consistent with OctreePointCloudSearch::boxSearch() implementation. [#2457]
    • โš  octree_key.h suppress GCC 8 ignored-qualifier warning [#2405]
    • ๐Ÿ—„ [api][deprecation][new-feature] Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [#2204]
    • [abi][new-feature] Implementation of the iterator 'OctreeFixedDepthIterator'. [#1983]
    • โœ… Octree Iterator begin/end method and added tests [#2174]
    • โœ‚ Remove parametrization of end iterators [#2168]
    • ๐Ÿ›  Fix docstrings in octree test [#2173]
    • [api] OctreeIterators special member revision [#2108]
    • โœ‚ Remove unused variable from octree_viewer [#2069]
    • โš  Silence compile warning by removing superfluous call to std::max() [#2014]
    • [OCTREE] Add bounding box checks in isVoxelOccupiedAtPoint() and deleteVoxelAtPoint() [#1976]

    libpcl_outofcore:

    • Explictly use mt19937 random generator for boost 1.67. [#2338]
    • ๐Ÿ›  Fixed queryBBIncludes_subsample [#1988]

    libpcl_people:

    libpcl_recognition:

    • โœ… Relax threshold in Hough3DGrouping test [#2507]
    • โž• Add some missing eigen alignment operators [#2433]
    • Setting the resolution of the occupancy grid [#2273]
    • Inline helper function gcCorrespSorter() [#2248]
    • Misleading indentation [#2034]

    libpcl_registration:

    • โœ‚ Remove std::binary_function from Registration [#2599]
    • โš  Suppress miscelanious warnings [#2556]
    • โœ… Relax precision requirements on TransformationEstimationLM test. [#2497]
    • โœ… Relax rejector threshold in JointIterativeClosestPoint test. [#2496]
    • โž• Add some missing eigen alignment operators [#2433]
    • Remove explicit initialization of update_visualizer_ in Registration [#2423]
    • [removal] Remove registration module deprecated methods [#2076]
    • โš  Suppress (maybe) uninitialized warning [#2073]
    • โœ‚ Remove unreachable code in DefaultConvergenceCriteria [#1967]
    • [abi] Added option to specify translation and rotation convergence deltas in ICP and NDT algorithms. [#1724]

    libpcl_sample_consensus:

    • โœ… Revise direction test in SampleConsensusModelParallelLine/RANSAC to be consistent with set tolerance. [#2491]
    • ๐Ÿ›  Fix error in SampleConsensusModelLine::isSampleGood [#2488]
    • [api] Const-qualify most of the methods in SAC model classes [#2270]
    • [removal] Remove deprecated functions and variables from SAC module [#2071]

    libpcl_search:

    • โœ… Correct testPoint for organized nearest neighbor search [#2198]

    libpcl_segmentation:

    • โž• Add some missing eigen alignment operators [#2433]
    • โž• Add setter/getter for search method in ConditionalEuclideanClustering [#2437]
    • Increase threshold for expected value in test_non_linear [#2424]
    • Avoid infinite recursion in getPointCloudDifference [#2402]
    • ๐Ÿ—„ Correct setting of is_dense flag in SegmentDifferences. Deprecate unused parameter in method. [#2380]
    • Dereference shared_ptr, fix for GCC8 [#2299]
    • ๐Ÿ—„ [abi][deprecation] Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [#2096]
    • โœ‚ Removed normal related accessors and types from EuclideanClusterComparator [#1542]

    libpcl_simulation:

    • โž• Add const qualifiers to RangeLikelihood getters. [#2411]
    • [api] Use GLuint rather than size_t to represent OpenGL indices. [#2238]
    • ๐Ÿ‘Œ Support both RGB and RGBA colors in mesh loading [#2036]
    • [abi] Redo: Simulation: enable returning of organized point clouds [#1687]
    • Simulation: more access to camera parameters [#1650]

    libpcl_surface:

    • ๐Ÿ›  Fixed memory leak in Poisson's BSplineData [#2572]
    • โš  Suppress miscelanious warnings [#2556]
    • โž• Add some missing eigen alignment operators [#2433]
    • ๐Ÿ‘‰ Make pcl::MovingLeastSquares thread-safe [#2418]
    • [abi] Missing pcl::MovingLeastSquaresOMP declaration without /openmp [#2324]
    • [abi] Improved docstrings and error messages [#2300]
    • opennurbs: fix ON_Curve::EvaluatePoint calculation [#2185]
    • [removal] Removal of deprecated code in filters, io, surface and visualization modules [#2077]
    • โš  Suppress (maybe) uninitialized warning [#2073]
    • โš  Suppress sign compare warnings [#2068]
    • ๐Ÿ›  Fix incorrect Ptr/ConstPtr typedefs in MovingLeastSquaresOMP [#2055]
    • Replace float indices with Eigen Index [#2017]
    • ๐Ÿ—„ [api][deprecation][new-feature] Add new mls projection method. Deprecated MovingLeastSquares::setPolynomialFit(). [#1960]
    • Avoid phantom surfces in marching cubes hoppe [#1874]
    • [api] Add ability to cache mls results [#1952]

    libpcl_visualization:

    • ๐Ÿ’… Made PCLVisualizerInteractorStyle::CloudActorMapPtr public. [#2542]
    • [new-feature] Add Viridis color LUT [#2420]
    • โšก๏ธ Update sha1 header inclusion for Boost 1.68+ [#2373]
    • Second change VTK version check in addTextureMesh [#2322]
    • Include missing vtkTexture.h. Follow up on #2291 [#2316]
    • ๐Ÿ”„ Change VTK version check in addTextureMesh [#2311]
    • โœ‚ Remove depreciated VTK function MapDataArrayToMultiTextureAttribute [#2291]
    • Warn and skip adding normal cloud if it is empty [#2265]
    • [api] Fix access specifier in PointCloudColorHandlerRGBAField [#2226]
    • Check if color handler returns false [#2209]
    • ๐Ÿ– Handle VTK legacy function (follow up to #2112) [#2165]
    • ๐Ÿ”€ Travis merge test jobs. Expose VTK include directory for the visualization module. [#2163]
    • ๐Ÿ›  Small optimizations and fixes in PCLVisualizer [#2112]
    • โž• Add another variant to getPointCloudRenderingProperties() [#2142]
    • Restrict accepted types in PCLVisualizer::addLine signature [#2134]
    • Typo fix in error message. [#2132]
    • ๐Ÿ›  Fix add/remove of 3D text without custom viewport [#2110]
    • โž• Add octree dependency to visualization [#2115]
    • ๐Ÿ›  Fix pcd_viewer color handling when invalid fields are present in pcd [#2105]
    • โž• Add pcl visualizer interactor null guards [#2104]
    • โž• Add remove text3d [#2088]
    • Replace auto_ptr with scoped_ptr [#2037]
    • [removal] Removal of deprecated code in filters, io, surface and visualization modules [#2077]
    • โš  Suppress sign compare warnings [#2068]
    • [new-feature] Add overload to PCLVisualizer::addText3D() that allows specifying text orientation [#2038]
    • โž• Add new constructors to PCLVisualizer [#2004]
    • ๐Ÿ›  Fix bug in PointCloudGeometryHandlerCustom [#2001]
    • Add missing PCL_EXPORTS in pcl_visualizer.h [#1995]
    • [abi] Add accessor for current rendering framerate in PCLVisualizer [#1974]
    • ๐Ÿ‘ Allow changing LUT properties of a shape actor [#1668]
    • ๐Ÿ›  Fixed spelling and grammar errors [#1959]
    • ๐Ÿ›  Fixed error in documentation. [#1957]

    PCL Apps:

    • โš  Suppress miscelanious warnings [#2556]
    • Fix 3d_rec_framework compilation error [#2495]
    • ๐Ÿ›  Fix compilation issue in point cloud editor. [#2490]
    • demean_cloud correct usage message. [#2443]
    • Do not use deprecated method in openni_mls_smoothing app [#2421]
    • โž• add windows.h for includes GL/gl.h; handle cancel for denoiseWidget. [#2267]
    • โž• Add missing dependecy to apps [#2251]
    • โš  Suppress the final set of warnings in pcl apps [#2082]
    • [abi] More warning suppression in pcl apps [#2080]

    ๐Ÿ“„ PCL Docs:

    • ๐Ÿ›  Fix misc. typos in tutorials and docstrings [#2529]
    • ๐Ÿ›  Fix various errors and typos in the docstrings and tutorials [#2486]
    • ๐Ÿ“„ Docstring typos' corrections. [#2449]
    • demean_cloud correct usage message. [#2443]
    • Set IMAGE_PATH explicitly in Doxygen config [#2442]
    • Switch to using client-based search in Doxygen [#2391]
    • [api] Misc. typos (cont.) [#2215]
    • โœ๏ธ doc: misc. typos [#2213]
    • โž• Add url to API/ABI compatibity report [#2116]
    • ๐Ÿ‘Œ Improve Doxygen comments for HistogramInterpolationMethod [#2111]
    • โšก๏ธ Update organized.h [#1965]
    • Typo [#1968]
    • ๐Ÿ›  Fixed spelling and grammar errors [#1959]
    • ๐Ÿ›  Fixed error in documentation. [#1957]

    PCL Tutorials:

    • ๐Ÿ›  Fix dataset link in conditional euclidean clustering tutorial [#2546]
    • ๐Ÿ›  Fix dead links in Walkthrough tutorial [#2532]
    • Simplify explanation of PointXYZ structure in "Writing PCD" tutorial [#2534]
    • ๐Ÿ›  Fix misc. typos in tutorials and docstrings [#2529]
    • ๐Ÿ›  Fix a dead link to Radu Rusu's dissertation in the tutorial. [#2508]
    • ๐Ÿ›  Fix various errors and typos in the docstrings and tutorials [#2486]
    • Fix link to Institut Maupertuis's ensenso_extrinsic_calibration repo [#2447]
    • โž• Add settings for hypothesis verification [#2274]
    • ๐Ÿ›  Fix ICP tutorial [#2244]
    • ๐Ÿ›  Fix error in example code for estimate set of surface for a subset of points in the input dataset [#2203]
    • โšก๏ธ Update message about legacy point cloud types in tutorial [#2175]
    • โž• Add descriptor unpacking to GASD tutorial [#2167]
    • ๐Ÿ›  Fix convert to Eigen::Map<const Eigen::Vector3f> from Normal of pcl::PointXYZINormal [#2128]
    • ๐Ÿ›  Fix the tutorial qt_visualizer compilation issue: qt4 -> qt5. [#2051]
    • ๐Ÿ›  Fix several documentation typos [#2020]
    • Replace literal include of wrong CMakeLists file with correct script [#1971]
    • โšก๏ธ Update Ensenso tutorial for Ensenso X devices [#1933]

    PCL Examples:

    • โš  Suppress strict alias warning [#2072]
    • โš  Suppress (maybe) uninitialized warning [#2073]
    • ๐Ÿ›  Fix CPC/LCCP segmentation examples for VTK 7.1 [#2063]

    โœ… PCL Tests:

    • ๐Ÿ Corrections to Windows unit tests. [#2596]
    • โœ… Relax eigen22f test criteria [#2553]
    • โœ… Solve issues with failing features tests [#2544]
    • โœ… Relax requirements in eigen22d test. Always provide a normalized result in pcl::transformPlane. [#2503]
    • โœ… Enable tests_2d and tests_io in AppVeyor. [#2505]
    • โœ… Relax threshold in Hough3DGrouping test [#2507]
    • โœ… Relax precision requirements on TransformationEstimationLM test. [#2497]
    • โœ… Relax rejector threshold in JointIterativeClosestPoint test. [#2496]
    • ๐Ÿ“œ vtk2mesh: Add parsing support to the new RGBA scalar field added in vtk8 [#2492]
    • โœ… Revise direction test in SampleConsensusModelParallelLine/RANSAC to be consistent with set tolerance. [#2491]
    • โœ… Make test conditions consistent with OctreePointCloudSearch::boxSearch() implementation. [#2457]
    • Increase threshold for expected value in test_non_linear [#2424]
    • Replace floating point numerals when using boost::posix_time. Fix compatibility with Boost 1.67. [#2422]
    • โœ… Cleanup and improve unit test coverage for transformPointCloud functions [#2245]
    • ๐Ÿ›  Fixes and new assertion macro in "pcl_tests.h" [#2237]
    • โž• Add new gtest path [#1920]

    PCL Tools:

    • Allow the pcl_uniform_sampling tool to deal with several formats (PCD, PLY and VTK) as input or output point cloud [#2348]
    • ๐Ÿ‘ mesh_sampling tool: Add support for colors [#2257]
    • Error message on non-recognized feature names [#2178]
    • โš  Suppress sign compare warnings [#2068]
    • [OCTREE] Compute accurately the centroids of octree in 'pcl_octree_viewer' [#1981]
    • ๐Ÿ—„ [api][deprecation][new-feature] Add new mls projection method. Deprecated MovingLeastSquares::setPolynomialFit(). [#1960]
    • [OCTREE] Fix pcl_octree_viewer [#1973]
    • ๐Ÿšš [OCTREE] Remove a useless field in octree_viewer. [#1980]

    CI:

    • โšก๏ธ Disable Travis email notifications. Update PCL logo endpoint. [#2535]
    • Migrate Travis to the new travis-ci.com platform [#2538]
    • โœ… Enable tests_2d and tests_io in AppVeyor. [#2505]
    • ๐Ÿ›  Fix docs on Travis CI. [#2441]
    • Disable SSE flags in AppVeyor. [#2438]
    • ๐Ÿ— Split (yet again) Travis test job into two and tweak timings in building apps [#2182]
    • [new-feature] Enable Global Tests on Windows CI [#2137]
    • ๐Ÿ”€ Travis merge test jobs. Expose VTK include directory for the visualization module. [#2163]
    • โœ‚ Remove unnecessary PPAs and packages from Travis [#2153]
    • ๐Ÿ’… AppVeyor - Change to simple style of specify triplet [#2135]
    • ๐ŸŽ‰ Initial Appveyor CI integration [#2083]
    • ๐Ÿ”„ Change Travis to use pip3 for installing sphinx [#2124]
    • ๐Ÿ— [TRAVIS] Enable the build of apps. [#2012]
    • ๐Ÿ— [TRAVIS] Enable the build of tools. [#2007]
    • ๐Ÿ— Disable tools build in CI. [#2003]
  • v1.8.1 Changes

    August 08, 2017

    ๐Ÿ”„ ChangeList

    • Replaced make_shared invocations on aligned allocated vars
      [#1405]
    • Created an issue template for bug reporting
      [#1637]
    • PCL logo image is now locally available
      [#1677]
    • โšก๏ธ Updated the Windows all in one installer for MSVC15
      [#1762]
    • โž• Added compile support to VTK 7.1
      [#1770]
    • ๐Ÿ›  Fixed badges markup in README.md
      [#1873]
    • ๐Ÿ’… Replaced C-style sqrtf with std::sqrt
      [#1901]

    CMake:

    • Tweaks to PCL_DEFINITIONS behavior (to be deprecated in future
      ๐Ÿ”– versions)
      [#1478]
    • ๐Ÿ”ง VTK directory can now be manually specified during configuration
      [#1605]
    • โšก๏ธ Updated the find Boost cmake macro to support the latest versions plus
      exported definitions now give priority to finding the same Boost version
      PCL was compiled with.
      [#1630]
    • Corrected PCL_ROOT in PCLConfig.cmake
      [#1678]
    • โœ‚ Removed automatic override of VTK_LIBRARIES
      [#1760]
    • โšก๏ธ Updated find boost versions
      [#1788]
      [#1855]
      [#1856]
    • โšก๏ธ Updated CUDA compute capabilities
      [#1789]
    • Extend linking of delayimp.lib to all MSVC version
      [#1823]
    • Removal of MSVCxx variables
      [#1830]
    • ๐Ÿ›  Fixed path link to Documents of Windows Start-Menu
      [#1857]
    • ๐Ÿ›  Fixed CPack for Documents
      [#1858]
    • ๐Ÿ›  Fixed bug present when Ensenso SDK path included spaces
      [#1875]
    • ๐Ÿ‘ฎ -D_FORCE_INLINES definition added for CUDA targets to prevent
      issues between old versions of the CUDA Toolkit and new versions
      of gcc
      [#1900]
    • Implemented new versioning scheme for PCL, employing the suffix
      ๐Ÿš€ -dev in between releases.
      [#1905]
    • ๐Ÿ Corrected search paths for Eigen on Windows
      [#1912]
    • SSE definitions are now exported and cleanup of Eigen's
      definitions
      [#1917]
    • โž• Added support to dynamic linking against FLANN on Windows
      [#1919]
    • โž• Add new search path for GTest to the finder script
      [#1920]
    • ๐Ÿ›  Fix discovery of PCL deployed out of install path
      [#1923]

    libpcl_2d:

    • โœ‚ Removed the non-free lena-grayscale-png image :(
      [#1676]
    • 2d library is no longer generated since it contained no symbols
      [#1679]

    libpcl_common:

    • ๐Ÿ”„ Changed default alpha value to 255 on all RGB(A) point types
      [#1385]
    • ๐Ÿ›  Fixed an issue preventing aligned memory allocation on 32-bit Windows
      systems
      [#1665]
    • ๐Ÿ›  Fixed compile error on test_common on MSVC
      [#1689]
    • ๐Ÿ›  Fixed parallel plane test condition on pcl::planeWithPlaneIntersection
      [#1698]
    • ๐Ÿ›  Fixed endless loop condition in compute3DCentroid
      [#1704]
    • toPCLPointCloud2 is not resilient to an empty pointcloud input
      [#1723]
    • Normal accumulator normalized() is now resilient to a 0 filled vector
      [#1728]
    • Defined additional types in PointCloud to ensure STL container
      compatibility
      [#1741]
    • Aligned malloc now works on Android as well
      [#1774]
    • โž• Added missing include to boost shared_ptr in vertices
      [#1790]
    • Prevent incorrect copy of adjacent point in fromPCLPointCloud2()
      [#1813]
    • โช Restored Eigen::umeyama for Eigen 3.3+
      [#1820]
      [#1887]
    • ๐Ÿ›  Fixed type in deprecation messages
      [#1878]
    • ๐Ÿ‘Œ Improved support for mingw aligned allocation
      [#1904]
    • ๐Ÿ‘‰ Added test for macro _USE_MATH_DEFINES to avoid warnings
      [#1956]

    libpcl_cuda:

    • ๐Ÿ›  Fixed macro definitions for the Windows platform
      [#1568]

    libpcl_features:

    • NormalEstimation[OMP] and FPFHEstimation[OMP] are now instantiated for
      the same types as the non OMP variants.
      [#1642]
    • Prevention of the addition of duplicate keys in PFHEstimation
      [#1701]
    • ๐Ÿ› Bug fixes in OUR-CVFH
      [#1827]
    • ๐Ÿ›  Fixed incorrect initialization of SHOT
      [#1859]
      [#1876]

    libpcl_filters:

    • ๐Ÿ–จ ExtractIndices filter now aborts prematurely and prints error verbose
      in case it detects an index which exceeds the size on the input data
      [#1670]
    • Potential reduction of computational time of ModelOutlierRemoval
      [#1735]
    • ๐Ÿ‘Œ Improved code readability in CropBox
      [#1817]

    libpcl_gpu:

    • โž• Added support to NVidia Pascal GPUs
      [#1824]
    • ๐Ÿ›  Fixed compilation error in KinfuLS
      [#1872]
    • ๐Ÿ›  Fixed CUDA architecture check
      [#1872]

    libpcl_io:

    • RGB values are now always saved as uint32 on PCD files
      [#1385]
    • ๐Ÿ›  Fixed find RealSense macro and compilation error with RealSenseGrabber
      ๐Ÿ on Windows
      [#1560]
    • Unified verbose on OctreePointCloudCompression
      [#1569]
    • ๐Ÿ‘Œ Improved performance on saving PLY, OBJ and VTK files
      [#1580]
    • โž• Added support to the transparency property Tr on pcl::MTLReader
      ๐Ÿ“œ and fixed issue with parsing of the material's properties.
      [#1599]
    • ๐Ÿ›  Fixed function signature mismatch in auto_io
      [#1625]
    • ๐Ÿ›  Fix ASCIIReader::setInputFields interface
      [#1690]
    • โœ… Adopted pcl_isnan in test_buffers to prevent compilation problems on
      MSVC12
      [#1694]
    • ๐Ÿ›  Fixed incorrect laser number test condition in VLP Grabber
      [#1697]
    • ๐Ÿ›  Fixed bug verbose output of compression statistics
      [#1749]
    • ๐Ÿ›  Fixed a bug in the parsing of PLY headers
      [#1750]
    • Replacement of boost::math::isnan by pcl_isnan
      [#1766]
    • Binary files written by PCDWriter now have the same permissions
      as the ASCII ones
      [#1779]
    • ๐Ÿ›  Fixed ODR violation when compiling with both OpenNI and OpenNI2
      [#1818]
    • PLYReader now also accepts the property vertex_index
      [#1847]
    • ๐Ÿ›  Fixed bug in return value of pcl_converter
      [#1903]

    libpcl_keypoints:

    • ๐Ÿ›  Fixed memory leak in ISSKeypoint3D
      [#1815]

    libpcl_octree:

    • ๐Ÿ›  Fixed unexpected octree boundaries' reduction
      [#1532]
      [#1906]
    • ๐Ÿ›  Fixed octree precompilation mechanism
      [#1639]
      [#1916]
    • ๐Ÿ›  Fixed invalid cast in OctreePointCloudVoxelCentroid
      [#1700]

    libpcl_recognition:

    • ๐Ÿ›  LineMOD bug fixes
      [#1835]
    • โœ‚ Removed redundant definition of point types
      [#1836]

    libpcl_registration:

    • ๐Ÿ›  Fixed GICP behavior when a guess is provided
      [#989]
    • ๐Ÿ›  Fixed compilation issues in NDT 2D with Eigen 3.3
      [#1821]
    • NDT 2D state is now properly initialized
      [#1731]

    libpcl_sample_consensus:

    • ๐Ÿ‘Œ Improved error verbose in
      โšก๏ธ SampleConsensusModelPlane::optimizeModelCoefficient
      [#1811]

    libpcl_segmentation:

    • ๐Ÿ›  Fixed bug in organized multiplane segmentation refine function where label
      โšก๏ธ indices were not being updated correctly
      [#1502]
    • Corrected function signature in lccp segmentation
      [#1761]
    • ๐Ÿ›  Fixed bug in boundary checking in Organized Connected Component
      Segmentation
      [#1800]
    • ๐Ÿ“š Clarified documentation in Super Voxel Clustering
      [#1804]
    • ๐Ÿ›  Fixed bug causing unnecessary computation in Region Growing
      [#1882]

    libpcl_surface:

    • Double pass mean and covariance estimation are now employed in
      ConcaveHull::reconstruct
      [#1567]
    • ๐Ÿ›  GP3 bug fixes
      [#1850]
      [#1879]
    • ๐Ÿ›  Fixed buggy index cast in bilateral upsampling
      [#1914]

    libpcl_visualization:

    • ๐Ÿ›  Fixed bug in addPointCloudNormals which was ignoring view point information
      [#1504]
    • ๐Ÿ›  Fixed bug camera FOV computation in PCLVisualizerInteractorStyle
      [#1611]
    • ๐Ÿ›  Fixed a MSVC compilation error with the colormap LUT
      [#1635]
    • Abort prematurely when the camera file cannot be opened on
      ๐Ÿ’… PCLVisualizerInteractorStyle
      [#1776]
    • ๐Ÿ›  Fix to addText3D
      [#1805]
    • โž• Added some exception guards in OpenNI and OpenNI2 Viewer tools
      [#1862]

    PCL Apps:

    • ๐Ÿ›  Fixed bug in point cloud editor app which allowed to select points behind
      the camera
      [#1539]
    • ๐Ÿ— Explicitly define OpenGL headers to fix build on Ubuntu arm64
      [#1715]
    • ๐Ÿšฆ Replaced the use of slot and signals keywords in QT apps for
      ๐Ÿšฆ their Q_* counterparts to present name clashes with Boost Signals
      [#1898]

    ๐Ÿ“„ PCL Docs:

    • ๐Ÿ›  Fix docs generation on Windows
      [#1717]

    โœ… PCL Tests:

    • ๐Ÿ— Modularized the build of unit tests.
      [#1768]
    • Removed invalid test condition on test_common_io
      [#1884]

    PCL Tools:

    • mesh2pcd has now an option to explicitly disable visualization
      [#1768]
    • mesh_sampling has now an option to explicitly disable visualization
      [#1769]
    • Mesh sampling now has an option to include normal information
      [#1795]
    • ๐Ÿ›  Fixed incorrect return value in pcl_converter
      [#1903]

    PCL Tutorials:

    • ๐Ÿ›  Fixed a crash in the pcl_visualizer tutorial triggered in interactive
      mode
      [#1631]
    • ๐Ÿ›  Fixed hyperlink in narf keypoint extraction
      [#1777]
    • Typo corrections in random sample consensus
      [#1865]
    • โšก๏ธ Updated matrix transform tutorial and added cube.ply mesh
      [#1894]
      [#1897]
    • โšก๏ธ Updated Ensenso tutorial for Ensenso X devices
      [#1933]

    CI:

    • โ†ช Applied a workaround to a regression bug introduced by doxylink
      ๐Ÿ— in the docs build job
      [#1784]
    • ๐Ÿ”จ Build jobs refactoring
      [#1768]
    • ๐Ÿ— Enable ccache to speed up builds in CI
      [#1892]