1# ChangeList 2 3## = 1.12.0 (2021.07.07) = 4 5PCL 1.12.0 enables custom index size and type, from `int16_t` to `uint64_t`, allowing 6users to have as small or large clouds as they wish. 1.12 also comes with improved 7support for VTK and CUDA, along with making existing functionality more user friendly. 8 9This is all on top of the usual bug-fixes and performance improvements across the board 10 11### Notable changes 12 13**New features** *added to PCL* 14 15* **[sample_consensus]** Add SIMD implementations to some countWithinDistance functions [[#3519](https://github.com/PointCloudLibrary/pcl/pull/3519)] 16* **[io]** Enable Real Sense 2 grabber for all platforms [[#4471](https://github.com/PointCloudLibrary/pcl/pull/4471)] 17* **[visualization]** add ellipsoid shape to pcl_visualizer [[#4531](https://github.com/PointCloudLibrary/pcl/pull/4531)] 18* **[common]** Add `constexpr` to static member functions for point types, add macro for `if constexpr` [[#4735](https://github.com/PointCloudLibrary/pcl/pull/4735)] 19* **[ci]** Use windows docker image in CI. [[#4426](https://github.com/PointCloudLibrary/pcl/pull/4426)] 20* **[common]** Add pcl log stream macros [[#4595](https://github.com/PointCloudLibrary/pcl/pull/4595)] 21 22**Deprecation** *of public APIs, scheduled to be removed after two minor releases* 23 24* **[common]** Modify index type for vertices [[#4256](https://github.com/PointCloudLibrary/pcl/pull/4256)] 25* **[gpu]** Add square distances to GPU knnSearch API [[#4322](https://github.com/PointCloudLibrary/pcl/pull/4322)] 26* **[gpu]** Add square distances to ApproxNearestSearch [[#4340](https://github.com/PointCloudLibrary/pcl/pull/4340)] 27* Deprecate unused ease-of-internal-use headers [[#4367](https://github.com/PointCloudLibrary/pcl/pull/4367)] 28* **[registration]** Deprecate `TransformationEstimationDQ` in favor of `TransformationEstimationDualQuaternion` [[#4425](https://github.com/PointCloudLibrary/pcl/pull/4425)] 29* **[segmentation]** Deprecate unused `max_label` in `extractLabeledEuclideanClusters` [[#4105](https://github.com/PointCloudLibrary/pcl/pull/4105)] 30* **[surface]** MLS: correct typo in `principle` by using `principal` instead [[#4505](https://github.com/PointCloudLibrary/pcl/pull/4505)] 31* Deprecate unneeded meta-headers [[#4628](https://github.com/PointCloudLibrary/pcl/pull/4628)] 32* **[apps][tracking]** pyramidal klt: switch keypoints_status_ to int vector [[#4681](https://github.com/PointCloudLibrary/pcl/pull/4681)] 33* Properly remove remaining items deprecated for version 1.12, deprecate `uniform_sampling.h` [[#4688](https://github.com/PointCloudLibrary/pcl/pull/4688)] 34* **[recognition]** Add deprecation for incorrectly installed headers [[#4650](https://github.com/PointCloudLibrary/pcl/pull/4650)] 35 36**Removal** *of the public APIs deprecated in previous releases* 37 38* Remove deprecated items as scheduled in preparation of v1.12 (except `concatenatePointCloud`) [[#4341](https://github.com/PointCloudLibrary/pcl/pull/4341)] 39* **[apps]** Remove unused code in persistence_utils.h [[#4500](https://github.com/PointCloudLibrary/pcl/pull/4500)] 40* Properly remove remaining items deprecated for version 1.12, deprecate `uniform_sampling.h` [[#4688](https://github.com/PointCloudLibrary/pcl/pull/4688)] 41 42**Behavior changes** *in classes, apps, or tools* 43 44* **[registration]** Don't move, or copy ICP [[#4167](https://github.com/PointCloudLibrary/pcl/pull/4167)] 45* **[common]** Fix PointXYZRGBA ctor, set A as 255 by default [[#4799](https://github.com/PointCloudLibrary/pcl/pull/4799)] 46 47**API changes** *that did not go through the proper deprecation and removal cycle* 48 49* **[common]** modify index type for PCLImage [[#4257](https://github.com/PointCloudLibrary/pcl/pull/4257)] 50* **[registration]** Don't move, or copy ICP [[#4167](https://github.com/PointCloudLibrary/pcl/pull/4167)] 51* **[kdtree]** KdTree: handle 0 or negative k for nearestKSearch [[#4430](https://github.com/PointCloudLibrary/pcl/pull/4430)] 52* **[common]** Use `std::array` instead of C-array for ColorLUT [[#4489](https://github.com/PointCloudLibrary/pcl/pull/4489)] 53* **[tracking]** Use SFINAE instead of relying on macro `PCL_TRACKING_NORMAL_SUPPORTED` [[#4643](https://github.com/PointCloudLibrary/pcl/pull/4643)] 54* **[gpu]** Export and template extract clusters [[#4196](https://github.com/PointCloudLibrary/pcl/pull/4196)] 55* **[common]** Added `namespace pcl` to free functions: `aligned_{malloc/free}` [[#4742](https://github.com/PointCloudLibrary/pcl/pull/4742)] 56 57**ABI changes** *that are still API compatible* 58 59* **[registration]** Refactoring and Bugfix of NDT [[#4180](https://github.com/PointCloudLibrary/pcl/pull/4180)] 60* **[common]** modify index types for PCLPointCloud2 [[#4199](https://github.com/PointCloudLibrary/pcl/pull/4199)] 61* **[common]** Modify index type for vertices [[#4256](https://github.com/PointCloudLibrary/pcl/pull/4256)] 62* **[common]** Modify index type for PCLPointField [[#4228](https://github.com/PointCloudLibrary/pcl/pull/4228)] 63* **[surface]** Enabled multithreading in Poisson surface reconstruction [[#4332](https://github.com/PointCloudLibrary/pcl/pull/4332)] 64* **[io]** Allow file_io to read large point clouds depending on PCL config [[#4331](https://github.com/PointCloudLibrary/pcl/pull/4331)] 65* **[sample_consensus]** Allow user to apply arbitrary constraint on models in sample consensus [[#4260](https://github.com/PointCloudLibrary/pcl/pull/4260)] 66* **[tracking]** Use SFINAE instead of relying on macro `PCL_TRACKING_NORMAL_SUPPORTED` [[#4643](https://github.com/PointCloudLibrary/pcl/pull/4643)] 67* **[features]** Move the init of static variables to library load time [[#4640](https://github.com/PointCloudLibrary/pcl/pull/4640)] 68* **[octree]** Octree2BufBase: Fix bug that contents from previous buffer appear in current buffer [[#4642](https://github.com/PointCloudLibrary/pcl/pull/4642)] 69 70### Changes grouped by module 71 72#### CMake: 73 74* Update `pcl_find_boost` to allow compilation with Boost 1.74 [[#4330](https://github.com/PointCloudLibrary/pcl/pull/4330)] 75* Variable needs to be expanded when checking for `EXT_DEPS` [[#4353](https://github.com/PointCloudLibrary/pcl/pull/4353)] 76* Update pcl_find_cuda.cmake to contain all supported architectures [[#4400](https://github.com/PointCloudLibrary/pcl/pull/4400)] 77* Add support for VTK 9 [[#4262](https://github.com/PointCloudLibrary/pcl/pull/4262)] 78* Refactor cmake find script of libusb [[#4483](https://github.com/PointCloudLibrary/pcl/pull/4483)] 79* Add AVX for windows [[#4598](https://github.com/PointCloudLibrary/pcl/pull/4598)] 80* Add SSE definitions for SSE 4.1 and 4.2 [[#4596](https://github.com/PointCloudLibrary/pcl/pull/4596)] 81 82#### libpcl_common: 83 84* **[ABI break]** modify index types for PCLPointCloud2 [[#4199](https://github.com/PointCloudLibrary/pcl/pull/4199)] 85* **[API break]** modify index type for PCLImage [[#4257](https://github.com/PointCloudLibrary/pcl/pull/4257)] 86* **[ABI break][deprecation]** Modify index type for vertices [[#4256](https://github.com/PointCloudLibrary/pcl/pull/4256)] 87* **[ABI break]** Modify index type for PCLPointField [[#4228](https://github.com/PointCloudLibrary/pcl/pull/4228)] 88* Allow PCL_DEPRECATED to detect and help remove deprecations before release [[#4336](https://github.com/PointCloudLibrary/pcl/pull/4336)] 89* Allow conversion of PointCloud with more than 32-bit size rows/columns [[#4343](https://github.com/PointCloudLibrary/pcl/pull/4343)] 90* Improve routing for `transformPointCloud` [[#4398](https://github.com/PointCloudLibrary/pcl/pull/4398)] 91* Correct typo in `transformPlane` [[#4396](https://github.com/PointCloudLibrary/pcl/pull/4396)] 92* **[API break]** Use `std::array` instead of C-array for ColorLUT [[#4489](https://github.com/PointCloudLibrary/pcl/pull/4489)] 93* Set header in two toPCLPointCloud2 functions [[#4538](https://github.com/PointCloudLibrary/pcl/pull/4538)] 94* Add more operators to `PointCloud` to prevent perf regression in refactoring [[#4397](https://github.com/PointCloudLibrary/pcl/pull/4397)] 95* Make sure that organized point clouds are still organized after transformPointCloud [[#4488](https://github.com/PointCloudLibrary/pcl/pull/4488)] 96* **[API break]** Added `namespace pcl` to free functions: `aligned_{malloc/free}` [[#4742](https://github.com/PointCloudLibrary/pcl/pull/4742)] 97* **[new feature]** Add `constexpr` to static member functions for point types, add macro for `if constexpr` [[#4735](https://github.com/PointCloudLibrary/pcl/pull/4735)] 98* Fix `PolygonMesh::concatenate` and its unit test [[#4745](https://github.com/PointCloudLibrary/pcl/pull/4745)] 99* **[behavior change]** Fix PointXYZRGBA ctor, set A as 255 by default [[#4799](https://github.com/PointCloudLibrary/pcl/pull/4799)] 100* Remove pseudo-template-instantiations in eigen.h to reduce compilation time [[#4788](https://github.com/PointCloudLibrary/pcl/pull/4788)] 101* **[new feature]** Add pcl log stream macros [[#4595](https://github.com/PointCloudLibrary/pcl/pull/4595)] 102 103#### libpcl_features: 104 105* **[ABI break]** Move the init of static variables to library load time [[#4640](https://github.com/PointCloudLibrary/pcl/pull/4640)] 106* Use correct cloud for checking finite-ness in fpfh [[#4720](https://github.com/PointCloudLibrary/pcl/pull/4720)] 107 108#### libpcl_filters: 109 110* Improve performance of median filter by using `nth_element` [[#4360](https://github.com/PointCloudLibrary/pcl/pull/4360)] 111* Fix the covariance calculation as suggested by @zxd123 [[#4466](https://github.com/PointCloudLibrary/pcl/pull/4466)] 112* Filters: fix wrong initialization of covariance in VoxelGridCovariance [[#4556](https://github.com/PointCloudLibrary/pcl/pull/4556)] 113* Fix application of setMinimumPointsNumberPerVoxel for PCLPointCloud2 implementation of VoxelGrid [[#4389](https://github.com/PointCloudLibrary/pcl/pull/4389)] 114* Adding tests for CropHull and using hull_cloud instead of input in getHullCloudRange [[#3976](https://github.com/PointCloudLibrary/pcl/pull/3976)] 115 116#### libpcl_gpu: 117 118* **[deprecation]** Add square distances to GPU knnSearch API [[#4322](https://github.com/PointCloudLibrary/pcl/pull/4322)] 119* **[deprecation]** Add square distances to ApproxNearestSearch [[#4340](https://github.com/PointCloudLibrary/pcl/pull/4340)] 120* **[API break]** Export and template extract clusters [[#4196](https://github.com/PointCloudLibrary/pcl/pull/4196)] 121* Update support for CUDA arch in CMake and `convertSMVer2Cores` [[#4748](https://github.com/PointCloudLibrary/pcl/pull/4748)] 122* Add ability to download contiguous chunk of memory to host using `Device{Array,Memory}` [[#4741](https://github.com/PointCloudLibrary/pcl/pull/4741)] 123* Speeding up GPU clustering using smarter download strategy and memory allocations [[#4677](https://github.com/PointCloudLibrary/pcl/pull/4677)] 124 125#### libpcl_io: 126 127* **[ABI break]** Allow file_io to read large point clouds depending on PCL config [[#4331](https://github.com/PointCloudLibrary/pcl/pull/4331)] 128* Improve PCD read performance (more than 50%) by reusing `istringstream` [[#4339](https://github.com/PointCloudLibrary/pcl/pull/4339)] 129* **[new feature]** Enable Real Sense 2 grabber for all platforms [[#4471](https://github.com/PointCloudLibrary/pcl/pull/4471)] 130* Throw error if the device bluffs about its capability [[#4141](https://github.com/PointCloudLibrary/pcl/pull/4141)] 131* Fix crash in Dinast Grabber due to bad initialization of device handle [[#4484](https://github.com/PointCloudLibrary/pcl/pull/4484)] 132* PLY face definition accepts uint fields as well [[#4492](https://github.com/PointCloudLibrary/pcl/pull/4492)] 133* Prevent segfault in vtk2mesh [[#4581](https://github.com/PointCloudLibrary/pcl/pull/4581)] 134* Prevent exception in PCDReader for misformed PCD files [[#4566](https://github.com/PointCloudLibrary/pcl/pull/4566)] 135* Enable arbitary size Indices for Octree module [[#4350](https://github.com/PointCloudLibrary/pcl/pull/4350)] 136* Fix addition of Carriage Return to PCD files. [[#4727](https://github.com/PointCloudLibrary/pcl/pull/4727)] 137* Support Ensenso SDK 3.0 for ensenso_grabber [[#4751](https://github.com/PointCloudLibrary/pcl/pull/4751)] 138* Specify no face elements in PLY files (from point cloud) to make them interoperable with VTK [[#4774](https://github.com/PointCloudLibrary/pcl/pull/4774)] 139 140#### libpcl_kdtree: 141 142* **[API break]** KdTree: handle 0 or negative k for nearestKSearch [[#4430](https://github.com/PointCloudLibrary/pcl/pull/4430)] 143 144#### libpcl_ml: 145 146* Fix un-initialized centroids bug (k-means) [[#4570](https://github.com/PointCloudLibrary/pcl/pull/4570)] 147 148#### libpcl_octree: 149 150* Enable arbitary size Indices for Octree module [[#4350](https://github.com/PointCloudLibrary/pcl/pull/4350)] 151* Fix problems in octree search functions when using dynamic depth [[#4657](https://github.com/PointCloudLibrary/pcl/pull/4657)] 152* **[ABI break]** Octree2BufBase: Fix bug that contents from previous buffer appear in current buffer [[#4642](https://github.com/PointCloudLibrary/pcl/pull/4642)] 153 154#### libpcl_outofcore: 155 156* Fix compile issue due to missing include under MSVC 2019 [[#4755](https://github.com/PointCloudLibrary/pcl/pull/4755)] 157 158#### libpcl_recognition: 159 160* **[deprecation]** Add deprecation for incorrectly installed headers [[#4650](https://github.com/PointCloudLibrary/pcl/pull/4650)] 161 162#### libpcl_registration: 163 164* **[ABI break]** Refactoring and Bugfix of NDT [[#4180](https://github.com/PointCloudLibrary/pcl/pull/4180)] 165* **[API break][behavior change]** Don't move, or copy ICP [[#4167](https://github.com/PointCloudLibrary/pcl/pull/4167)] 166* **[deprecation]** Deprecate `TransformationEstimationDQ` in favor of `TransformationEstimationDualQuaternion` [[#4425](https://github.com/PointCloudLibrary/pcl/pull/4425)] 167* Fix force no recompute [[#4535](https://github.com/PointCloudLibrary/pcl/pull/4535)] 168* Skip non-finite points for Pyramid Feature Matching [[#4711](https://github.com/PointCloudLibrary/pcl/pull/4711)] 169 170#### libpcl_sample_consensus: 171 172* **[ABI break]** Allow user to apply arbitrary constraint on models in sample consensus [[#4260](https://github.com/PointCloudLibrary/pcl/pull/4260)] 173* Improve logging errors during sample consensus model registration [[#4381](https://github.com/PointCloudLibrary/pcl/pull/4381)] 174* **[new feature]** Add SIMD implementations to some countWithinDistance functions [[#3519](https://github.com/PointCloudLibrary/pcl/pull/3519)] 175* Faster sample consensus functions [[#4424](https://github.com/PointCloudLibrary/pcl/pull/4424)] 176* Fix and improve MLESAC [[#4575](https://github.com/PointCloudLibrary/pcl/pull/4575)] 177* Improve logging in module `sample_consensus` [[#4261](https://github.com/PointCloudLibrary/pcl/pull/4261)] 178 179#### libpcl_search: 180 181* Faster organized search [[#4496](https://github.com/PointCloudLibrary/pcl/pull/4496)] 182* Add access to boxSearch [[#4282](https://github.com/PointCloudLibrary/pcl/pull/4282)] 183 184#### libpcl_segmentation: 185 186* **[deprecation]** Deprecate unused `max_label` in `extractLabeledEuclideanClusters` [[#4105](https://github.com/PointCloudLibrary/pcl/pull/4105)] 187* Fix the dotproduct calculation in `extractEuclideanClusters` for smooth surfaces [[#4162](https://github.com/PointCloudLibrary/pcl/pull/4162)] 188* Make euclidean clustering with normals faster [[#4551](https://github.com/PointCloudLibrary/pcl/pull/4551)] 189 190#### libpcl_surface: 191 192* **[ABI break]** Enabled multithreading in Poisson surface reconstruction [[#4332](https://github.com/PointCloudLibrary/pcl/pull/4332)] 193* Add stdlib header for malloc in poisson (bugfix for gcc-5) [[#4376](https://github.com/PointCloudLibrary/pcl/pull/4376)] 194* Always update counter and prevent overflow access in poisson4 octree [[#4316](https://github.com/PointCloudLibrary/pcl/pull/4316)] 195* Add missing include to nurbs_solve_umfpack.cpp [[#4571](https://github.com/PointCloudLibrary/pcl/pull/4571)] 196* **[deprecation]** MLS: correct typo in `principle` by using `principal` instead [[#4505](https://github.com/PointCloudLibrary/pcl/pull/4505)] 197 198#### libpcl_visualization: 199 200* Add support for VTK 9 [[#4262](https://github.com/PointCloudLibrary/pcl/pull/4262)] 201* **[new feature]** add ellipsoid shape to pcl_visualizer [[#4531](https://github.com/PointCloudLibrary/pcl/pull/4531)] 202 203#### PCL Apps: 204 205* **[removal]** Remove unused code in persistence_utils.h [[#4500](https://github.com/PointCloudLibrary/pcl/pull/4500)] 206* **[deprecation]** pyramidal klt: switch keypoints_status_ to int vector [[#4681](https://github.com/PointCloudLibrary/pcl/pull/4681)] 207 208#### PCL Docs: 209 210* Update documentation to be coherent with the style guide [[#4771](https://github.com/PointCloudLibrary/pcl/pull/4771)] 211 212#### PCL Tutorials: 213 214* Replace PassThrough with removeNaNFromPointCloud in 3 tutorials [[#4760](https://github.com/PointCloudLibrary/pcl/pull/4760)] 215 216#### PCL Tools: 217 218* Fix virtual scanner [[#4730](https://github.com/PointCloudLibrary/pcl/pull/4730)] 219 220#### CI: 221 222* Make windows build on c:\ drive to fix out-of-disk-space errors [[#4382](https://github.com/PointCloudLibrary/pcl/pull/4382)] 223* **[new feature]** Use windows docker image in CI. [[#4426](https://github.com/PointCloudLibrary/pcl/pull/4426)] 224 225## = 1.11.1 (13.08.2020) = 226 227Apart from the usual serving of bug-fixes and speed improvements, PCL 1.11.1 brings in 228better support for CUDA, more uniform behavior in code as well as cmake, and an 229experimental feature: `functor_filter`. 230 231### Notable changes 232 233**New features** *added to PCL* 234 235* **[ci]** Add support for CUDA in CI [[#4101](https://github.com/PointCloudLibrary/pcl/pull/4101)] 236* **[common]** Add always-unsigned index type `uindex_t` dependent on `index_t` [[#4205](https://github.com/PointCloudLibrary/pcl/pull/4205)] 237* **[filters]** Add a filter accepting a functor to reduce boiler plate code for simple filters [[#3890](https://github.com/PointCloudLibrary/pcl/pull/3890)] 238 239### Changes grouped by module 240 241#### CMake: 242 243* Update `pcl_find_boost` to allow compilation with Boost 1.73 and 1.72 [[#4080](https://github.com/PointCloudLibrary/pcl/pull/4080)] 244* Fix NSIS Template for NSIS3 [[#4093](https://github.com/PointCloudLibrary/pcl/pull/4093)] 245* Add option to choose `pcl::index_t` while compiling [[#4166](https://github.com/PointCloudLibrary/pcl/pull/4166)] 246* Fix name warnings for PCAP, libusb and Ensenso. [[#4182](https://github.com/PointCloudLibrary/pcl/pull/4182)] 247* Fixes compile error on MSVC by disabling Whole Program Optimization [[#4197](https://github.com/PointCloudLibrary/pcl/pull/4197)] 248 249#### libpcl_common: 250 251* Remove use of dynamic allocation in `GaussianKernel::convolve{Rows,Cols}` [[#4092](https://github.com/PointCloudLibrary/pcl/pull/4092)] 252* Replace usage of `std::vector<int>` with `Indices` [[#3989](https://github.com/PointCloudLibrary/pcl/pull/3989)] 253* Update `PointCloud` to conform to requirements of `ReversibleContainer` [[#3980](https://github.com/PointCloudLibrary/pcl/pull/3980)] 254* **[new feature]** Add always-unsigned index type `uindex_t` dependent on `index_t` [[#4205](https://github.com/PointCloudLibrary/pcl/pull/4205)] 255* Adding `data` member function to `PointCloud` [[#4216](https://github.com/PointCloudLibrary/pcl/pull/4216)] 256* Switch `int` to `index_t` for field index variables in `pclBase`, add `pcl::UNAVAILABLE` for same [[#4211](https://github.com/PointCloudLibrary/pcl/pull/4211)] 257* Added `resize` with 2 arguments to `PointCloud` [[#4225](https://github.com/PointCloudLibrary/pcl/pull/4225)] 258* Adding `max_size` to PointCloud [[#4254](https://github.com/PointCloudLibrary/pcl/pull/4254)] 259* Support multiple arguments in `pcl::utils::ignore()` [[#4269](https://github.com/PointCloudLibrary/pcl/pull/4269)] 260 261#### libpcl_features: 262 263* Fix feature histogram constructor bug [[#4234](https://github.com/PointCloudLibrary/pcl/pull/4234)] 264* Fix regression in Organized Edge Detection (introduced in PCL 1.10.1) [[#4311](https://github.com/PointCloudLibrary/pcl/pull/4311)] 265 266#### libpcl_filters: 267 268* reduce computations involved in iterating over the pointcloud for `FastBilateral{OMP}` [[#4134](https://github.com/PointCloudLibrary/pcl/pull/4134)] 269* **[new feature]** Add a filter accepting a functor to reduce boiler plate code for simple filters [[#3890](https://github.com/PointCloudLibrary/pcl/pull/3890)] 270* Refatoring VoxelGridCovariance to make it multi-thread safe (and more) [[#4251](https://github.com/PointCloudLibrary/pcl/pull/4251)] 271 272#### libpcl_gpu: 273 274* Replace volatile shared memory with shfl_sync in KNNSearch [[#4306](https://github.com/PointCloudLibrary/pcl/pull/4306)] 275* Fix octree radiusSearch [[#4146](https://github.com/PointCloudLibrary/pcl/pull/4146)] 276 277#### libpcl_io: 278 279* Better conversion of depth data + focal length into X,Y,Z point data [[#4128](https://github.com/PointCloudLibrary/pcl/pull/4128)] 280* Add iterator include for back_iterator to support VS2019 [[#4319](https://github.com/PointCloudLibrary/pcl/pull/4319)] 281 282#### libpcl_outofcore: 283 284* Fix compile issue in OutofcoreOctreeBase::setLODFilter after switching from boost::shared_ptr to std::shared_ptr [[#4081](https://github.com/PointCloudLibrary/pcl/pull/4081)] 285 286#### libpcl_registration: 287 288* Fix bug in NDT step interval convergence criteria [[#4181](https://github.com/PointCloudLibrary/pcl/pull/4181)] 289 290#### libpcl_segmentation: 291 292* Clean FLANN includes [[#4025](https://github.com/PointCloudLibrary/pcl/pull/4025)] 293* Update angle between 2 planes to be the smallest angle between them [[#4161](https://github.com/PointCloudLibrary/pcl/pull/4161)] 294 295#### libpcl_simulation: 296 297* Don't prefix in shaders. [[#4209](https://github.com/PointCloudLibrary/pcl/pull/4209)] 298 299#### libpcl_visualization: 300 301* Fix error: misplaced deprecation attributes in `vtkVertexBufferObject{,Mapper}` [[#4079](https://github.com/PointCloudLibrary/pcl/pull/4079)] 302 303#### PCL Docs: 304 305* Fix typo in FPFH documentation, $$p_k$$ was used instead of $$p_i$$ [[#4112](https://github.com/PointCloudLibrary/pcl/pull/4112)] 306* Fix typos in PFH estimation tutorial [[#4111](https://github.com/PointCloudLibrary/pcl/pull/4111)] 307 308#### CI: 309 310* **[new feature]** Add support for CUDA in CI [[#4101](https://github.com/PointCloudLibrary/pcl/pull/4101)] 311 312## = 1.11.0 (11.05.2020) = 313 314Starting with PCL 1.11, PCL uses `std::shared_ptr` and `std::weak_ptr` instead of the 315boost smart pointers. The change leverages type aliases included with the 1.10.0 316release. PCL 1.11 also introduces `pcl::index_t` which should be used for the size 317of point types instead of `int`, `std::size_t`, etc. EOL for deprecated features 318is also explicitly mentioned in the deprecation compile time warnings 319 320### Notable changes 321 322**New features** *added to PCL* 323 324* **[common]** Provide dynamic and static pointer casts in namespace pcl to allow easy migration in future [[#3770](https://github.com/PointCloudLibrary/pcl/pull/3770)] 325* **[common]** Add `ignore` function to remove Doxygen warnings for unused arguments [[#3942](https://github.com/PointCloudLibrary/pcl/pull/3942)] 326* **[docs]** Generate TODO list [[#3937](https://github.com/PointCloudLibrary/pcl/pull/3937)] 327* Force include order via clang-format [[#3909](https://github.com/PointCloudLibrary/pcl/pull/3909)] 328* Change PCL smart pointers from `boost` to `std` [[#3750](https://github.com/PointCloudLibrary/pcl/pull/3750)] 329* **[ci]** Add pipeline for building PCL's environment docker image [[#3843](https://github.com/PointCloudLibrary/pcl/pull/3843)] 330 331**Deprecation** *of public APIs, scheduled to be removed after two minor releases* 332 333* **[common]** Remove `#undef Success` in pcl_macros.h by extracting `PCL_MAKE_ALIGNED_OPERATOR_NEW` into memory.h [[#3654](https://github.com/PointCloudLibrary/pcl/pull/3654)] 334* **[common]** Rename `point_traits.h` into `type_traits.h` [[#3698](https://github.com/PointCloudLibrary/pcl/pull/3698)] 335* **[filters]** Deprecating functions in non-speclialized Passthrough filter [[#3888](https://github.com/PointCloudLibrary/pcl/pull/3888)] 336* **[outofcore][registration]** Homogenize deprecation with PCL_DEPRECATED [[#3925](https://github.com/PointCloudLibrary/pcl/pull/3925)] 337* **[cmake][visualization]** Deprecate legacy OpenGL backend of VTK [[#4065](https://github.com/PointCloudLibrary/pcl/pull/4065)] 338 339**Removal** *of the public APIs deprecated in previous releases* 340 341* **[io][recognition][tools]** Remove very old deprecated headers [[#3906](https://github.com/PointCloudLibrary/pcl/pull/3906)] 342* **[docs]** Remove backup (and defunct) `CMakeLists.txt` [[#3915](https://github.com/PointCloudLibrary/pcl/pull/3915)] 343* Remove use of VTK_EXCLUDE_STRSTREAM_HEADERS (unavailable since VTK 6.0.0) [[#3939](https://github.com/PointCloudLibrary/pcl/pull/3939)] 344 345**Behavior changes** *in classes, apps, or tools* 346 347* **[io]** Make grabbers move-only using `unique_ptr` [[#3626](https://github.com/PointCloudLibrary/pcl/pull/3626)] 348 349**API changes** *that did not go through the proper deprecation and removal cycle* 350 351* **[io]** Make grabbers move-only using `unique_ptr` [[#3626](https://github.com/PointCloudLibrary/pcl/pull/3626)] 352* **[common]** Add `pcl::index_t`; move some type declarations from `pcl/pcl_macros.h` to `pcl/types.h` [[#3651](https://github.com/PointCloudLibrary/pcl/pull/3651)] 353* **[filters]** Clean up `Filter` and `FilterIndices`, move `indices_`/`input_` from public to protected section [[#3726](https://github.com/PointCloudLibrary/pcl/pull/3726)] 354* **[registration]** Better Generalized ICP optimizer gradient check management [[#3854](https://github.com/PointCloudLibrary/pcl/pull/3854)] 355* Change PCL smart pointers from `boost` to `std` [[#3750](https://github.com/PointCloudLibrary/pcl/pull/3750)] 356* **[registration]** Removing deprecated method `setInputCloud` from public API [[#4026](https://github.com/PointCloudLibrary/pcl/pull/4026)] 357 358**ABI changes** *that are still API compatible* 359 360* **[filters]** NormalSpaceSampling - fix bucket assignment, remove use of raw distribution pointer, unit-test rewriting [[#3862](https://github.com/PointCloudLibrary/pcl/pull/3862)] 361* **[io]** Add pcl::weak_ptr to have a single-switch move from boost:: to std:: weak pointers [[#3753](https://github.com/PointCloudLibrary/pcl/pull/3753)] 362 363### Changes grouped by module 364 365#### CMake: 366 367* Add a stamp file to build documentation once [[#3819](https://github.com/PointCloudLibrary/pcl/pull/3819)] 368* Fix compilation in OSX Catalina with OMP enabled [[#3721](https://github.com/PointCloudLibrary/pcl/pull/3721)] 369* Show proper message in CMake config for default-off modules [[#3927](https://github.com/PointCloudLibrary/pcl/pull/3927)] 370* **[deprecation]** Deprecate legacy OpenGL backend of VTK [[#4065](https://github.com/PointCloudLibrary/pcl/pull/4065)] 371 372#### libpcl_2d: 373 374* variable assigned a value which is never used [[#3857](https://github.com/PointCloudLibrary/pcl/pull/3857)] 375* Fix issue with missing templating of `Keypoint`. Fixes coming from clang-doxy [[#3898](https://github.com/PointCloudLibrary/pcl/pull/3898)] 376 377#### libpcl_common: 378 379* **[deprecation]** Remove `#undef Success` in pcl_macros.h by extracting `PCL_MAKE_ALIGNED_OPERATOR_NEW` into memory.h [[#3654](https://github.com/PointCloudLibrary/pcl/pull/3654)] 380* Fix issues with math defines on mingw-w64. [[#3756](https://github.com/PointCloudLibrary/pcl/pull/3756)] 381* **[API break]** Add `pcl::index_t`; move some type declarations from `pcl/pcl_macros.h` to `pcl/types.h` [[#3651](https://github.com/PointCloudLibrary/pcl/pull/3651)] 382* **[deprecation]** Rename `point_traits.h` into `type_traits.h` [[#3698](https://github.com/PointCloudLibrary/pcl/pull/3698)] 383* Improve `PCL_DEPRECATED` macro to include scheduled removal version [[#3808](https://github.com/PointCloudLibrary/pcl/pull/3808)] 384* Fix erroneous PCL version in deprecated message [[#3824](https://github.com/PointCloudLibrary/pcl/pull/3824)] 385* Select OpenMP data sharing mode based on specific GCC versions [[#3823](https://github.com/PointCloudLibrary/pcl/pull/3823)] 386* Define `PointIndices` based on the global `Indices` type alias [[#3822](https://github.com/PointCloudLibrary/pcl/pull/3822)] 387* Fix warning C4067: unexpected tokens following preprocessor directive- expected a newline [[#3871](https://github.com/PointCloudLibrary/pcl/pull/3871)] 388* **[new feature]** Provide dynamic and static pointer casts in namespace pcl to allow easy migration in future [[#3770](https://github.com/PointCloudLibrary/pcl/pull/3770)] 389* **[new feature]** Add `ignore` function to remove Doxygen warnings for unused arguments [[#3942](https://github.com/PointCloudLibrary/pcl/pull/3942)] 390* Fix excessive warnings on MSVC [[#3964](https://github.com/PointCloudLibrary/pcl/pull/3964)] 391* Refactoring `PCL_DEPRECATED` macro [[#3945](https://github.com/PointCloudLibrary/pcl/pull/3945)] 392* Correcting type mismatch [[#3967](https://github.com/PointCloudLibrary/pcl/pull/3967)] 393* Removed empty file [[#4019](https://github.com/PointCloudLibrary/pcl/pull/4019)] 394 395#### libpcl_filters: 396 397* Clean up code duplication in `FilterIndices` derived classes [[#3807](https://github.com/PointCloudLibrary/pcl/pull/3807)] 398* **[API break]** Clean up `Filter` and `FilterIndices`, move `indices_`/`input_` from public to protected section [[#3726](https://github.com/PointCloudLibrary/pcl/pull/3726)] 399* **[deprecation]** Deprecating functions in non-speclialized Passthrough filter [[#3888](https://github.com/PointCloudLibrary/pcl/pull/3888)] 400* **[ABI break]** NormalSpaceSampling - fix bucket assignment, remove use of raw distribution pointer, unit-test rewriting [[#3862](https://github.com/PointCloudLibrary/pcl/pull/3862)] 401* Optimize VoxelGrid Filter [[#3853](https://github.com/PointCloudLibrary/pcl/pull/3853)] 402* Fix error due to multiple declarations of template member function specializations in convolution [[#3971](https://github.com/PointCloudLibrary/pcl/pull/3971)] 403 404#### libpcl_io: 405 406* **[ABI break][API break][behavior change]** Make grabbers move-only using `unique_ptr` [[#3626](https://github.com/PointCloudLibrary/pcl/pull/3626)] 407* **[removal]** Remove very old deprecated headers [[#3906](https://github.com/PointCloudLibrary/pcl/pull/3906)] 408* **[ABI break]** Add pcl::weak_ptr to have a single-switch move from boost:: to std:: weak pointers [[#3753](https://github.com/PointCloudLibrary/pcl/pull/3753)] 409* Use pcl::io::raw_read instead of direct call to POSIX function read [[#4062](https://github.com/PointCloudLibrary/pcl/pull/4062)] 410 411#### libpcl_octree: 412 413* Fix a memory leak in `OctreeBase::operator=` [[#3787](https://github.com/PointCloudLibrary/pcl/pull/3787)] 414 415#### libpcl_outofcore: 416 417* **[deprecation]** Homogenize deprecation with PCL_DEPRECATED [[#3925](https://github.com/PointCloudLibrary/pcl/pull/3925)] 418 419#### libpcl_people: 420 421* Missing include on windows [[#3791](https://github.com/PointCloudLibrary/pcl/pull/3791)] 422 423#### libpcl_recognition: 424 425* **[removal]** Remove very old deprecated headers [[#3906](https://github.com/PointCloudLibrary/pcl/pull/3906)] 426 427#### libpcl_registration: 428 429* **[API break]** Better Generalized ICP optimizer gradient check management [[#3854](https://github.com/PointCloudLibrary/pcl/pull/3854)] 430* **[deprecation]** Homogenize deprecation with PCL_DEPRECATED [[#3925](https://github.com/PointCloudLibrary/pcl/pull/3925)] 431* **[API break]** Removing deprecated method `setInputCloud` from public API [[#4026](https://github.com/PointCloudLibrary/pcl/pull/4026)] 432 433#### libpcl_sample_consensus: 434 435* Better performance, error handling and other improvements in SAC classes [[#3642](https://github.com/PointCloudLibrary/pcl/pull/3642)] 436* Use better types for indices: `int` -> `index_t`, `std::vector<int>` ->`Indices` [[#3835](https://github.com/PointCloudLibrary/pcl/pull/3835)] 437 438#### libpcl_search: 439 440* Use better types for indices: `int` -> `index_t`, `std::vector<int>` ->`Indices` [[#3840](https://github.com/PointCloudLibrary/pcl/pull/3840)] 441* Add include for `pcl::isFinite` for compilation on VS2019 [[#4056](https://github.com/PointCloudLibrary/pcl/pull/4056)] 442 443#### libpcl_segmentation: 444 445* Check and warn user about missing normals in `OrganizedMultiPlaneSegmentation` [[#3861](https://github.com/PointCloudLibrary/pcl/pull/3861)] 446 447#### libpcl_surface: 448 449* Fix error due to multiple declarations of template member function specializations in Poisson4 [[#3972](https://github.com/PointCloudLibrary/pcl/pull/3972)] 450* Reduce time taken in `TextureMapping::sortFacesByCamera` from `O(faces*points)` to `O(faces)` [[#3981](https://github.com/PointCloudLibrary/pcl/pull/3981)] 451 452#### libpcl_visualization: 453 454* Minor fix for converting unorganized PointClouds to VTK data [[#3988](https://github.com/PointCloudLibrary/pcl/pull/3988)] 455* Fixes #4001 and #3452. [[#4017](https://github.com/PointCloudLibrary/pcl/pull/4017)] 456* **[deprecation]** Deprecate legacy OpenGL backend of VTK [[#4065](https://github.com/PointCloudLibrary/pcl/pull/4065)] 457* Fix rendering of points. [[#4067](https://github.com/PointCloudLibrary/pcl/pull/4067)] 458 459#### PCL Docs: 460 461* Fix Doxygen warnings unrelated to documentation -- Part 1 [[#3701](https://github.com/PointCloudLibrary/pcl/pull/3701)] 462* update automatic code formatting info to clang-format [[#3845](https://github.com/PointCloudLibrary/pcl/pull/3845)] 463* replace formula with math [[#3846](https://github.com/PointCloudLibrary/pcl/pull/3846)] 464* Fix PCL_DEPRECATED usage in doxygen for a proper Deprecation List in documentation [[#3905](https://github.com/PointCloudLibrary/pcl/pull/3905)] 465* **[removal]** Remove backup (and defunct) `CMakeLists.txt` [[#3915](https://github.com/PointCloudLibrary/pcl/pull/3915)] 466* **[new feature]** Generate TODO list [[#3937](https://github.com/PointCloudLibrary/pcl/pull/3937)] 467* Improve output to match the text in tutorial by adding a newline [[#4029](https://github.com/PointCloudLibrary/pcl/pull/4029)] 468* Fix typo in region growing tutorial [[#4052](https://github.com/PointCloudLibrary/pcl/pull/4052)] 469* Add information regarding header include order [[#4020](https://github.com/PointCloudLibrary/pcl/pull/4020)] 470 471#### PCL Tutorials: 472 473* Add a unit test for ICP and modernize tutorial code [[#3628](https://github.com/PointCloudLibrary/pcl/pull/3628)] 474 475#### PCL Examples: 476 477* Remove unnecessary includes in examples [[#4071](https://github.com/PointCloudLibrary/pcl/pull/4071)] 478 479#### PCL Tools: 480 481* **[removal]** Remove very old deprecated headers [[#3906](https://github.com/PointCloudLibrary/pcl/pull/3906)] 482 483#### CI: 484 485* Temporary fix for skipping of certain tests [[#3789](https://github.com/PointCloudLibrary/pcl/pull/3789)] 486* Simplify Ubuntu CI using matrix strategy [[#3783](https://github.com/PointCloudLibrary/pcl/pull/3783)] 487* Strip leading tag in commit message from changelog [[#3847](https://github.com/PointCloudLibrary/pcl/pull/3847)] 488* Shift to clang-format-10 to resolve bug in clang-format-{7-9} [[#3895](https://github.com/PointCloudLibrary/pcl/pull/3895)] 489* **[new feature]** Add pipeline for building PCL's environment docker image [[#3843](https://github.com/PointCloudLibrary/pcl/pull/3843)] 490* Improve docker ci for other PRs [[#4051](https://github.com/PointCloudLibrary/pcl/pull/4051)] 491* Remove unused variables from exceptions [[#4064](https://github.com/PointCloudLibrary/pcl/pull/4064)] 492* Removing hardcoded version number from tutorial CI [[#4058](https://github.com/PointCloudLibrary/pcl/pull/4058)] 493 494## *= 1.10.1 (18.03.2020) =* 495 496### Notable changes 497 498**Deprecation** *of public APIs, scheduled to be removed after two minor releases* 499 500* **[common]** Deprecate several `PointWithViewpoint` ctors; make ctors more uniform in PCL point types [[#3597](https://github.com/PointCloudLibrary/pcl/pull/3597)] 501 502**Removal** *of the public APIs deprecated in previous releases* 503 504* **[common]** Remove deprecated checks for `USE_ROS` macro [[#3690](https://github.com/PointCloudLibrary/pcl/pull/3690)] 505 506**Behavior changes** *in classes, apps, or tools* 507 508* **[tools]** Continue on PCD load failure in `pcl_train_linemod_template` [[#3652](https://github.com/PointCloudLibrary/pcl/pull/3652)] 509 510### Changes grouped by module 511 512#### CMake: 513 514* Fix CMake grouping of tools targets [[#3709](https://github.com/PointCloudLibrary/pcl/pull/3709)] 515* Enable `PCL_ONLY_CORE_POINT_TYPES` in mingw builds [[#3694](https://github.com/PointCloudLibrary/pcl/pull/3694)] 516* Downgrade RSSDK2 warning message to status [[#3683](https://github.com/PointCloudLibrary/pcl/pull/3683)] 517* Fix test targets arguments for MSVC [[#3636](https://github.com/PointCloudLibrary/pcl/pull/3636)] 518* Remove duplicate `/bigobj` for MSVC [[#3604](https://github.com/PointCloudLibrary/pcl/pull/3604)] 519 520#### libpcl_common: 521 522* Better PointType ctor and reduced warnings in `register_point_struct.h` [[#3732](https://github.com/PointCloudLibrary/pcl/pull/3732)] 523* **[removal]** Remove deprecated checks for `USE_ROS` macro [[#3690](https://github.com/PointCloudLibrary/pcl/pull/3690)] 524* Replace `dirent` with `boost::filesystem` [[#3676](https://github.com/PointCloudLibrary/pcl/pull/3676)] 525* Fix code accidentally casting away const-ness [[#3648](https://github.com/PointCloudLibrary/pcl/pull/3648)] 526* Fix compilation of CUDA code on Windows [[#3634](https://github.com/PointCloudLibrary/pcl/pull/3634)] 527* Remove undefined behavior and add stricter checks in console arg parsing [[#3613](https://github.com/PointCloudLibrary/pcl/pull/3613)] 528* **[deprecation]** Deprecate several `PointWithViewpoint` ctors; make ctors more uniform in PCL point types [[#3597](https://github.com/PointCloudLibrary/pcl/pull/3597)] 529 530#### libpcl_cuda: 531 532* Fix memory leaks in CUDA apps [[#3587](https://github.com/PointCloudLibrary/pcl/pull/3587)] 533* Fix compilation of CUDA/GPU modules [[#3576](https://github.com/PointCloudLibrary/pcl/pull/3576)] 534 535#### libpcl_features: 536 537* Add precompiled `computeApproximateCovariances`; fix compilation error for the same [[#3711](https://github.com/PointCloudLibrary/pcl/pull/3711)] 538* Fix vector initialization in `NormalEstimationOMP` [[#3614](https://github.com/PointCloudLibrary/pcl/pull/3614)] 539* Fix indexing bug in `IntegralImageNormalEstimation` [[#3574](https://github.com/PointCloudLibrary/pcl/pull/3574)] 540 541#### libpcl_filters: 542 543* Set `is_dense` based on actual cloud contents in `removeNaNNormalsFromPointCloud()` [[#3685](https://github.com/PointCloudLibrary/pcl/pull/3685)] 544 545#### libpcl_gpu: 546 547* Fix compile error in KinFuLS `initRegistration` [[#3737](https://github.com/PointCloudLibrary/pcl/pull/3737)] 548* Fix illegal memory acces in CUDA Octree builder [[#3627](https://github.com/PointCloudLibrary/pcl/pull/3627)] 549* Fix compile issue in `people_app` [[#3618](https://github.com/PointCloudLibrary/pcl/pull/3618)] 550* Fix compilation of CUDA/GPU modules [[#3576](https://github.com/PointCloudLibrary/pcl/pull/3576)] 551 552#### libpcl_io: 553 554* Fix `if/ifdef` WIN32 issues [[#3668](https://github.com/PointCloudLibrary/pcl/pull/3668)] 555* Add `Grabber::toggle()` method [[#3615](https://github.com/PointCloudLibrary/pcl/pull/3615)] 556* Close the correct file in `pcl::io::savePLYFileBinary` [[#3601](https://github.com/PointCloudLibrary/pcl/pull/3601)] 557* Fix entropy range encoding in octree-based pointcloud compression [[#3579](https://github.com/PointCloudLibrary/pcl/pull/3579)] 558 559#### libpcl_surface: 560 561* Add default initialization of grid resolution in `MarchingCubes` [[#3718](https://github.com/PointCloudLibrary/pcl/pull/3718)] 562 563#### PCL Apps: 564 565* Fix `if/ifdef` WIN32 issues [[#3668](https://github.com/PointCloudLibrary/pcl/pull/3668)] 566 567#### PCL Docs: 568 569* Fix missing standard includes, reduce warnings in doxygen-enabled builds [[#3755](https://github.com/PointCloudLibrary/pcl/pull/3755)] 570 571#### PCL Tutorials: 572 573* Fix documentation for point cloud stream compression executable name [[#3693](https://github.com/PointCloudLibrary/pcl/pull/3693)] 574* Fix segfault in NARF keypoint extraction tutorial [[#3623](https://github.com/PointCloudLibrary/pcl/pull/3623)] 575 576#### PCL Tools: 577 578* Use linemod member method to save templates [[#3691](https://github.com/PointCloudLibrary/pcl/pull/3691)] 579* **[behavior change]** Continue on PCD load failure in `pcl_train_linemod_template` [[#3652](https://github.com/PointCloudLibrary/pcl/pull/3652)] 580* Warn user about unorganized PCDs in `pcl_train_linemod_template` [[#3644](https://github.com/PointCloudLibrary/pcl/pull/3644)] 581 582 583## *= 1.10.0 (19.01.2020) =* 584 585Starting with PCL 1.10, to ensure compatibility with future PCL releases, please 586use `pcl::make_shared` and the `Class::Ptr` + `Class::ConstPtr` type-alias 587instead of using direct names like `{boost, std}::shared_ptr` or `{boost, 588std}::make_shared`. There is also `pcl::shared_ptr` which offers the same 589abstraction for non-PCL types. 590 591### `New Features:` 592 593*Newly added functionalities.* 594 595* **[sample_consensus]** Add parallel RANSAC implementation with OpenMP [[#3514](https://github.com/PointCloudLibrary/pcl/pull/3514)] 596* **[registration]** Add linear least squares version of symmetric objective function for ICP [[#3390](https://github.com/PointCloudLibrary/pcl/pull/3390)] 597* **[common]** Add concatenate operation for `PolygonMesh` [[#3316](https://github.com/PointCloudLibrary/pcl/pull/3316)] 598* **[common]** Add `emplace[_back]` to `pcl::PointCloud` [[#3207](https://github.com/PointCloudLibrary/pcl/pull/3207)] 599* **[cmake]** Add `format` compilation target that applies `clang-format` to whitelisted modules [[#3188](https://github.com/PointCloudLibrary/pcl/pull/3188)] 600* **[common]** Add `pcl::make_shared` that automatically handles aligned allocations [[#3163](https://github.com/PointCloudLibrary/pcl/pull/3163)] 601* **[modernization][cmake]** Enable C++ 14 flags [[#2690](https://github.com/PointCloudLibrary/pcl/pull/2690)] 602* **[io]** Add RSSDK 2.0 (librealsense2) grabber [[#2214](https://github.com/PointCloudLibrary/pcl/pull/2214)] 603 604### `Deprecated:` 605 606*Deprecated code scheduled to be removed after two minor releases.* 607 608* **[common]** Revert smart pointer type change in `PointCloud` and deprecate `getMapping()` [[#3563](https://github.com/PointCloudLibrary/pcl/pull/3563)] 609* **[common]** Deprecate `getFields()` with output parameter in favor of overload with return value [[#3401](https://github.com/PointCloudLibrary/pcl/pull/3401)] 610* **[recognition]** Refactor `MaskMap` and deprecate several of its methods [[#3399](https://github.com/PointCloudLibrary/pcl/pull/3399)] 611* **[common]** Deprecate `getFieldIndex()`/`getFields()` with first argument as cloud [[#3365](https://github.com/PointCloudLibrary/pcl/pull/3365)] 612* **[common]** Add `PCLPointCloud2::operator+=()` and update concatenation operation [[#3320](https://github.com/PointCloudLibrary/pcl/pull/3320)] 613* **[segmentation]** Delete unused params in `OrganizedMultiPlaneSegmentation::refine()` [[#3302](https://github.com/PointCloudLibrary/pcl/pull/3302)] 614* **[visualization]** Add new overload of `PointCloudColorHandler::getColor()` [[#3187](https://github.com/PointCloudLibrary/pcl/pull/3187)] 615* **[modernization][io]** Add `registerCallback()` overload to grabbers to support assignment of `boost::function`s with templated signatures [[#3128](https://github.com/PointCloudLibrary/pcl/pull/3128)] 616* **[surface]** Convert `MovingLeastSquaresOMP` into an alias template and deprecate [[#3119](https://github.com/PointCloudLibrary/pcl/pull/3119)] 617* **[kdtree]** Remove unnecessary FLANN includes, deprecate "kdtree/flann.h" header [[#2993](https://github.com/PointCloudLibrary/pcl/pull/2993)] 618* **[features]** Deprecate `computeRSD()` functions that take pointclouds by pointer [[#2827](https://github.com/PointCloudLibrary/pcl/pull/2827)] 619* **[modernization]** Deprecate `pcl_isnan`, `pcl_isfinite`, and `pcl_isinf` in favor of `std` methods [[#2798](https://github.com/PointCloudLibrary/pcl/pull/2798), [#3457](https://github.com/PointCloudLibrary/pcl/pull/3457)] 620* **[filters]** Restructure and add functionality to filters templated on `PCLPointCloud2` [[#3483](https://github.com/PointCloudLibrary/pcl/pull/3483), [#3500](https://github.com/PointCloudLibrary/pcl/pull/3500)] 621 622### `Removed:` 623 624*Removal of deprecated code.* 625 626* **[segmentation]** Remove `SupervoxelClustering::getColoredVoxelCloud()` [[#3469](https://github.com/PointCloudLibrary/pcl/pull/3469)] 627* **[io]** Remove FZ-API [[#2747](https://github.com/PointCloudLibrary/pcl/pull/2747)] 628 629### `Behavioral changes:` 630 631*Changes in the expected default behavior.* 632 633* **[sample_consensus]** Set default min and max angle for SAC cone models [[#3466](https://github.com/PointCloudLibrary/pcl/pull/3466)] 634* **[tools]** Do not discard data fields in `pcl_uniform_sampling` tool [[#3461](https://github.com/PointCloudLibrary/pcl/pull/3461)] 635* **[common]** Disable colored output for non-interactive terminals [[#3310](https://github.com/PointCloudLibrary/pcl/pull/3310)] 636* **[io]** Add support for device URI in `OpenNI2Grabber` constructor [[#3238](https://github.com/PointCloudLibrary/pcl/pull/3238)] 637* **[common]** Enforce right-hand-rule on PCA eigenvectors [[#2946](https://github.com/PointCloudLibrary/pcl/pull/2946)] 638* **[visualization]** Improve c/C command in `PCLVisualizer` [[#2926](https://github.com/PointCloudLibrary/pcl/pull/2926)] 639* **[registration]** Fix ICP misbehavior in the "failure after maximum iterations" mode [[#2892](https://github.com/PointCloudLibrary/pcl/pull/2892)] 640* **[common]** Initialize curvature in `PointNormal` default constructor [[#2674](https://github.com/PointCloudLibrary/pcl/pull/2674)] 641 642### `API changes:` 643 644*Changes to the API which didn't go through the proper deprecation and removal cycle.* 645 646* **[gpu]** Replace `uint64_type` by `std::uint64_t` [[#3435](https://github.com/PointCloudLibrary/pcl/pull/3435)] 647* **[modernization]** Migrate from `boost::tuple` to `std::tuple` [[#3250](https://github.com/PointCloudLibrary/pcl/pull/3250)] 648* **[modernization]** Migrate `boost::function` to `std::function` [[#3079](https://github.com/PointCloudLibrary/pcl/pull/3079)] 649 650### `ABI changes:` 651 652*Changes that cause ABI incompatibility but are still API compatible.* 653 654* **[modernization]** Migrate from `boost::unordered_map` to `std::unordered_map` [[#3107](https://github.com/PointCloudLibrary/pcl/pull/3107)] 655* **[modernization]** Migrate to standard library type traits [[#3105](https://github.com/PointCloudLibrary/pcl/pull/3105)] 656* **[visualization]** Minor refactoring of `pcl::visualization::Camera` and related functions [[#2901](https://github.com/PointCloudLibrary/pcl/pull/2901)] 657* **[modernization]** Migrate from `boost::thread` to `std::thread` [[#3060](https://github.com/PointCloudLibrary/pcl/pull/3060), [#3094](https://github.com/PointCloudLibrary/pcl/pull/3094)] 658* **[modernization]** Prefer using `Ptr` typedefs and migrate to `std` smart pointers in non-API code [[#2804](https://github.com/PointCloudLibrary/pcl/pull/2804), [#2821](https://github.com/PointCloudLibrary/pcl/pull/2821), [#2823](https://github.com/PointCloudLibrary/pcl/pull/2823), [#2929](https://github.com/PointCloudLibrary/pcl/pull/2929), [#3061](https://github.com/PointCloudLibrary/pcl/pull/3061), [#3141](https://github.com/PointCloudLibrary/pcl/pull/3141), [#3142](https://github.com/PointCloudLibrary/pcl/pull/3142), [#3217](https://github.com/PointCloudLibrary/pcl/pull/3217), [#3474](https://github.com/PointCloudLibrary/pcl/pull/3474), [#3482](https://github.com/PointCloudLibrary/pcl/pull/3482), [#3486](https://github.com/PointCloudLibrary/pcl/pull/3486), [#3489](https://github.com/PointCloudLibrary/pcl/pull/3489), [#3497](https://github.com/PointCloudLibrary/pcl/pull/3497)] 659* **[modernization]** Migrate to `std` random number generators [[#2956](https://github.com/PointCloudLibrary/pcl/pull/2956), [#2962](https://github.com/PointCloudLibrary/pcl/pull/2962), [#3069](https://github.com/PointCloudLibrary/pcl/pull/3069)] 660* **[filters]** Restructure and add functionality to filters templated on `PCLPointCloud2` [[#3483](https://github.com/PointCloudLibrary/pcl/pull/3483), [#3500](https://github.com/PointCloudLibrary/pcl/pull/3500)] 661 662### `Migration to C++14 and code modernization:` 663 664* Convert `boost::shared_ptr` to `pcl::shared_ptr` [[#3546](https://github.com/PointCloudLibrary/pcl/pull/3546)] 665* Better indices in loops [[#3543](https://github.com/PointCloudLibrary/pcl/pull/3543)] 666* Replace raw arrays with `std::vector`s in `RangeImageBorderExtractor` [[#3533](https://github.com/PointCloudLibrary/pcl/pull/3533)] 667* Remove redundant calls to `std::string::c_str()` [[#3517](https://github.com/PointCloudLibrary/pcl/pull/3517)] 668* Convert `pcl::int_t` to `std::int_t` [[#3422](https://github.com/PointCloudLibrary/pcl/pull/3422)] 669* Remove deprecated `throw` specifier [[#3384](https://github.com/PointCloudLibrary/pcl/pull/3384)] 670* Prefer `numeric_limits` from standard library [[#3360](https://github.com/PointCloudLibrary/pcl/pull/3360)] 671* Add missing `std::move` or `const` reference for parameters [[#3253](https://github.com/PointCloudLibrary/pcl/pull/3253)] 672* **[api]** Migrate from `boost::tuple` to `std::tuple` [[#3250](https://github.com/PointCloudLibrary/pcl/pull/3250)] 673* Migrate from `boost::bind` to `std::bind` [[#3249](https://github.com/PointCloudLibrary/pcl/pull/3249)] 674* Use transparent functors [[#3224](https://github.com/PointCloudLibrary/pcl/pull/3224)] 675* Add `cloexec` option to `fopen` [[#3223](https://github.com/PointCloudLibrary/pcl/pull/3223)] 676* **[deprecation]** Add `registerCallback()` overload to grabbers to support assignment of `boost::function`s with templated signatures [[#3128](https://github.com/PointCloudLibrary/pcl/pull/3128)] 677* **[abi]** Migrate from `boost::unordered_map` to `std::unordered_map` [[#3107](https://github.com/PointCloudLibrary/pcl/pull/3107)] 678* **[abi]** Migrate to standard library type traits [[#3105](https://github.com/PointCloudLibrary/pcl/pull/3105)] 679* Remove dead stores [[#3095](https://github.com/PointCloudLibrary/pcl/pull/3095)] 680* **[api]** Migrate `boost::function` to `std::function` [[#3079](https://github.com/PointCloudLibrary/pcl/pull/3079)] 681* Remove redundant member field initialization [[#3070](https://github.com/PointCloudLibrary/pcl/pull/3070)] 682* Prefer returning braced init list [[#3039](https://github.com/PointCloudLibrary/pcl/pull/3039)] 683* Prefer `empty()` over `size()` when checking container state [[#3033](https://github.com/PointCloudLibrary/pcl/pull/3033)] 684* Prefer combined assignment operators [[#3030](https://github.com/PointCloudLibrary/pcl/pull/3030)] 685* Remove unnecessary `nullptr` checks before `delete` [[#2990](https://github.com/PointCloudLibrary/pcl/pull/2990)] 686* Improve readability of string comparisons [[#2986](https://github.com/PointCloudLibrary/pcl/pull/2986)] 687* Prefer `std::isnan` over `!=` comparison trick [[#2977](https://github.com/PointCloudLibrary/pcl/pull/2977)] 688* Remove deprecated Boost Filesystem code [[#2966](https://github.com/PointCloudLibrary/pcl/pull/2966)] 689* Migrate from `BOOST_STATIC_ASSERT` and `EIGEN_ASSERT` to `static_assert` [[#2951](https://github.com/PointCloudLibrary/pcl/pull/2951)] 690* Prefer `std::log2` over custom implementation [[#2950](https://github.com/PointCloudLibrary/pcl/pull/2950)] 691* Migrate from `boost::this_thread::sleep` to `std::this_thread::sleep_for` [[#2921](https://github.com/PointCloudLibrary/pcl/pull/2921)] 692* Fix bug prone loop variables that are too small [[#2829](https://github.com/PointCloudLibrary/pcl/pull/2829)] 693* Migrate from `boost::math::isnan` to `std::isnan` [[#2819](https://github.com/PointCloudLibrary/pcl/pull/2819)] 694* Fix "variableScope" hints from CppCheck [[#2807](https://github.com/PointCloudLibrary/pcl/pull/2807)] 695* Improve performance of finding single character in strings [[#2794](https://github.com/PointCloudLibrary/pcl/pull/2794)] 696* Prefer using `bool` literals [[#2793](https://github.com/PointCloudLibrary/pcl/pull/2793)] 697* Simplify boolean expressions [[#2790](https://github.com/PointCloudLibrary/pcl/pull/2790)] 698* Prefer raw strings over escaped strings [[#2789](https://github.com/PointCloudLibrary/pcl/pull/2789)] 699* Prefer `std::to_string` over `boost::lexical_cast` for integer conversions [[#2785](https://github.com/PointCloudLibrary/pcl/pull/2785)] 700* Prefer `emplace_back` over `push_back` [[#2784](https://github.com/PointCloudLibrary/pcl/pull/2784)] 701* Remove unnecessary void parameter [[#2780](https://github.com/PointCloudLibrary/pcl/pull/2780)] 702* Use `=delete` to disable special members [[#2779](https://github.com/PointCloudLibrary/pcl/pull/2779)] 703* Fix access to static members through instances [[#2776](https://github.com/PointCloudLibrary/pcl/pull/2776)] 704* Remove usage of deprecated `register`storage class specifier [[#2761](https://github.com/PointCloudLibrary/pcl/pull/2761)] 705* Remove redundant string initialization with `""` [[#2758](https://github.com/PointCloudLibrary/pcl/pull/2758)] 706* Add `cloexec` option to `fopen` [[#2755](https://github.com/PointCloudLibrary/pcl/pull/2755)] 707* Replace deprecated C library headers [[#2737](https://github.com/PointCloudLibrary/pcl/pull/2737)] 708* Modernize code to use `override` [[#2728](https://github.com/PointCloudLibrary/pcl/pull/2728)] 709* Prefer standard `[[deprecated]]` attribute [[#2699](https://github.com/PointCloudLibrary/pcl/pull/2699)] 710* **[new-feature]** Enable C++ 14 flags [[#2690](https://github.com/PointCloudLibrary/pcl/pull/2690)] 711* Revise arguments which were being passed by value instead of as a reference [[#2668](https://github.com/PointCloudLibrary/pcl/pull/2668)] 712* Fix "knownConditionTrueFalse" hints from CppCheck [[#2648](https://github.com/PointCloudLibrary/pcl/pull/2648)] 713* Fix "unreadVariable" hints from CppCheck [[#2645](https://github.com/PointCloudLibrary/pcl/pull/2645)] 714* Replace `hash_map` with `unordered_map` in 3rdparty/poisson4 [[#2640](https://github.com/PointCloudLibrary/pcl/pull/2640)] 715* Prefer lambdas over binds [[#3136](https://github.com/PointCloudLibrary/pcl/pull/3136), [#3171](https://github.com/PointCloudLibrary/pcl/pull/3171), [#3173](https://github.com/PointCloudLibrary/pcl/pull/3173), [#3178](https://github.com/PointCloudLibrary/pcl/pull/3178), [#3189](https://github.com/PointCloudLibrary/pcl/pull/3189), [#3192](https://github.com/PointCloudLibrary/pcl/pull/3192), [#3199](https://github.com/PointCloudLibrary/pcl/pull/3199), [#3209](https://github.com/PointCloudLibrary/pcl/pull/3209), [#3231](https://github.com/PointCloudLibrary/pcl/pull/3231), [#3243](https://github.com/PointCloudLibrary/pcl/pull/3243), [#3254](https://github.com/PointCloudLibrary/pcl/pull/3254)] 716* Prefer range-based for loops [[#2812](https://github.com/PointCloudLibrary/pcl/pull/2812), [#2834](https://github.com/PointCloudLibrary/pcl/pull/2834), [#2835](https://github.com/PointCloudLibrary/pcl/pull/2835), [#2836](https://github.com/PointCloudLibrary/pcl/pull/2836), [#2837](https://github.com/PointCloudLibrary/pcl/pull/2837), [#2838](https://github.com/PointCloudLibrary/pcl/pull/2838), [#2839](https://github.com/PointCloudLibrary/pcl/pull/2839), [#2840](https://github.com/PointCloudLibrary/pcl/pull/2840), [#2841](https://github.com/PointCloudLibrary/pcl/pull/2841), [#2842](https://github.com/PointCloudLibrary/pcl/pull/2842), [#2843](https://github.com/PointCloudLibrary/pcl/pull/2843), [#2844](https://github.com/PointCloudLibrary/pcl/pull/2844), [#2845](https://github.com/PointCloudLibrary/pcl/pull/2845), [#2846](https://github.com/PointCloudLibrary/pcl/pull/2846), [#2847](https://github.com/PointCloudLibrary/pcl/pull/2847), [#2848](https://github.com/PointCloudLibrary/pcl/pull/2848), [#2849](https://github.com/PointCloudLibrary/pcl/pull/2849), [#2850](https://github.com/PointCloudLibrary/pcl/pull/2850), [#2851](https://github.com/PointCloudLibrary/pcl/pull/2851), [#2853](https://github.com/PointCloudLibrary/pcl/pull/2853), [#2854](https://github.com/PointCloudLibrary/pcl/pull/2854), [#2855](https://github.com/PointCloudLibrary/pcl/pull/2855), [#2856](https://github.com/PointCloudLibrary/pcl/pull/2856), [#2857](https://github.com/PointCloudLibrary/pcl/pull/2857), [#2858](https://github.com/PointCloudLibrary/pcl/pull/2858), [#2859](https://github.com/PointCloudLibrary/pcl/pull/2859), [#2860](https://github.com/PointCloudLibrary/pcl/pull/2860), [#2887](https://github.com/PointCloudLibrary/pcl/pull/2887), [#3396](https://github.com/PointCloudLibrary/pcl/pull/3396), [#3557](https://github.com/PointCloudLibrary/pcl/pull/3557)] 717* Prefer `nullptr` over 0 and `NULL` [[#3004](https://github.com/PointCloudLibrary/pcl/pull/3004), [#3005](https://github.com/PointCloudLibrary/pcl/pull/3005), [#3006](https://github.com/PointCloudLibrary/pcl/pull/3006), [#3007](https://github.com/PointCloudLibrary/pcl/pull/3007), [#3008](https://github.com/PointCloudLibrary/pcl/pull/3008), [#3009](https://github.com/PointCloudLibrary/pcl/pull/3009), [#3010](https://github.com/PointCloudLibrary/pcl/pull/3010), [#3011](https://github.com/PointCloudLibrary/pcl/pull/3011), [#3012](https://github.com/PointCloudLibrary/pcl/pull/3012), [#3013](https://github.com/PointCloudLibrary/pcl/pull/3013), [#3014](https://github.com/PointCloudLibrary/pcl/pull/3014), [#3015](https://github.com/PointCloudLibrary/pcl/pull/3015), [#3016](https://github.com/PointCloudLibrary/pcl/pull/3016), [#3017](https://github.com/PointCloudLibrary/pcl/pull/3017), [#3018](https://github.com/PointCloudLibrary/pcl/pull/3018), [#3019](https://github.com/PointCloudLibrary/pcl/pull/3019), [#3020](https://github.com/PointCloudLibrary/pcl/pull/3020), [#3021](https://github.com/PointCloudLibrary/pcl/pull/3021), [#3022](https://github.com/PointCloudLibrary/pcl/pull/3022), [#3023](https://github.com/PointCloudLibrary/pcl/pull/3023), [#3024](https://github.com/PointCloudLibrary/pcl/pull/3024), [#3025](https://github.com/PointCloudLibrary/pcl/pull/3025), [#3026](https://github.com/PointCloudLibrary/pcl/pull/3026), [#3027](https://github.com/PointCloudLibrary/pcl/pull/3027), [#3028](https://github.com/PointCloudLibrary/pcl/pull/3028), [#3029](https://github.com/PointCloudLibrary/pcl/pull/3029)] 718* Migrate to `std::chrono` [[#2913](https://github.com/PointCloudLibrary/pcl/pull/2913), [#2919](https://github.com/PointCloudLibrary/pcl/pull/2919), [#3318](https://github.com/PointCloudLibrary/pcl/pull/3318)] 719* **[abi]** Migrate from `boost::thread` to `std::thread` [[#3060](https://github.com/PointCloudLibrary/pcl/pull/3060), [#3094](https://github.com/PointCloudLibrary/pcl/pull/3094)] 720* Migrate `mutex`, `lock` and `csv` to modernization [[#3063](https://github.com/PointCloudLibrary/pcl/pull/3063), [#3068](https://github.com/PointCloudLibrary/pcl/pull/3068), [#3074](https://github.com/PointCloudLibrary/pcl/pull/3074), [#3078](https://github.com/PointCloudLibrary/pcl/pull/3078), [#3084](https://github.com/PointCloudLibrary/pcl/pull/3084), [#3086](https://github.com/PointCloudLibrary/pcl/pull/3086), [#3088](https://github.com/PointCloudLibrary/pcl/pull/3088), [#3091](https://github.com/PointCloudLibrary/pcl/pull/3091), [#3093](https://github.com/PointCloudLibrary/pcl/pull/3093), [#3100](https://github.com/PointCloudLibrary/pcl/pull/3100)] 721* Prefer `using` over `typedef` [[#3112](https://github.com/PointCloudLibrary/pcl/pull/3112), [#3113](https://github.com/PointCloudLibrary/pcl/pull/3113), [#3115](https://github.com/PointCloudLibrary/pcl/pull/3115), [#3117](https://github.com/PointCloudLibrary/pcl/pull/3117), [#3118](https://github.com/PointCloudLibrary/pcl/pull/3118), [#3121](https://github.com/PointCloudLibrary/pcl/pull/3121), [#3122](https://github.com/PointCloudLibrary/pcl/pull/3122), [#3123](https://github.com/PointCloudLibrary/pcl/pull/3123), [#3124](https://github.com/PointCloudLibrary/pcl/pull/3124), [#3125](https://github.com/PointCloudLibrary/pcl/pull/3125), [#3129](https://github.com/PointCloudLibrary/pcl/pull/3129), [#3130](https://github.com/PointCloudLibrary/pcl/pull/3130), [#3132](https://github.com/PointCloudLibrary/pcl/pull/3132), [#3134](https://github.com/PointCloudLibrary/pcl/pull/3134), [#3137](https://github.com/PointCloudLibrary/pcl/pull/3137), [#3138](https://github.com/PointCloudLibrary/pcl/pull/3138), [#3139](https://github.com/PointCloudLibrary/pcl/pull/3139), [#3144](https://github.com/PointCloudLibrary/pcl/pull/3144)] 722* Prefer `std` math functions over C functions [[#3087](https://github.com/PointCloudLibrary/pcl/pull/3087), [#3236](https://github.com/PointCloudLibrary/pcl/pull/3236), [#3255](https://github.com/PointCloudLibrary/pcl/pull/3255), [#3256](https://github.com/PointCloudLibrary/pcl/pull/3256), [#3257](https://github.com/PointCloudLibrary/pcl/pull/3257), [#3258](https://github.com/PointCloudLibrary/pcl/pull/3258), [#3270](https://github.com/PointCloudLibrary/pcl/pull/3270), [#3271](https://github.com/PointCloudLibrary/pcl/pull/3271), [#3272](https://github.com/PointCloudLibrary/pcl/pull/3272), [#3280](https://github.com/PointCloudLibrary/pcl/pull/3280), [#3282](https://github.com/PointCloudLibrary/pcl/pull/3282), [#3287](https://github.com/PointCloudLibrary/pcl/pull/3287)] 723* **[abi]** Prefer using `Ptr` typedefs and migrate to `std` smart pointers in non-API code [[#2804](https://github.com/PointCloudLibrary/pcl/pull/2804), [#2821](https://github.com/PointCloudLibrary/pcl/pull/2821), [#2823](https://github.com/PointCloudLibrary/pcl/pull/2823), [#2929](https://github.com/PointCloudLibrary/pcl/pull/2929), [#3061](https://github.com/PointCloudLibrary/pcl/pull/3061), [#3141](https://github.com/PointCloudLibrary/pcl/pull/3141), [#3142](https://github.com/PointCloudLibrary/pcl/pull/3142), [#3217](https://github.com/PointCloudLibrary/pcl/pull/3217), [#3474](https://github.com/PointCloudLibrary/pcl/pull/3474), [#3482](https://github.com/PointCloudLibrary/pcl/pull/3482), [#3486](https://github.com/PointCloudLibrary/pcl/pull/3486), [#3489](https://github.com/PointCloudLibrary/pcl/pull/3489), [#3497](https://github.com/PointCloudLibrary/pcl/pull/3497)] 724* **[abi]** Migrate to `std` random number generators [[#2956](https://github.com/PointCloudLibrary/pcl/pull/2956), [#2962](https://github.com/PointCloudLibrary/pcl/pull/2962), [#3069](https://github.com/PointCloudLibrary/pcl/pull/3069)] 725* **[deprecation]** Deprecate `pcl_isnan`, `pcl_isfinite`, and `pcl_isinf` in favor of `std` methods [[#2798](https://github.com/PointCloudLibrary/pcl/pull/2798), [#3457](https://github.com/PointCloudLibrary/pcl/pull/3457)] 726* Add explicit `std::` prefix to standard types/functions [[#3265](https://github.com/PointCloudLibrary/pcl/pull/3265), [#3326](https://github.com/PointCloudLibrary/pcl/pull/3326), [#3327](https://github.com/PointCloudLibrary/pcl/pull/3327), [#3328](https://github.com/PointCloudLibrary/pcl/pull/3328), [#3354](https://github.com/PointCloudLibrary/pcl/pull/3354), [#3426](https://github.com/PointCloudLibrary/pcl/pull/3426), [#3434](https://github.com/PointCloudLibrary/pcl/pull/3434)] 727* Remove `else` after `return` statement [[#3180](https://github.com/PointCloudLibrary/pcl/pull/3180), [#3181](https://github.com/PointCloudLibrary/pcl/pull/3181), [#3182](https://github.com/PointCloudLibrary/pcl/pull/3182), [#3183](https://github.com/PointCloudLibrary/pcl/pull/3183), [#3184](https://github.com/PointCloudLibrary/pcl/pull/3184), [#3185](https://github.com/PointCloudLibrary/pcl/pull/3185), [#3186](https://github.com/PointCloudLibrary/pcl/pull/3186)] 728* Remove redundant `typename` keyword [[#2896](https://github.com/PointCloudLibrary/pcl/pull/2896), [#2897](https://github.com/PointCloudLibrary/pcl/pull/2897), [#2927](https://github.com/PointCloudLibrary/pcl/pull/2927)] 729* Prefer `#pragma once` over `#ifndef` include guards [[#2617](https://github.com/PointCloudLibrary/pcl/pull/2617), [#2707](https://github.com/PointCloudLibrary/pcl/pull/2707)] 730* Apply clang-format to white-listed modules [[#3343](https://github.com/PointCloudLibrary/pcl/pull/3343), [#3344](https://github.com/PointCloudLibrary/pcl/pull/3344), [#3356](https://github.com/PointCloudLibrary/pcl/pull/3356), [#3363](https://github.com/PointCloudLibrary/pcl/pull/3363), [#3393](https://github.com/PointCloudLibrary/pcl/pull/3393), [#3416](https://github.com/PointCloudLibrary/pcl/pull/3416)] 731* Remove default constructors/destructors [[#3440](https://github.com/PointCloudLibrary/pcl/pull/3440), [#3454](https://github.com/PointCloudLibrary/pcl/pull/3454)] 732* Fix various compiler warnings [[#2665](https://github.com/PointCloudLibrary/pcl/pull/2665), [#2775](https://github.com/PointCloudLibrary/pcl/pull/2775), [#2778](https://github.com/PointCloudLibrary/pcl/pull/2778), [#2781](https://github.com/PointCloudLibrary/pcl/pull/2781), [#2782](https://github.com/PointCloudLibrary/pcl/pull/2782), [#2822](https://github.com/PointCloudLibrary/pcl/pull/2822), [#2898](https://github.com/PointCloudLibrary/pcl/pull/2898), [#2907](https://github.com/PointCloudLibrary/pcl/pull/2907), [#3001](https://github.com/PointCloudLibrary/pcl/pull/3001), [#3075](https://github.com/PointCloudLibrary/pcl/pull/3075), [#3076](https://github.com/PointCloudLibrary/pcl/pull/3076), [#3153](https://github.com/PointCloudLibrary/pcl/pull/3153), [#3155](https://github.com/PointCloudLibrary/pcl/pull/3155), [#3208](https://github.com/PointCloudLibrary/pcl/pull/3208), [#3212](https://github.com/PointCloudLibrary/pcl/pull/3212), [#3214](https://github.com/PointCloudLibrary/pcl/pull/3214), [#3342](https://github.com/PointCloudLibrary/pcl/pull/3342), [#3345](https://github.com/PointCloudLibrary/pcl/pull/3345), [#3348](https://github.com/PointCloudLibrary/pcl/pull/3348), [#3366](https://github.com/PointCloudLibrary/pcl/pull/3366), [#3372](https://github.com/PointCloudLibrary/pcl/pull/3372), [#3375](https://github.com/PointCloudLibrary/pcl/pull/3375), [#3377](https://github.com/PointCloudLibrary/pcl/pull/3377), [#3385](https://github.com/PointCloudLibrary/pcl/pull/3385), [#3388](https://github.com/PointCloudLibrary/pcl/pull/3388), [#3409](https://github.com/PointCloudLibrary/pcl/pull/3409), [#3425](https://github.com/PointCloudLibrary/pcl/pull/3425), [#3427](https://github.com/PointCloudLibrary/pcl/pull/3427), [#3507](https://github.com/PointCloudLibrary/pcl/pull/3507), [#3509](https://github.com/PointCloudLibrary/pcl/pull/3509), [#3554](https://github.com/PointCloudLibrary/pcl/pull/3554), [#3555](https://github.com/PointCloudLibrary/pcl/pull/3555)] 733* Prefer `std::size_t` in loops [[#3550](https://github.com/PointCloudLibrary/pcl/pull/3550), [#3556](https://github.com/PointCloudLibrary/pcl/pull/3556)] 734 735### `Modules:` 736 737#### `CMake:` 738 739* Set compile features on imported PCL targets [[#3567](https://github.com/PointCloudLibrary/pcl/pull/3567)] 740* Create CMake imported targets for header-only modules [[#3495](https://github.com/PointCloudLibrary/pcl/pull/3495)] 741* Add `PCL_WARNINGS_ARE_ERRORS` CMake option and enable it in Ubuntu 16.04 CI job [[#3478](https://github.com/PointCloudLibrary/pcl/pull/3478)] 742* Avoid using `VERSION_GREATER_EQUAL` to preserve compatibility with CMake 3.5 [[#3460](https://github.com/PointCloudLibrary/pcl/pull/3460)] 743* Remove policy push/pop from "PCLConfig.cmake" file [[#3431](https://github.com/PointCloudLibrary/pcl/pull/3431)] 744* Fix link-type keywords in linked libraries in "PCLConfig.cmake" with CMake >= 3.11 [[#3341](https://github.com/PointCloudLibrary/pcl/pull/3341)] 745* Update prefix hints in GTest finder script [[#3331](https://github.com/PointCloudLibrary/pcl/pull/3331)] 746* PCL All-in-one Installer: add process to add/remove VTK path [[#3322](https://github.com/PointCloudLibrary/pcl/pull/3322)] 747* Add `surface` module to the list of dependencies of `examples` [[#3295](https://github.com/PointCloudLibrary/pcl/pull/3295)] 748* Add missing install rule for "2d/kernel.hpp" header [[#3278](https://github.com/PointCloudLibrary/pcl/pull/3278)] 749* **[new-feature]** Add `format` compilation target that applies `clang-format` to whitelisted modules [[#3188](https://github.com/PointCloudLibrary/pcl/pull/3188)] 750* Use `COMPONENTS` when finding VTK to avoid linking agains unnecessary modules [[#3140](https://github.com/PointCloudLibrary/pcl/pull/3140)] 751* Add thread library of the system by `Threads::Threads` instead of via `-pthread` flag [[#3102](https://github.com/PointCloudLibrary/pcl/pull/3102)] 752* Fix `find_package_handle_standard_args` incorrect argument in GTest finder script [[#3098](https://github.com/PointCloudLibrary/pcl/pull/3098)] 753* Fix compound target's target registration [[#3090](https://github.com/PointCloudLibrary/pcl/pull/3090)] 754* Set `CMP0072` to `NEW` to prefer `GLVND` over legacy OpenGL modules [[#3066](https://github.com/PointCloudLibrary/pcl/pull/3066)] 755* Improve parsing of `BUNDLE` option in `PCL_ADD_EXECUTABLE` [[#3064](https://github.com/PointCloudLibrary/pcl/pull/3064)] 756* Change debug/release targets postfix on Windows [[#3055](https://github.com/PointCloudLibrary/pcl/pull/3055)] 757* Add version info on Windows for DLLs/Exe [[#3054](https://github.com/PointCloudLibrary/pcl/pull/3054)] 758* Modernize some CMake macros (Increases minimum required CMake version to 3.5) [[#3044](https://github.com/PointCloudLibrary/pcl/pull/3044)] 759* Add newer Boost versions to `Boost_ADDITIONAL_VERSIONS` [[#3003](https://github.com/PointCloudLibrary/pcl/pull/3003)] 760* Refactor `PCL_MAKE_PKGCONFIG` [[#2894](https://github.com/PointCloudLibrary/pcl/pull/2894)] 761* Bump Eigen minimum version to 3.1 [[#2893](https://github.com/PointCloudLibrary/pcl/pull/2893)] 762* Improve compatibility with latest VTK [[#2885](https://github.com/PointCloudLibrary/pcl/pull/2885)] 763* PCL All-in-one Installer: add quiet flag to msiexec installs [[#2873](https://github.com/PointCloudLibrary/pcl/pull/2873)] 764* Use `-mtune` instead of `-march` on non-x86 CPUs [[#2868](https://github.com/PointCloudLibrary/pcl/pull/2868)] 765* Prevent adding `/MP` flag for MSVC in case any other language than C/CXX will be used (e.g. CUDA) [[#2862](https://github.com/PointCloudLibrary/pcl/pull/2862)] 766* Add support for Visual Studio 2019 [[#2826](https://github.com/PointCloudLibrary/pcl/pull/2826)] 767* Drop MSVC 2013 (and below) support [[#2817](https://github.com/PointCloudLibrary/pcl/pull/2817)] 768* Drop GCC 4 support [[#2760](https://github.com/PointCloudLibrary/pcl/pull/2760)] 769* Mark include directories of 3rd-party libraries as system includes [[#2733](https://github.com/PointCloudLibrary/pcl/pull/2733)] 770* Fix Qt5 CMake issue [[#2719](https://github.com/PointCloudLibrary/pcl/pull/2719)] 771* Reduce unnecessary nesting in "CMakeLists.txt" [[#2718](https://github.com/PointCloudLibrary/pcl/pull/2718)] 772* Drop Qt4 support [[#2716](https://github.com/PointCloudLibrary/pcl/pull/2716)] 773* Remove unnecessary `VTK_INCLUDE_DIRECTORIES` [[#2713](https://github.com/PointCloudLibrary/pcl/pull/2713)] 774* Add `MSVC_MP` CMake option to adjust number of parallel build jobs [[#2705](https://github.com/PointCloudLibrary/pcl/pull/2705)] 775* Set interface compile features to `cxx_std_14` on PCL targets [[#2697](https://github.com/PointCloudLibrary/pcl/pull/2697)] 776* Reorganize and beautify project generation for IDEs [[#2691](https://github.com/PointCloudLibrary/pcl/pull/2691)] 777* **[new-feature]** Enable C++ 14 flags [[#2690](https://github.com/PointCloudLibrary/pcl/pull/2690)] 778* Remove vendored "FindGLEW.cmake" and adopt imported targets; rename "FindGTest.cmake" to prevent name clash [[#2679](https://github.com/PointCloudLibrary/pcl/pull/2679)] 779* Add compound CMake targets for examples, tools, and apps [[#2673](https://github.com/PointCloudLibrary/pcl/pull/2673)] 780* Set CMake policy `CMP0074` to `NEW` [[#2671](https://github.com/PointCloudLibrary/pcl/pull/2671)] 781* Remove conditional code for no longer supported versions of CMake [[#2667](https://github.com/PointCloudLibrary/pcl/pull/2667)] 782* Raise minimum required Boost version to 1.55; fix deprecated Boost endians [[#2801](https://github.com/PointCloudLibrary/pcl/pull/2801)] 783* Modernize FLANN finder script [[#2740](https://github.com/PointCloudLibrary/pcl/pull/2740), [#2861](https://github.com/PointCloudLibrary/pcl/pull/2861), [#2905](https://github.com/PointCloudLibrary/pcl/pull/2905), [#2910](https://github.com/PointCloudLibrary/pcl/pull/2910), [#3157](https://github.com/PointCloudLibrary/pcl/pull/3157), [#3202](https://github.com/PointCloudLibrary/pcl/pull/3202), [#3220](https://github.com/PointCloudLibrary/pcl/pull/3220), [#3317](https://github.com/PointCloudLibrary/pcl/pull/3317)] 784 785#### `libpcl_2d:` 786 787* Fix `EIGEN_ALIGN16` positionining for point type `XYZHSV` [[#3237](https://github.com/PointCloudLibrary/pcl/pull/3237)] 788 789#### `libpcl_common:` 790 791* **[deprecation]** Revert smart pointer type change in `PointCloud` and deprecate `getMapping()` [[#3563](https://github.com/PointCloudLibrary/pcl/pull/3563)] 792* Define `RangeImage` destructor as virtual [[#3477](https://github.com/PointCloudLibrary/pcl/pull/3477)] 793* Refactor `pcl::eigen33()` to reduce potential errors (and remove bug) [[#3441](https://github.com/PointCloudLibrary/pcl/pull/3441)] 794* Use generic detection idiom in `isFinite()` [[#3402](https://github.com/PointCloudLibrary/pcl/pull/3402)] 795* **[deprecation]** Deprecate `getFields()` with output parameter in favor of overload with return value [[#3401](https://github.com/PointCloudLibrary/pcl/pull/3401)] 796* Refactor polynomial calculations and remove memory leak [[#3392](https://github.com/PointCloudLibrary/pcl/pull/3392)] 797* Removes deprecated usage of `getFields(cloud, fields)` [[#3374](https://github.com/PointCloudLibrary/pcl/pull/3374)] 798* **[deprecation]** Deprecate `getFieldIndex()`/`getFields()` with first argument as cloud [[#3365](https://github.com/PointCloudLibrary/pcl/pull/3365)] 799* Remove `vector.reserve()` from hot path in cloud concatenation [[#3361](https://github.com/PointCloudLibrary/pcl/pull/3361)] 800* **[deprecation]** Add `PCLPointCloud2::operator+=()` and update concatenation operation [[#3320](https://github.com/PointCloudLibrary/pcl/pull/3320)] 801* **[new-feature]** Add concatenate operation for `PolygonMesh` [[#3316](https://github.com/PointCloudLibrary/pcl/pull/3316)] 802* Simplify the resize logic in `PCLBase` [[#3315](https://github.com/PointCloudLibrary/pcl/pull/3315)] 803* **[behavior]** Disable colored output for non-interactive terminals [[#3310](https://github.com/PointCloudLibrary/pcl/pull/3310)] 804* **[new-feature]** Add `emplace[_back]` to `pcl::PointCloud` [[#3207](https://github.com/PointCloudLibrary/pcl/pull/3207)] 805* **[new-feature]** Add `pcl::make_shared` that automatically handles aligned allocations [[#3163](https://github.com/PointCloudLibrary/pcl/pull/3163)] 806* **[behavior]** Enforce right-hand-rule on PCA eigenvectors [[#2946](https://github.com/PointCloudLibrary/pcl/pull/2946)] 807* Fix a bug in `CentroidPoint` [[#2875](https://github.com/PointCloudLibrary/pcl/pull/2875)] 808* **[behavior]** Initialize curvature in `PointNormal` default constructor [[#2674](https://github.com/PointCloudLibrary/pcl/pull/2674)] 809 810#### `libpcl_cuda:` 811 812* Remove code for CUDA below 7.5, update version checks [[#3152](https://github.com/PointCloudLibrary/pcl/pull/3152)] 813* Add missing include to support CUDA 10.1 [[#2883](https://github.com/PointCloudLibrary/pcl/pull/2883)] 814* Drop CUDA 7.0 (and below) support [[#2736](https://github.com/PointCloudLibrary/pcl/pull/2736)] 815 816#### `libpcl_features:` 817 818* Fix numerical issue in GASD estimation [[#3498](https://github.com/PointCloudLibrary/pcl/pull/3498)] 819* **[deprecation]** Deprecate `computeRSD()` functions that take pointclouds by pointer [[#2827](https://github.com/PointCloudLibrary/pcl/pull/2827)] 820* Fix data race in `NormalEstimationOMP` on Windows [[#2770](https://github.com/PointCloudLibrary/pcl/pull/2770)] 821 822#### `libpcl_filters:` 823 824* Merge pull request #3540 from facontidavide/fix_filter [[#3540](https://github.com/PointCloudLibrary/pcl/pull/3540)] 825* Fix incorrect switch fallthrough in convolution operator [[#3429](https://github.com/PointCloudLibrary/pcl/pull/3429)] 826* Use `size_t` for address computation in `CropBox` filter [[#3418](https://github.com/PointCloudLibrary/pcl/pull/3418)] 827* Fix a bug in removed index extraction in `UniformSampling` [[#3323](https://github.com/PointCloudLibrary/pcl/pull/3323)] 828* Fix `CropBox` with indices; add new assertions for unit tests [[#3306](https://github.com/PointCloudLibrary/pcl/pull/3306)] 829* Use fixed-size Eigen block expressions in `FrustumCulling` [[#2786](https://github.com/PointCloudLibrary/pcl/pull/2786)] 830* **[abi][deprecation]** Restructure and add functionality to filters templated on `PCLPointCloud2` [[#3483](https://github.com/PointCloudLibrary/pcl/pull/3483), [#3500](https://github.com/PointCloudLibrary/pcl/pull/3500)] 831 832#### `libpcl_gpu:` 833 834* Fix building of KinFu Large Scale app with Visual Studio [[#3504](https://github.com/PointCloudLibrary/pcl/pull/3504)] 835* **[api]** Replace `uint64_type` by `std::uint64_t` [[#3435](https://github.com/PointCloudLibrary/pcl/pull/3435)] 836* Add OpenNI2 support to `kinfu_largescale` tool [[#3391](https://github.com/PointCloudLibrary/pcl/pull/3391)] 837* Use `constexpr` in KinFu and KinFu large scale apps [[#3386](https://github.com/PointCloudLibrary/pcl/pull/3386)] 838* Remove duplicated and unused "cutil_math.h" [[#3264](https://github.com/PointCloudLibrary/pcl/pull/3264)] 839* Drop unnecessary __CUDA_ARCH__ checks [[#3154](https://github.com/PointCloudLibrary/pcl/pull/3154)] 840* Remove code for CUDA below 7.5, update version checks [[#3152](https://github.com/PointCloudLibrary/pcl/pull/3152)] 841* Remove unused timer routines in "NCV.cu" [[#3135](https://github.com/PointCloudLibrary/pcl/pull/3135)] 842* Add sync variants to CUDA vote functions to support PTX/ARCH >= 7.0 [[#2981](https://github.com/PointCloudLibrary/pcl/pull/2981)] 843* Fix `-debug` option parsing in `people_pcd_prob` tool [[#2656](https://github.com/PointCloudLibrary/pcl/pull/2656)] 844 845#### `libpcl_io:` 846 847* Make PLY parser more tolerant towards files not adhering to standard [[#3542](https://github.com/PointCloudLibrary/pcl/pull/3542)] 848* Fix a bug in binary header generation for PCD files [[#3522](https://github.com/PointCloudLibrary/pcl/pull/3522)] 849* **[behavior]** Add support for device URI in `OpenNI2Grabber` constructor [[#3238](https://github.com/PointCloudLibrary/pcl/pull/3238)] 850* Include "pcl_config.h" before checking `HAVE_OPENNI2` [[#3191](https://github.com/PointCloudLibrary/pcl/pull/3191)] 851* Print descriptive error if PLY file not found [[#3143](https://github.com/PointCloudLibrary/pcl/pull/3143)] 852* **[deprecation]** Add `registerCallback()` overload to grabbers to support assignment of `boost::function`s with templated signatures [[#3128](https://github.com/PointCloudLibrary/pcl/pull/3128)] 853* Fix preallocation of memory in PLY reader [[#2800](https://github.com/PointCloudLibrary/pcl/pull/2800)] 854* Fix possible integer overflow while iterating `PointCloud` fields [[#2754](https://github.com/PointCloudLibrary/pcl/pull/2754)] 855* **[removal]** Remove FZ-API [[#2747](https://github.com/PointCloudLibrary/pcl/pull/2747)] 856* Improve loading of massive PLY files [[#2715](https://github.com/PointCloudLibrary/pcl/pull/2715)] 857* **[new-feature]** Add RSSDK 2.0 (librealsense2) grabber [[#2214](https://github.com/PointCloudLibrary/pcl/pull/2214)] 858* Fix callback signatures in some grabbers [[#3216](https://github.com/PointCloudLibrary/pcl/pull/3216), [#3225](https://github.com/PointCloudLibrary/pcl/pull/3225)] 859 860#### `libpcl_kdtree:` 861 862* **[deprecation]** Remove unnecessary FLANN includes, deprecate "kdtree/flann.h" header [[#2993](https://github.com/PointCloudLibrary/pcl/pull/2993)] 863 864#### `libpcl_keypoints:` 865 866* Removed all duplicated branches in `AgastKeypoint2D` [[#2657](https://github.com/PointCloudLibrary/pcl/pull/2657)] 867 868#### `libpcl_recognition:` 869 870* Use range-based for loops with `boost::filesystem::directory_iterator` [[#3432](https://github.com/PointCloudLibrary/pcl/pull/3432)] 871* **[deprecation]** Refactor `MaskMap` and deprecate several of its methods [[#3399](https://github.com/PointCloudLibrary/pcl/pull/3399)] 872* Add missing include in "trimmed_icp.h" [[#3286](https://github.com/PointCloudLibrary/pcl/pull/3286)] 873* Use I/O helper method in `pcl::LineRGBD` [[#2796](https://github.com/PointCloudLibrary/pcl/pull/2796)] 874 875#### `libpcl_registration:` 876 877* Make `Registration::hasConverged()` const-qualified [[#3456](https://github.com/PointCloudLibrary/pcl/pull/3456)] 878* Fix debug message by reordering statements in GICP [[#3398](https://github.com/PointCloudLibrary/pcl/pull/3398)] 879* **[new-feature]** Add linear least squares version of symmetric objective function for ICP [[#3390](https://github.com/PointCloudLibrary/pcl/pull/3390)] 880* Fix the OpenMP errors/warnings in "ia_fpcs.hpp" [[#3389](https://github.com/PointCloudLibrary/pcl/pull/3389)] 881* Fix `pcl::Registration::getFitnessScore()` documentation [[#3082](https://github.com/PointCloudLibrary/pcl/pull/3082)] 882* **[behavior]** Fix ICP misbehavior in the "failure after maximum iterations" mode [[#2892](https://github.com/PointCloudLibrary/pcl/pull/2892)] 883 884#### `libpcl_sample_consensus:` 885 886* **[new-feature]** Add parallel RANSAC implementation with OpenMP [[#3514](https://github.com/PointCloudLibrary/pcl/pull/3514)] 887* **[behavior]** Set default min and max angle for SAC cone models [[#3466](https://github.com/PointCloudLibrary/pcl/pull/3466)] 888* Add `const` qualifier to multiple methods in SAC module [[#2970](https://github.com/PointCloudLibrary/pcl/pull/2970)] 889* Fix regression in `pcl::SACSegmentation` line fitting [[#2767](https://github.com/PointCloudLibrary/pcl/pull/2767)] 890 891#### `libpcl_segmentation:` 892 893* **[removal]** Remove `SupervoxelClustering::getColoredVoxelCloud()` [[#3469](https://github.com/PointCloudLibrary/pcl/pull/3469)] 894* **[deprecation]** Delete unused params in `OrganizedMultiPlaneSegmentation::refine()` [[#3302](https://github.com/PointCloudLibrary/pcl/pull/3302)] 895* Add `noexcept` for `boost::checked_delete<>` friend [[#2942](https://github.com/PointCloudLibrary/pcl/pull/2942)] 896* Fix `SupervoxelClustering` compilation problem in MSVC 2015.3 [[#2867](https://github.com/PointCloudLibrary/pcl/pull/2867)] 897 898#### `libpcl_simulation:` 899 900* Fix bug in `SimExample::write_depth_image_uint` trigerring `-Wtype-limits` warning [[#3430](https://github.com/PointCloudLibrary/pcl/pull/3430)] 901 902#### `libpcl_stereo:` 903 904* Merge pull request #3566 from kunaltyagi/stereo [[#3566](https://github.com/PointCloudLibrary/pcl/pull/3566)] 905 906#### `libpcl_surface:` 907 908* Fix undefined behaviour in `OctNode` [[#3561](https://github.com/PointCloudLibrary/pcl/pull/3561)] 909* Fix memory leak in `TextureMapping` [[#3549](https://github.com/PointCloudLibrary/pcl/pull/3549)] 910* Prevent `memset` for empty vector in 3rdparty/poisson4 [[#3537](https://github.com/PointCloudLibrary/pcl/pull/3537)] 911* Remove incorrect tree update in `MarchingCubes` [[#3240](https://github.com/PointCloudLibrary/pcl/pull/3240)] 912* **[deprecation]** Convert `MovingLeastSquaresOMP` into an alias template and deprecate [[#3119](https://github.com/PointCloudLibrary/pcl/pull/3119)] 913* Fix a bug in `ConvexHull` when indices are used [[#2999](https://github.com/PointCloudLibrary/pcl/pull/2999)] 914* Include "pcl_config.h" before testing `HAVE_QHULL` [[#2979](https://github.com/PointCloudLibrary/pcl/pull/2979)] 915* Throw exceptions instead of `exit(0)` in Poisson surface reconstruction [[#2891](https://github.com/PointCloudLibrary/pcl/pull/2891)] 916* Add check for invalid plane coefficients in `MovingLeastSquares` [[#2805](https://github.com/PointCloudLibrary/pcl/pull/2805)] 917* Fix the size of the lookup table in `BilateralUpsampling` [[#2749](https://github.com/PointCloudLibrary/pcl/pull/2749)] 918* Replace `hash_map` with `unordered_map` in 3rdparty/poisson4 [[#2640](https://github.com/PointCloudLibrary/pcl/pull/2640)] 919 920#### `libpcl_visualization:` 921 922* Add a flag to disable window autoresizing in `ImageViewer` [[#3394](https://github.com/PointCloudLibrary/pcl/pull/3394)] 923* **[deprecation]** Add new overload of `PointCloudColorHandler::getColor()` [[#3187](https://github.com/PointCloudLibrary/pcl/pull/3187)] 924* **[behavior]** Improve c/C command in `PCLVisualizer` [[#2926](https://github.com/PointCloudLibrary/pcl/pull/2926)] 925* Disable VTK warning display with OpenGL rendering backend [[#2912](https://github.com/PointCloudLibrary/pcl/pull/2912)] 926* **[abi]** Minor refactoring of `pcl::visualization::Camera` and related functions [[#2901](https://github.com/PointCloudLibrary/pcl/pull/2901)] 927* Fix a bug in `PCLVisualizer::setShapeRenderingProperties()` [[#2900](https://github.com/PointCloudLibrary/pcl/pull/2900)] 928* Fix possible integer overflow while iterating `PointCloud` fields [[#2754](https://github.com/PointCloudLibrary/pcl/pull/2754)] 929* Raise minimum VTK version to 6.2 [[#2685](https://github.com/PointCloudLibrary/pcl/pull/2685)] 930 931#### `PCL Apps:` 932 933* Fix memory leaks in OpenNI apps [[#3553](https://github.com/PointCloudLibrary/pcl/pull/3553)] 934* Use range-based for loops with `boost::filesystem::directory_iterator` [[#3432](https://github.com/PointCloudLibrary/pcl/pull/3432)] 935* Do not use deprecated function in `stereo_ground_segmentation` [[#3406](https://github.com/PointCloudLibrary/pcl/pull/3406)] 936* Add missing `std::move` or `const` reference for parameters [[#3232](https://github.com/PointCloudLibrary/pcl/pull/3232)] 937* Remove magic numbers from `organized_segmentation_demo` app [[#3108](https://github.com/PointCloudLibrary/pcl/pull/3108)] 938* Add missing include `render_views_tesselated_sphere` app [[#2909](https://github.com/PointCloudLibrary/pcl/pull/2909)] 939* Remove Qt version checks [[#2762](https://github.com/PointCloudLibrary/pcl/pull/2762)] 940* Cleanup Qt includes in Modeler app [[#2756](https://github.com/PointCloudLibrary/pcl/pull/2756)] 941* Cleanup Qt includes in CloudComposer app [[#2744](https://github.com/PointCloudLibrary/pcl/pull/2744)] 942* Fix MSVC compile issues in CloudComposer app [[#2712](https://github.com/PointCloudLibrary/pcl/pull/2712)] 943* Fix Modeler app with OpenGL2 rendering backend [[#2653](https://github.com/PointCloudLibrary/pcl/pull/2653)] 944 945#### `PCL Docs:` 946 947* Fix and improve documentation in `sample_consensus` module [[#3301](https://github.com/PointCloudLibrary/pcl/pull/3301)] 948* Fix `pcl::Registration::getFitnessScore()` documentation [[#3082](https://github.com/PointCloudLibrary/pcl/pull/3082)] 949* Fix source file name path stripping in Doxygen [[#2714](https://github.com/PointCloudLibrary/pcl/pull/2714)] 950 951#### `PCL Tutorials:` 952 953* Fix "CMakeLists.txt" in VFH tutorial [[#3449](https://github.com/PointCloudLibrary/pcl/pull/3449)] 954* Update information about types with RGBA data in tutorial [[#3294](https://github.com/PointCloudLibrary/pcl/pull/3294)] 955* Add a note about adjusting passthrough limits in template alignment tutorial [[#3193](https://github.com/PointCloudLibrary/pcl/pull/3193)] 956* Add missing shell command in "Building PCL" tutorial [[#2996](https://github.com/PointCloudLibrary/pcl/pull/2996)] 957* Fix cube rendering properties in "Moment of Inertia" tutorial [[#2880](https://github.com/PointCloudLibrary/pcl/pull/2880)] 958* Migrate from `boost::math::iround` to `std::lround` [[#2818](https://github.com/PointCloudLibrary/pcl/pull/2818)] 959* Link with `PCL_LIBRARIES`, not `PCL_***_LIBRARIES` [[#2799](https://github.com/PointCloudLibrary/pcl/pull/2799)] 960 961#### `PCL Tests:` 962 963* Move OMP version of `MovingLeastSquares` into a separate test case [[#3382](https://github.com/PointCloudLibrary/pcl/pull/3382)] 964* Fix `CropBox` with indices; add new assertions for unit tests [[#3306](https://github.com/PointCloudLibrary/pcl/pull/3306)] 965* Fix `find_package_handle_standard_args` incorrect argument in GTest finder script [[#3098](https://github.com/PointCloudLibrary/pcl/pull/3098)] 966* Do not test buffers instantiated with `char` template argument [[#2980](https://github.com/PointCloudLibrary/pcl/pull/2980)] 967* Remove `GTEST_USE_OWN_TR1_TUPLE` defines [[#2828](https://github.com/PointCloudLibrary/pcl/pull/2828)] 968* Add a new test for `SampleConsensusModelLine` [[#2768](https://github.com/PointCloudLibrary/pcl/pull/2768)] 969* Split `test_registration` into three binaries [[#2727](https://github.com/PointCloudLibrary/pcl/pull/2727)] 970 971#### `PCL Tools:` 972 973* **[behavior]** Do not discard data fields in `pcl_uniform_sampling` tool [[#3461](https://github.com/PointCloudLibrary/pcl/pull/3461)] 974* Add missing includes in `ensenso_viewer.cpp` [[#3035](https://github.com/PointCloudLibrary/pcl/pull/3035)] 975* Do not terminate `openni_viewer`/`openni2_viewer` if image viewer was not instantiated [[#2698](https://github.com/PointCloudLibrary/pcl/pull/2698)] 976 977#### `CI:` 978 979* Add `PCL_WARNINGS_ARE_ERRORS` CMake option and enable it in Ubuntu 16.04 CI job [[#3478](https://github.com/PointCloudLibrary/pcl/pull/3478)] 980* Add a new Azure pipeline for Ubuntu 19.10 [[#3446](https://github.com/PointCloudLibrary/pcl/pull/3446)] 981* Add formatting job on CI [[#3420](https://github.com/PointCloudLibrary/pcl/pull/3420)] 982* Add Dockerfiles for images used on CI [[#3350](https://github.com/PointCloudLibrary/pcl/pull/3350)] 983* Publish test results on Azure pipelines [[#2948](https://github.com/PointCloudLibrary/pcl/pull/2948)] 984* Build tutorials on Azure Pipelines [[#2696](https://github.com/PointCloudLibrary/pcl/pull/2696)] 985 986## *= 1.9.1 (26.11.2018) =* 987 988### `Modules:` 989 990#### `Uncategorized:` 991 992* Add missing visualization section from the changelog generation. [[#2634]](https://github.com/PointCloudLibrary/pcl/pull/2634) 993 994#### `CMake:` 995 996* Fix development version check on DISSECT_VERSION. [[#2633]](https://github.com/PointCloudLibrary/pcl/pull/2633) 997* Remove CMake policy CMP0054 setting. [[#2627]](https://github.com/PointCloudLibrary/pcl/pull/2627) 998* PCLConfig.cmake - POP policy-stack before return() [[#2626]](https://github.com/PointCloudLibrary/pcl/pull/2626) 999* Remove CMake config installation folder only when empty [[#2622]](https://github.com/PointCloudLibrary/pcl/pull/2622) 1000* Downgrade grabber dependency message level to STATUS. [[#2620]](https://github.com/PointCloudLibrary/pcl/pull/2620) 1001* Migrate CMake policy 0048 [[#2608]](https://github.com/PointCloudLibrary/pcl/pull/2608) 1002* Bump CMake minimum version to 3.1. [[#2605]](https://github.com/PointCloudLibrary/pcl/pull/2605) 1003* Bump version to 1.9.0-dev [[#2602]](https://github.com/PointCloudLibrary/pcl/pull/2602) 1004* Search in $EIGEN_ROOT first while looking for Eigen [[#2592]](https://github.com/PointCloudLibrary/pcl/pull/2592) 1005 1006#### `libpcl_visualization:` 1007 1008* address conflict between visualization and VTK head [[#2612]](https://github.com/PointCloudLibrary/pcl/pull/2612) 1009 1010#### `PCL Tutorials:` 1011 1012* Bump CMake minimum version to 3.1. [[#2605]](https://github.com/PointCloudLibrary/pcl/pull/2605) 1013 1014#### `PCL Tests:` 1015 1016* Refactor `SHOTEstimation` and `SHOTColorEstimation` tests [[#2636]](https://github.com/PointCloudLibrary/pcl/pull/2636) 1017 1018#### `CI:` 1019 1020* Set up azure pipelines for macOS High Sierra [[#2635]](https://github.com/PointCloudLibrary/pcl/pull/2635) 1021* Enable Windows builds on Azure Pipelines [[#2632]](https://github.com/PointCloudLibrary/pcl/pull/2632) 1022* Add Ubuntu16.04 based build on Azure Pipelines [[#2611]](https://github.com/PointCloudLibrary/pcl/pull/2611) 1023* Remove documentation job from Travis [[#2604]](https://github.com/PointCloudLibrary/pcl/pull/2604) 1024 1025 1026## *= 1.9.0 (06.11.2018) =* 1027 1028### `New Features:` 1029 1030*Newly added functionalities.* 1031 1032* **[common][visualization]** Add Viridis color LUT [[#2420]](https://github.com/PointCloudLibrary/pcl/pull/2420) 1033* **[octree]** Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [[#2204]](https://github.com/PointCloudLibrary/pcl/pull/2204) 1034* **[octree]** Implementation of the iterator 'OctreeFixedDepthIterator'. [[#1983]](https://github.com/PointCloudLibrary/pcl/pull/1983) 1035* **[ci]** Enable Global Tests on Windows CI [[#2137]](https://github.com/PointCloudLibrary/pcl/pull/2137) 1036* **[features]** Add GASD global point cloud descriptor [[#1652]](https://github.com/PointCloudLibrary/pcl/pull/1652) 1037* **[visualization]** Add overload to `PCLVisualizer::addText3D()` that allows specifying text orientation [[#2038]](https://github.com/PointCloudLibrary/pcl/pull/2038) 1038* **[features]** FLARELocalReferenceFrameEstimation class added [[#1571]](https://github.com/PointCloudLibrary/pcl/pull/1571) 1039* **[surface][tools]** Add new mls projection method. Deprecated `MovingLeastSquares::setPolynomialFit()`. [[#1960]](https://github.com/PointCloudLibrary/pcl/pull/1960) 1040 1041### `Deprecated:` 1042 1043*Deprecated code scheduled to be removed after two minor releases.* 1044 1045* **[octree]** Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [[#2204]](https://github.com/PointCloudLibrary/pcl/pull/2204) 1046* **[common][segmentation]** Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [[#2096]](https://github.com/PointCloudLibrary/pcl/pull/2096) 1047* **[io]** Add support pcl::PointXYZRGBA to pcl::VLPGrabber. Deprecate rgb signatures. [[#2102]](https://github.com/PointCloudLibrary/pcl/pull/2102) 1048* **[surface][tools]** Add new mls projection method. Deprecated `MovingLeastSquares::setPolynomialFit()`. [[#1960]](https://github.com/PointCloudLibrary/pcl/pull/1960) 1049 1050### `Removed:` 1051 1052*Removal of deprecated code.* 1053 1054* **[filters][io][surface][visualization]** Removal of deprecated code in filters, io, surface and visualization modules [[#2077]](https://github.com/PointCloudLibrary/pcl/pull/2077) 1055* **[common]** Remove deprecated ros headers [[#2075]](https://github.com/PointCloudLibrary/pcl/pull/2075) 1056* **[registration]** Remove registration module deprecated methods [[#2076]](https://github.com/PointCloudLibrary/pcl/pull/2076) 1057* **[sample_consensus]** Remove deprecated functions and variables from SAC module [[#2071]](https://github.com/PointCloudLibrary/pcl/pull/2071) 1058* **[common]** Removal of PCA deprecated constructor [[#2070]](https://github.com/PointCloudLibrary/pcl/pull/2070) 1059 1060### `Behavioral changes:` 1061 1062*Changes in the expected default behavior.* 1063 1064* **[common]** PointCloudDepthAndRGBtoXYZRGBA: initialize with the default alpha value (fix #2476) [[#2533]](https://github.com/PointCloudLibrary/pcl/pull/2533) 1065* **[octree]** Reverse octree's depth first iterator order [[#2332]](https://github.com/PointCloudLibrary/pcl/pull/2332) 1066* **[common]** `PointXYZRGBL` `label` field is now default constructed to 0 [[#2462]](https://github.com/PointCloudLibrary/pcl/pull/2462) 1067* **[io]** Fix PLYReader is_dense behavior [[#2133]](https://github.com/PointCloudLibrary/pcl/pull/2133) 1068 1069### `API changes:` 1070 1071*Changes to the API which didn't went through the proper deprecation and removal cycle.* 1072 1073* **[octree]** Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [[#2204]](https://github.com/PointCloudLibrary/pcl/pull/2204) 1074* **[sample_consensus]** Const-qualify most of the methods in SAC model classes [[#2270]](https://github.com/PointCloudLibrary/pcl/pull/2270) 1075* **[simulation]** Use GLuint rather than size_t to represent OpenGL indices. [[#2238]](https://github.com/PointCloudLibrary/pcl/pull/2238) 1076* **[visualization]** Fix access specifier in `PointCloudColorHandlerRGBAField` [[#2226]](https://github.com/PointCloudLibrary/pcl/pull/2226) 1077* **[docs]** Misc. typos (cont.) [[#2215]](https://github.com/PointCloudLibrary/pcl/pull/2215) 1078* **[octree]** OctreeIterators special member revision [[#2108]](https://github.com/PointCloudLibrary/pcl/pull/2108) 1079* **[io]** Add support pcl::PointXYZRGBA to pcl::VLPGrabber. Deprecate rgb signatures. [[#2102]](https://github.com/PointCloudLibrary/pcl/pull/2102) 1080* **[surface][tools]** Add new mls projection method. Deprecated `MovingLeastSquares::setPolynomialFit()`. [[#1960]](https://github.com/PointCloudLibrary/pcl/pull/1960) 1081* **[surface]** Add ability to cache mls results [[#1952]](https://github.com/PointCloudLibrary/pcl/pull/1952) 1082 1083### `ABI changes:` 1084 1085*Changes that cause ABI incompatibility but are still API compatible.* 1086 1087* **[surface]** Missing pcl::MovingLeastSquaresOMP declaration without /openmp [[#2324]](https://github.com/PointCloudLibrary/pcl/pull/2324) 1088* **[common][filters][surface]** Improved docstrings and error messages [[#2300]](https://github.com/PointCloudLibrary/pcl/pull/2300) 1089* **[common]** Modified `GlasbeyLUT` indexing type to `size_t` [[#2297]](https://github.com/PointCloudLibrary/pcl/pull/2297) 1090* **[octree]** Implementation of the iterator 'OctreeFixedDepthIterator'. [[#1983]](https://github.com/PointCloudLibrary/pcl/pull/1983) 1091* **[common][segmentation]** Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [[#2096]](https://github.com/PointCloudLibrary/pcl/pull/2096) 1092* **[gpu]** Allow specifying decimation step in convertToTsdfCloud [[#2099]](https://github.com/PointCloudLibrary/pcl/pull/2099) 1093* **[apps]** More warning suppression in pcl apps [[#2080]](https://github.com/PointCloudLibrary/pcl/pull/2080) 1094* **[io]** Removed unused member from ply_parser [[#2066]](https://github.com/PointCloudLibrary/pcl/pull/2066) 1095* **[filters]** Fixes remove_indices in UniformSampling [[#1902]](https://github.com/PointCloudLibrary/pcl/pull/1902) 1096* **[visualization]** Add accessor for current rendering framerate in PCLVisualizer [[#1974]](https://github.com/PointCloudLibrary/pcl/pull/1974) 1097* **[simulation]** Redo: Simulation: enable returning of organized point clouds [[#1687]](https://github.com/PointCloudLibrary/pcl/pull/1687) 1098* **[registration]** Added option to specify translation and rotation convergence deltas in ICP and NDT algorithms. [[#1724]](https://github.com/PointCloudLibrary/pcl/pull/1724) 1099 1100### `Modules:` 1101 1102#### `Uncategorized:` 1103 1104* Change Log generation tool. Automates change log generation. [[#2396]](https://github.com/PointCloudLibrary/pcl/pull/2396) 1105* Compatibility reports generation script [[#2410]](https://github.com/PointCloudLibrary/pcl/pull/2410) 1106* Update logo [[#2547]](https://github.com/PointCloudLibrary/pcl/pull/2547) 1107* Never close stale issues/prs [[#2400]](https://github.com/PointCloudLibrary/pcl/pull/2400) 1108* Fix typos in the whole codebase [[#2217]](https://github.com/PointCloudLibrary/pcl/pull/2217) 1109* Fixed typo and rearragend items in the issue template [[#2197]](https://github.com/PointCloudLibrary/pcl/pull/2197) 1110* Change Stale daysTillClose to 100 years [[#2166]](https://github.com/PointCloudLibrary/pcl/pull/2166) 1111* set stale daysUntilClose to a really big number [[#2162]](https://github.com/PointCloudLibrary/pcl/pull/2162) 1112* Stale set up [[#2101]](https://github.com/PointCloudLibrary/pcl/pull/2101) 1113 1114#### `CMake:` 1115 1116* Fix checks for user-provided CXX flags [[#2579]](https://github.com/PointCloudLibrary/pcl/pull/2579) 1117* Fix FLANN path to lower case [[#2576]](https://github.com/PointCloudLibrary/pcl/pull/2576) 1118* Use pkg-config to find Flann [[#2563]](https://github.com/PointCloudLibrary/pcl/pull/2563) 1119* Update FindBoost versions [[#2558]](https://github.com/PointCloudLibrary/pcl/pull/2558) 1120* Add PCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32 option [[#2552]](https://github.com/PointCloudLibrary/pcl/pull/2552) 1121* Fix app/CMakeLists to enable Apps under Windows [[#2550]](https://github.com/PointCloudLibrary/pcl/pull/2550) 1122* When configuring with WITH_DOCS, but Doxygen is not available, prevent generation. [[#2516]](https://github.com/PointCloudLibrary/pcl/pull/2516) 1123* CMake: Do not include test targets in PCLConfig.cmake [[#2458]](https://github.com/PointCloudLibrary/pcl/pull/2458) 1124* CMake Set temporarily the policy CMP0074 to OLD [[#2454]](https://github.com/PointCloudLibrary/pcl/pull/2454) 1125* prevent GCC flags propagating to NVCC [[#2430]](https://github.com/PointCloudLibrary/pcl/pull/2430) 1126* Mark visualization as an optional dependency of tools [[#2439]](https://github.com/PointCloudLibrary/pcl/pull/2439) 1127* Do not mark imported libraries as GLOBAL in PCLConfig [[#2435]](https://github.com/PointCloudLibrary/pcl/pull/2435) 1128* Intel fixes [[#2432]](https://github.com/PointCloudLibrary/pcl/pull/2432) 1129* Export `-march=native` for Clang and prevent it from being included during cross compilation. [[#2416]](https://github.com/PointCloudLibrary/pcl/pull/2416) 1130* Do not search for PCL components that have been found already [[#2428]](https://github.com/PointCloudLibrary/pcl/pull/2428) 1131* Move SSE compiler options to `PCL_COMPILE_OPTIONS`. Expose PCL as a CMake imported target. [[#2100]](https://github.com/PointCloudLibrary/pcl/pull/2100) 1132* Add Visual Studio compiler option /FS for Ninja build [[#2414]](https://github.com/PointCloudLibrary/pcl/pull/2414) 1133* Use rpath in the target's install name [[#2241]](https://github.com/PointCloudLibrary/pcl/pull/2241) 1134* Improve QHull finder script [[#2344]](https://github.com/PointCloudLibrary/pcl/pull/2344) 1135* Fix link order issue with boost [[#2236]](https://github.com/PointCloudLibrary/pcl/pull/2236) 1136* Mark found PCL component libraries and include dirs as advanced [[#2235]](https://github.com/PointCloudLibrary/pcl/pull/2235) 1137* Prevent search for disabled optional dependencies in targets. [[#2229]](https://github.com/PointCloudLibrary/pcl/pull/2229) 1138* Fix installation rules for ml module [[#2192]](https://github.com/PointCloudLibrary/pcl/pull/2192) 1139* Fix conditional branch of Visual C++ 2017 [[#2121]](https://github.com/PointCloudLibrary/pcl/pull/2121) 1140* Add *_USE_STATIC options to PCLConfig [[#2086]](https://github.com/PointCloudLibrary/pcl/pull/2086) 1141* Add search path suffixes for Vcpkg [[#2085]](https://github.com/PointCloudLibrary/pcl/pull/2085) 1142* Update finder scripts for Ensenso, OpenNI, and OpenNI2 [[#2061]](https://github.com/PointCloudLibrary/pcl/pull/2061) 1143* Fix PACKAGE to include cmake/Modules directory [[#2053]](https://github.com/PointCloudLibrary/pcl/pull/2053) 1144* Unifies Find scripts in PCLConfig [[#1421]](https://github.com/PointCloudLibrary/pcl/pull/1421) 1145* CUDA 9 Arch Flags [[#2047]](https://github.com/PointCloudLibrary/pcl/pull/2047) 1146* Suppress log when PCL_FIND_QUIETLY is turned on. [[#2032]](https://github.com/PointCloudLibrary/pcl/pull/2032) 1147* fix /MP option not generated for Visual Studio. [[#2031]](https://github.com/PointCloudLibrary/pcl/pull/2031) 1148* Generate pkgconfig for 2d module [[#1979]](https://github.com/PointCloudLibrary/pcl/pull/1979) 1149* Update Find Boost [[#1972]](https://github.com/PointCloudLibrary/pcl/pull/1972) 1150* Added CUDA compute capability 5.3 [[#1929]](https://github.com/PointCloudLibrary/pcl/pull/1929) 1151* Fix issue with finding pcl deployed out of path [[#1923]](https://github.com/PointCloudLibrary/pcl/pull/1923) 1152* Add new gtest path [[#1920]](https://github.com/PointCloudLibrary/pcl/pull/1920) 1153 1154#### `libpcl_2d:` 1155 1156* Avoid huge index jumps in `RandomSample`. Remove `io` dependency from `2d`. [[#2141]](https://github.com/PointCloudLibrary/pcl/pull/2141) 1157* Fix header names [[#2079]](https://github.com/PointCloudLibrary/pcl/pull/2079) 1158* Generate pkgconfig for 2d module [[#1979]](https://github.com/PointCloudLibrary/pcl/pull/1979) 1159 1160#### `libpcl_common:` 1161 1162* Fix docstrings [[#2591]](https://github.com/PointCloudLibrary/pcl/pull/2591) 1163* Throw an early exception to prevent divide by zero error (#2481) [[#2530]](https://github.com/PointCloudLibrary/pcl/pull/2530) 1164* Relax requirements in eigen22d test. Always provide a normalized result in `pcl::transformPlane`. [[#2503]](https://github.com/PointCloudLibrary/pcl/pull/2503) 1165* **[behavior]** PointCloudDepthAndRGBtoXYZRGBA: initialize with the default alpha value (fix #2476) [[#2533]](https://github.com/PointCloudLibrary/pcl/pull/2533) 1166* Throw `UnorganizedPointCloudException` in `PointCloud::at` [[#2521]](https://github.com/PointCloudLibrary/pcl/pull/2521) 1167* Add missing const specifier for getters in `PCLBase`. [[#2502]](https://github.com/PointCloudLibrary/pcl/pull/2502) 1168* swap the header in pcl::PointCloud::swap [[#2499]](https://github.com/PointCloudLibrary/pcl/pull/2499) 1169* Add header guard and copyright info to polynomial_calculations.hpp [[#2500]](https://github.com/PointCloudLibrary/pcl/pull/2500) 1170* Add `header` to the print output of `PointCloud` [[#2498]](https://github.com/PointCloudLibrary/pcl/pull/2498) 1171* Fix force recalculation option in `BivariatePolynomialT::calculateGradient` [[#2479]](https://github.com/PointCloudLibrary/pcl/pull/2479) 1172* Fix various errors and typos in the docstrings and tutorials [[#2486]](https://github.com/PointCloudLibrary/pcl/pull/2486) 1173* Fix a bug in `PointRGBtoI` color conversion [[#2475]](https://github.com/PointCloudLibrary/pcl/pull/2475) 1174* Provide `operator<<` for `Intensity32u` point type [[#2467]](https://github.com/PointCloudLibrary/pcl/pull/2467) 1175* **[behavior]** `PointXYZRGBL` `label` field is now default constructed to 0 [[#2462]](https://github.com/PointCloudLibrary/pcl/pull/2462) 1176* Add some missing eigen alignment operators [[#2433]](https://github.com/PointCloudLibrary/pcl/pull/2433) 1177* Intel fixes [[#2432]](https://github.com/PointCloudLibrary/pcl/pull/2432) 1178* **[new-feature]** Add Viridis color LUT [[#2420]](https://github.com/PointCloudLibrary/pcl/pull/2420) 1179* Remove malloc header to restore builds on BSDs [[#2374]](https://github.com/PointCloudLibrary/pcl/pull/2374) 1180* Add support for multiple extensions in `parse_file_extension_argument ()`. [[#2347]](https://github.com/PointCloudLibrary/pcl/pull/2347) 1181* Improve speed of `transformPointCloud/WithNormals()` functions [[#2247]](https://github.com/PointCloudLibrary/pcl/pull/2247) 1182* Add RGB constructor that takes R, G, and B components [[#2329]](https://github.com/PointCloudLibrary/pcl/pull/2329) 1183* **[abi]** Improved docstrings and error messages [[#2300]](https://github.com/PointCloudLibrary/pcl/pull/2300) 1184* **[abi]** Modified `GlasbeyLUT` indexing type to `size_t` [[#2297]](https://github.com/PointCloudLibrary/pcl/pull/2297) 1185* Add GASDSignatures to `PCL_POINT_TYPES` and `PCL_FEATURE_POINTTYPES` macros. [[#2295]](https://github.com/PointCloudLibrary/pcl/pull/2295) 1186* [PARSE] Constness of the API [[#2224]](https://github.com/PointCloudLibrary/pcl/pull/2224) 1187* Fix two "unreachable code" warnings in `pca.hpp` [[#2219]](https://github.com/PointCloudLibrary/pcl/pull/2219) 1188* Fix covariance calculation in PCA [[#2130]](https://github.com/PointCloudLibrary/pcl/pull/2130) 1189* **[abi][deprecation]** Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [[#2096]](https://github.com/PointCloudLibrary/pcl/pull/2096) 1190* **[removal]** Remove deprecated ros headers [[#2075]](https://github.com/PointCloudLibrary/pcl/pull/2075) 1191* Suppress (maybe) uninitialized warning [[#2073]](https://github.com/PointCloudLibrary/pcl/pull/2073) 1192* **[removal]** Removal of PCA deprecated constructor [[#2070]](https://github.com/PointCloudLibrary/pcl/pull/2070) 1193* [gcc] fixes -Wimplicit-fallthrough: common/io.h [[#2041]](https://github.com/PointCloudLibrary/pcl/pull/2041) 1194* Include pcl/point_cloud.h and pcl/point_types.h headers. [[#1962]](https://github.com/PointCloudLibrary/pcl/pull/1962) 1195* Add test for macro _USE_MATH_DEFINES. [[#1956]](https://github.com/PointCloudLibrary/pcl/pull/1956) 1196* instantiate: remove duplicate macro definition. Fixes #1924. [[#1925]](https://github.com/PointCloudLibrary/pcl/pull/1925) 1197 1198#### `libpcl_cuda:` 1199 1200* add support for latest Turing gpu and cuda 10 [[#2560]](https://github.com/PointCloudLibrary/pcl/pull/2560) 1201* Fix compilation issues with CUDA 9.1 [[#2212]](https://github.com/PointCloudLibrary/pcl/pull/2212) 1202* Fix some CUDA 9 related errors [[#2181]](https://github.com/PointCloudLibrary/pcl/pull/2181) 1203* Added CUDA compute capability 5.3 [[#1929]](https://github.com/PointCloudLibrary/pcl/pull/1929) 1204 1205#### `libpcl_features:` 1206 1207* Solve issues with failing features tests [[#2544]](https://github.com/PointCloudLibrary/pcl/pull/2544) 1208* Update the OpenMP implementations of normal and FPFH estimation [[#2278]](https://github.com/PointCloudLibrary/pcl/pull/2278) 1209* Make `MomentOfInertia` instantiations consistent with the rest of the library [[#2266]](https://github.com/PointCloudLibrary/pcl/pull/2266) 1210* Docstring corrections [[#2143]](https://github.com/PointCloudLibrary/pcl/pull/2143) 1211* Improve Doxygen comments for HistogramInterpolationMethod [[#2111]](https://github.com/PointCloudLibrary/pcl/pull/2111) 1212* **[new-feature]** Add GASD global point cloud descriptor [[#1652]](https://github.com/PointCloudLibrary/pcl/pull/1652) 1213* Suppress (maybe) uninitialized warning [[#2073]](https://github.com/PointCloudLibrary/pcl/pull/2073) 1214* **[new-feature]** FLARELocalReferenceFrameEstimation class added [[#1571]](https://github.com/PointCloudLibrary/pcl/pull/1571) 1215* fix missing include file: from_meshes.h is using pcl::Vertices in it [[#2009]](https://github.com/PointCloudLibrary/pcl/pull/2009) 1216* Typo [[#1968]](https://github.com/PointCloudLibrary/pcl/pull/1968) 1217 1218#### `libpcl_filters:` 1219 1220* Corrections to CovarianceSampling class and corresponding test [[#2512]](https://github.com/PointCloudLibrary/pcl/pull/2512) 1221* Add the missing const modifier in `Filter::getRemovedIndices`. [[#2523]](https://github.com/PointCloudLibrary/pcl/pull/2523) 1222* Add const modifiers to getters of pcl::PassThrough [[#2524]](https://github.com/PointCloudLibrary/pcl/pull/2524) 1223* Add const specifiers for getters in VoxelGrid. [[#2526]](https://github.com/PointCloudLibrary/pcl/pull/2526) 1224* Copy the pose info from the input cloud to the output cloud in NaN removal functions [[#2522]](https://github.com/PointCloudLibrary/pcl/pull/2522) 1225* Fix misc. typos in tutorials and docstrings [[#2529]](https://github.com/PointCloudLibrary/pcl/pull/2529) 1226* Fix various errors and typos in the docstrings and tutorials [[#2486]](https://github.com/PointCloudLibrary/pcl/pull/2486) 1227* Add some missing eigen alignment operators [[#2433]](https://github.com/PointCloudLibrary/pcl/pull/2433) 1228* Add PointNormal to ExtractIndices Instantiate Types [[#2389]](https://github.com/PointCloudLibrary/pcl/pull/2389) 1229* **[abi]** Improved docstrings and error messages [[#2300]](https://github.com/PointCloudLibrary/pcl/pull/2300) 1230* Public access to `VoxelGrid` boost pointer. [[#2205]](https://github.com/PointCloudLibrary/pcl/pull/2205) 1231* Add const qualifiers to getters in `filter_indices.h` [[#2193]](https://github.com/PointCloudLibrary/pcl/pull/2193) 1232* Avoid huge index jumps in `RandomSample`. Remove `io` dependency from `2d`. [[#2141]](https://github.com/PointCloudLibrary/pcl/pull/2141) 1233* **[removal]** Removal of deprecated code in filters, io, surface and visualization modules [[#2077]](https://github.com/PointCloudLibrary/pcl/pull/2077) 1234* Suppress unused parameter warning [[#2074]](https://github.com/PointCloudLibrary/pcl/pull/2074) 1235* Suppress sign compare warnings [[#2068]](https://github.com/PointCloudLibrary/pcl/pull/2068) 1236* Transformation Fix for BoxClipper3D [[#1961]](https://github.com/PointCloudLibrary/pcl/pull/1961) 1237* **[abi]** Fixes remove_indices in UniformSampling [[#1902]](https://github.com/PointCloudLibrary/pcl/pull/1902) 1238* Inherit StatisticalOutlierRemoval<PCLPointCloud2> from FilterIndices [[#1663]](https://github.com/PointCloudLibrary/pcl/pull/1663) 1239 1240#### `libpcl_gpu:` 1241 1242* Remove sm_72 from CUDA 9.0 [[#2567]](https://github.com/PointCloudLibrary/pcl/pull/2567) 1243* Fix compilation issues with CUDA 9.1 [[#2212]](https://github.com/PointCloudLibrary/pcl/pull/2212) 1244* Fix compilation error in `gpu_people` code [[#2199]](https://github.com/PointCloudLibrary/pcl/pull/2199) 1245* Fix some CUDA 9 related errors [[#2181]](https://github.com/PointCloudLibrary/pcl/pull/2181) 1246* **[abi]** Allow specifying decimation step in convertToTsdfCloud [[#2099]](https://github.com/PointCloudLibrary/pcl/pull/2099) 1247* Fix the incorrect include directory. [[#2024]](https://github.com/PointCloudLibrary/pcl/pull/2024) 1248* need to include instantiate.hpp to use PCL_INSTANTIATE [[#1943]](https://github.com/PointCloudLibrary/pcl/pull/1943) 1249* Added CUDA compute capability 5.3 [[#1929]](https://github.com/PointCloudLibrary/pcl/pull/1929) 1250* Fix issue #1674 [[#1926]](https://github.com/PointCloudLibrary/pcl/pull/1926) 1251 1252#### `libpcl_io:` 1253 1254* Suppress miscelanious warnings [[#2556]](https://github.com/PointCloudLibrary/pcl/pull/2556) 1255* vtk2mesh: Add parsing support to the new RGBA scalar field added in vtk8 [[#2492]](https://github.com/PointCloudLibrary/pcl/pull/2492) 1256* Fix various errors and typos in the docstrings and tutorials [[#2486]](https://github.com/PointCloudLibrary/pcl/pull/2486) 1257* Improved obj file parsing efficiency. Make parsing robust against situations where there are more normals than points. Added unit tests. [[#2450]](https://github.com/PointCloudLibrary/pcl/pull/2450) 1258* `pcl::PCDReader::readHeader()` change `nr_points` type to `size_t` to avoid possible `int32` overflow [[#2408]](https://github.com/PointCloudLibrary/pcl/pull/2408) 1259* Fix raw_fallocate for Android and deal with unsupported filesystems. [[#2363]](https://github.com/PointCloudLibrary/pcl/pull/2363) 1260* Add low_level_io.h to the header list of the io module [[#2356]](https://github.com/PointCloudLibrary/pcl/pull/2356) 1261* Created header for low level I/O helpers. Fix for `::posix_fallocate` on Mac OSX [[#2354]](https://github.com/PointCloudLibrary/pcl/pull/2354) 1262* Added warnings when the input data is too large for compressed pcds [[#2323]](https://github.com/PointCloudLibrary/pcl/pull/2323) 1263* Allocate disk space with posix_fallocate before mmapping. [[#2325]](https://github.com/PointCloudLibrary/pcl/pull/2325) 1264* Fix cmake warning: Logical block closes with mis-matching arguments [[#2320]](https://github.com/PointCloudLibrary/pcl/pull/2320) 1265* Added PCL_IO_ENABLE_MAND_LOCKING cmake flag. [[#2315]](https://github.com/PointCloudLibrary/pcl/pull/2315) 1266* Added missing 8 bytes to compressed binary pcd length. [[#2281]](https://github.com/PointCloudLibrary/pcl/pull/2281) 1267* Remove useless size check in PLYReader::endHeaderCallback() [[#2246]](https://github.com/PointCloudLibrary/pcl/pull/2246) 1268* **[behavior]** Fix PLYReader is_dense behavior [[#2133]](https://github.com/PointCloudLibrary/pcl/pull/2133) 1269* `EnsensoGrabber` `uint` is undefined in Visual studio. [[#2223]](https://github.com/PointCloudLibrary/pcl/pull/2223) 1270* Add protection from invalid WIDTH values in PCD reader [[#2195]](https://github.com/PointCloudLibrary/pcl/pull/2195) 1271* `PLYReader` Cast cloud point step as 64-bit integer [[#2161]](https://github.com/PointCloudLibrary/pcl/pull/2161) 1272* `OpenNI2Device` Add device sensor check for IR and depth modesetting [[#2150]](https://github.com/PointCloudLibrary/pcl/pull/2150) 1273* Adds a check for when CreateFileMappingA fails [[#2146]](https://github.com/PointCloudLibrary/pcl/pull/2146) 1274* `PCDWriter`changed `toff` to `size_t` in `writeBinaryCompressed` [[#2144]](https://github.com/PointCloudLibrary/pcl/pull/2144) 1275* Prevent POINTS field parsing before point_step is specified [[#2131]](https://github.com/PointCloudLibrary/pcl/pull/2131) 1276* Check COUNT value specified in PCD files [[#2126]](https://github.com/PointCloudLibrary/pcl/pull/2126) 1277* Prevent mmapping more than the original PCD file size [[#2125]](https://github.com/PointCloudLibrary/pcl/pull/2125) 1278* **[api][deprecation]** Add support pcl::PointXYZRGBA to pcl::VLPGrabber. Deprecate rgb signatures. [[#2102]](https://github.com/PointCloudLibrary/pcl/pull/2102) 1279* **[removal]** Removal of deprecated code in filters, io, surface and visualization modules [[#2077]](https://github.com/PointCloudLibrary/pcl/pull/2077) 1280* Suppress strict alias warning [[#2072]](https://github.com/PointCloudLibrary/pcl/pull/2072) 1281* Suppress unused parameter warnings [[#2067]](https://github.com/PointCloudLibrary/pcl/pull/2067) 1282* **[abi]** Removed unused member from ply_parser [[#2066]](https://github.com/PointCloudLibrary/pcl/pull/2066) 1283* Suppress control reaches end of non-void function in io.h [[#2057]](https://github.com/PointCloudLibrary/pcl/pull/2057) 1284* Modify STRICT_ALIGN because macro expansion w/defined is undefined [[#2043]](https://github.com/PointCloudLibrary/pcl/pull/2043) 1285* Add necessary boost headers to pcl/io to build in CUDA mode [[#2025]](https://github.com/PointCloudLibrary/pcl/pull/2025) 1286* Fix MSVC compile issue related with ssize_t [[#2027]](https://github.com/PointCloudLibrary/pcl/pull/2027) 1287* Adds in-memory PCD serialization/deserialization; de-duplicates PCDReader::readHeader(). (take #2) [[#1986]](https://github.com/PointCloudLibrary/pcl/pull/1986) 1288 1289#### `libpcl_kdtree:` 1290 1291* Consistent ptr typedefs for kd tree flann [[#1607]](https://github.com/PointCloudLibrary/pcl/pull/1607) 1292 1293#### `libpcl_keypoints:` 1294 1295* Add `TrajkovicKeypoint2D/3D` to CMake build [[#2179]](https://github.com/PointCloudLibrary/pcl/pull/2179) 1296 1297#### `libpcl_ml:` 1298 1299* Fix installation rules for ml module [[#2192]](https://github.com/PointCloudLibrary/pcl/pull/2192) 1300 1301#### `libpcl_octree:` 1302 1303* **[behavior]** Reverse octree's depth first iterator order [[#2332]](https://github.com/PointCloudLibrary/pcl/pull/2332) 1304* Fix various errors and typos in the docstrings and tutorials [[#2486]](https://github.com/PointCloudLibrary/pcl/pull/2486) 1305* Make test conditions consistent with `OctreePointCloudSearch::boxSearch()` implementation. [[#2457]](https://github.com/PointCloudLibrary/pcl/pull/2457) 1306* `octree_key.h` suppress GCC 8 ignored-qualifier warning [[#2405]](https://github.com/PointCloudLibrary/pcl/pull/2405) 1307* **[api][deprecation][new-feature]** Implementation of the iterator 'OctreeLeafNodeBreadthIterator'. [[#2204]](https://github.com/PointCloudLibrary/pcl/pull/2204) 1308* **[abi][new-feature]** Implementation of the iterator 'OctreeFixedDepthIterator'. [[#1983]](https://github.com/PointCloudLibrary/pcl/pull/1983) 1309* Octree Iterator begin/end method and added tests [[#2174]](https://github.com/PointCloudLibrary/pcl/pull/2174) 1310* Remove parametrization of end iterators [[#2168]](https://github.com/PointCloudLibrary/pcl/pull/2168) 1311* Fix docstrings in octree test [[#2173]](https://github.com/PointCloudLibrary/pcl/pull/2173) 1312* **[api]** OctreeIterators special member revision [[#2108]](https://github.com/PointCloudLibrary/pcl/pull/2108) 1313* Remove unused variable from octree_viewer [[#2069]](https://github.com/PointCloudLibrary/pcl/pull/2069) 1314* Silence compile warning by removing superfluous call to std::max() [[#2014]](https://github.com/PointCloudLibrary/pcl/pull/2014) 1315* [OCTREE] Add bounding box checks in isVoxelOccupiedAtPoint() and deleteVoxelAtPoint() [[#1976]](https://github.com/PointCloudLibrary/pcl/pull/1976) 1316 1317#### `libpcl_outofcore:` 1318 1319* Explictly use mt19937 random generator for boost 1.67. [[#2338]](https://github.com/PointCloudLibrary/pcl/pull/2338) 1320* Fixed queryBBIncludes_subsample [[#1988]](https://github.com/PointCloudLibrary/pcl/pull/1988) 1321 1322#### `libpcl_people:` 1323 1324* Misleading indentation [[#2034]](https://github.com/PointCloudLibrary/pcl/pull/2034) 1325 1326#### `libpcl_recognition:` 1327 1328* Relax threshold in Hough3DGrouping test [[#2507]](https://github.com/PointCloudLibrary/pcl/pull/2507) 1329* Add some missing eigen alignment operators [[#2433]](https://github.com/PointCloudLibrary/pcl/pull/2433) 1330* Setting the resolution of the occupancy grid [[#2273]](https://github.com/PointCloudLibrary/pcl/pull/2273) 1331* Inline helper function gcCorrespSorter() [[#2248]](https://github.com/PointCloudLibrary/pcl/pull/2248) 1332* Misleading indentation [[#2034]](https://github.com/PointCloudLibrary/pcl/pull/2034) 1333 1334#### `libpcl_registration:` 1335 1336* Remove std::binary_function from Registration [[#2599]](https://github.com/PointCloudLibrary/pcl/pull/2599) 1337* Suppress miscelanious warnings [[#2556]](https://github.com/PointCloudLibrary/pcl/pull/2556) 1338* Relax precision requirements on TransformationEstimationLM test. [[#2497]](https://github.com/PointCloudLibrary/pcl/pull/2497) 1339* Relax rejector threshold in JointIterativeClosestPoint test. [[#2496]](https://github.com/PointCloudLibrary/pcl/pull/2496) 1340* Add some missing eigen alignment operators [[#2433]](https://github.com/PointCloudLibrary/pcl/pull/2433) 1341* Remove explicit initialization of `update_visualizer_` in `Registration` [[#2423]](https://github.com/PointCloudLibrary/pcl/pull/2423) 1342* **[removal]** Remove registration module deprecated methods [[#2076]](https://github.com/PointCloudLibrary/pcl/pull/2076) 1343* Suppress (maybe) uninitialized warning [[#2073]](https://github.com/PointCloudLibrary/pcl/pull/2073) 1344* Remove unreachable code in DefaultConvergenceCriteria [[#1967]](https://github.com/PointCloudLibrary/pcl/pull/1967) 1345* **[abi]** Added option to specify translation and rotation convergence deltas in ICP and NDT algorithms. [[#1724]](https://github.com/PointCloudLibrary/pcl/pull/1724) 1346 1347#### `libpcl_sample_consensus:` 1348 1349* Revise direction test in SampleConsensusModelParallelLine/RANSAC to be consistent with set tolerance. [[#2491]](https://github.com/PointCloudLibrary/pcl/pull/2491) 1350* Fix error in SampleConsensusModelLine::isSampleGood [[#2488]](https://github.com/PointCloudLibrary/pcl/pull/2488) 1351* **[api]** Const-qualify most of the methods in SAC model classes [[#2270]](https://github.com/PointCloudLibrary/pcl/pull/2270) 1352* **[removal]** Remove deprecated functions and variables from SAC module [[#2071]](https://github.com/PointCloudLibrary/pcl/pull/2071) 1353 1354#### `libpcl_search:` 1355 1356* Correct testPoint for organized nearest neighbor search [[#2198]](https://github.com/PointCloudLibrary/pcl/pull/2198) 1357 1358#### `libpcl_segmentation:` 1359 1360* Add some missing eigen alignment operators [[#2433]](https://github.com/PointCloudLibrary/pcl/pull/2433) 1361* Add setter/getter for search method in ConditionalEuclideanClustering [[#2437]](https://github.com/PointCloudLibrary/pcl/pull/2437) 1362* Increase threshold for expected value in test_non_linear [[#2424]](https://github.com/PointCloudLibrary/pcl/pull/2424) 1363* Avoid infinite recursion in getPointCloudDifference [[#2402]](https://github.com/PointCloudLibrary/pcl/pull/2402) 1364* Correct setting of is_dense flag in SegmentDifferences. Deprecate unused parameter in method. [[#2380]](https://github.com/PointCloudLibrary/pcl/pull/2380) 1365* Dereference shared_ptr, fix for GCC8 [[#2299]](https://github.com/PointCloudLibrary/pcl/pull/2299) 1366* **[abi][deprecation]** Provide proper EuclideanClusterComparator method depreciation. New Pragma macro. New Deprecated type. [[#2096]](https://github.com/PointCloudLibrary/pcl/pull/2096) 1367* Removed normal related accessors and types from EuclideanClusterComparator [[#1542]](https://github.com/PointCloudLibrary/pcl/pull/1542) 1368 1369#### `libpcl_simulation:` 1370 1371* Add `const` qualifiers to `RangeLikelihood` getters. [[#2411]](https://github.com/PointCloudLibrary/pcl/pull/2411) 1372* **[api]** Use GLuint rather than size_t to represent OpenGL indices. [[#2238]](https://github.com/PointCloudLibrary/pcl/pull/2238) 1373* Support both RGB and RGBA colors in mesh loading [[#2036]](https://github.com/PointCloudLibrary/pcl/pull/2036) 1374* **[abi]** Redo: Simulation: enable returning of organized point clouds [[#1687]](https://github.com/PointCloudLibrary/pcl/pull/1687) 1375* Simulation: more access to camera parameters [[#1650]](https://github.com/PointCloudLibrary/pcl/pull/1650) 1376 1377#### `libpcl_surface:` 1378 1379* Fixed memory leak in Poisson's BSplineData [[#2572]](https://github.com/PointCloudLibrary/pcl/pull/2572) 1380* Suppress miscelanious warnings [[#2556]](https://github.com/PointCloudLibrary/pcl/pull/2556) 1381* Add some missing eigen alignment operators [[#2433]](https://github.com/PointCloudLibrary/pcl/pull/2433) 1382* Make pcl::MovingLeastSquares thread-safe [[#2418]](https://github.com/PointCloudLibrary/pcl/pull/2418) 1383* **[abi]** Missing pcl::MovingLeastSquaresOMP declaration without /openmp [[#2324]](https://github.com/PointCloudLibrary/pcl/pull/2324) 1384* **[abi]** Improved docstrings and error messages [[#2300]](https://github.com/PointCloudLibrary/pcl/pull/2300) 1385* opennurbs: fix `ON_Curve::EvaluatePoint` calculation [[#2185]](https://github.com/PointCloudLibrary/pcl/pull/2185) 1386* **[removal]** Removal of deprecated code in filters, io, surface and visualization modules [[#2077]](https://github.com/PointCloudLibrary/pcl/pull/2077) 1387* Suppress (maybe) uninitialized warning [[#2073]](https://github.com/PointCloudLibrary/pcl/pull/2073) 1388* Suppress sign compare warnings [[#2068]](https://github.com/PointCloudLibrary/pcl/pull/2068) 1389* Fix incorrect Ptr/ConstPtr typedefs in MovingLeastSquaresOMP [[#2055]](https://github.com/PointCloudLibrary/pcl/pull/2055) 1390* Replace float indices with Eigen Index [[#2017]](https://github.com/PointCloudLibrary/pcl/pull/2017) 1391* **[api][deprecation][new-feature]** Add new mls projection method. Deprecated `MovingLeastSquares::setPolynomialFit()`. [[#1960]](https://github.com/PointCloudLibrary/pcl/pull/1960) 1392* Avoid phantom surfces in marching cubes hoppe [[#1874]](https://github.com/PointCloudLibrary/pcl/pull/1874) 1393* **[api]** Add ability to cache mls results [[#1952]](https://github.com/PointCloudLibrary/pcl/pull/1952) 1394 1395#### `libpcl_visualization:` 1396 1397* Made PCLVisualizerInteractorStyle::CloudActorMapPtr public. [[#2542]](https://github.com/PointCloudLibrary/pcl/pull/2542) 1398* **[new-feature]** Add Viridis color LUT [[#2420]](https://github.com/PointCloudLibrary/pcl/pull/2420) 1399* Update sha1 header inclusion for Boost 1.68+ [[#2373]](https://github.com/PointCloudLibrary/pcl/pull/2373) 1400* Second change VTK version check in addTextureMesh [[#2322]](https://github.com/PointCloudLibrary/pcl/pull/2322) 1401* Include missing `vtkTexture.h`. Follow up on #2291 [[#2316]](https://github.com/PointCloudLibrary/pcl/pull/2316) 1402* Change VTK version check in `addTextureMesh` [[#2311]](https://github.com/PointCloudLibrary/pcl/pull/2311) 1403* Remove depreciated VTK function MapDataArrayToMultiTextureAttribute [[#2291]](https://github.com/PointCloudLibrary/pcl/pull/2291) 1404* Warn and skip adding normal cloud if it is empty [[#2265]](https://github.com/PointCloudLibrary/pcl/pull/2265) 1405* **[api]** Fix access specifier in `PointCloudColorHandlerRGBAField` [[#2226]](https://github.com/PointCloudLibrary/pcl/pull/2226) 1406* Check if color handler returns false [[#2209]](https://github.com/PointCloudLibrary/pcl/pull/2209) 1407* Handle VTK legacy function (follow up to #2112) [[#2165]](https://github.com/PointCloudLibrary/pcl/pull/2165) 1408* Travis merge test jobs. Expose VTK include directory for the visualization module. [[#2163]](https://github.com/PointCloudLibrary/pcl/pull/2163) 1409* Small optimizations and fixes in PCLVisualizer [[#2112]](https://github.com/PointCloudLibrary/pcl/pull/2112) 1410* Add another variant to `getPointCloudRenderingProperties()` [[#2142]](https://github.com/PointCloudLibrary/pcl/pull/2142) 1411* Restrict accepted types in `PCLVisualizer::addLine` signature [[#2134]](https://github.com/PointCloudLibrary/pcl/pull/2134) 1412* Typo fix in error message. [[#2132]](https://github.com/PointCloudLibrary/pcl/pull/2132) 1413* Fix add/remove of 3D text without custom viewport [[#2110]](https://github.com/PointCloudLibrary/pcl/pull/2110) 1414* Add `octree` dependency to `visualization` [[#2115]](https://github.com/PointCloudLibrary/pcl/pull/2115) 1415* Fix pcd_viewer color handling when invalid fields are present in pcd [[#2105]](https://github.com/PointCloudLibrary/pcl/pull/2105) 1416* Add pcl visualizer interactor null guards [[#2104]](https://github.com/PointCloudLibrary/pcl/pull/2104) 1417* Add remove text3d [[#2088]](https://github.com/PointCloudLibrary/pcl/pull/2088) 1418* Replace auto_ptr with scoped_ptr [[#2037]](https://github.com/PointCloudLibrary/pcl/pull/2037) 1419* **[removal]** Removal of deprecated code in filters, io, surface and visualization modules [[#2077]](https://github.com/PointCloudLibrary/pcl/pull/2077) 1420* Suppress sign compare warnings [[#2068]](https://github.com/PointCloudLibrary/pcl/pull/2068) 1421* **[new-feature]** Add overload to `PCLVisualizer::addText3D()` that allows specifying text orientation [[#2038]](https://github.com/PointCloudLibrary/pcl/pull/2038) 1422* Add new constructors to PCLVisualizer [[#2004]](https://github.com/PointCloudLibrary/pcl/pull/2004) 1423* Fix bug in PointCloudGeometryHandlerCustom [[#2001]](https://github.com/PointCloudLibrary/pcl/pull/2001) 1424* Add missing PCL_EXPORTS in pcl_visualizer.h [[#1995]](https://github.com/PointCloudLibrary/pcl/pull/1995) 1425* **[abi]** Add accessor for current rendering framerate in PCLVisualizer [[#1974]](https://github.com/PointCloudLibrary/pcl/pull/1974) 1426* Allow changing LUT properties of a shape actor [[#1668]](https://github.com/PointCloudLibrary/pcl/pull/1668) 1427* Fixed spelling and grammar errors [[#1959]](https://github.com/PointCloudLibrary/pcl/pull/1959) 1428* Fixed error in documentation. [[#1957]](https://github.com/PointCloudLibrary/pcl/pull/1957) 1429 1430#### `PCL Apps:` 1431 1432* Suppress miscelanious warnings [[#2556]](https://github.com/PointCloudLibrary/pcl/pull/2556) 1433* Fix 3d_rec_framework compilation error [[#2495]](https://github.com/PointCloudLibrary/pcl/pull/2495) 1434* Fix compilation issue in point cloud editor. [[#2490]](https://github.com/PointCloudLibrary/pcl/pull/2490) 1435* `demean_cloud` correct usage message. [[#2443]](https://github.com/PointCloudLibrary/pcl/pull/2443) 1436* Do not use deprecated method in openni_mls_smoothing app [[#2421]](https://github.com/PointCloudLibrary/pcl/pull/2421) 1437* add windows.h for includes GL/gl.h; handle cancel for denoiseWidget. [[#2267]](https://github.com/PointCloudLibrary/pcl/pull/2267) 1438* Add missing dependecy to apps [[#2251]](https://github.com/PointCloudLibrary/pcl/pull/2251) 1439* Suppress the final set of warnings in pcl apps [[#2082]](https://github.com/PointCloudLibrary/pcl/pull/2082) 1440* **[abi]** More warning suppression in pcl apps [[#2080]](https://github.com/PointCloudLibrary/pcl/pull/2080) 1441 1442#### `PCL Docs:` 1443 1444* Fix misc. typos in tutorials and docstrings [[#2529]](https://github.com/PointCloudLibrary/pcl/pull/2529) 1445* Fix various errors and typos in the docstrings and tutorials [[#2486]](https://github.com/PointCloudLibrary/pcl/pull/2486) 1446* Docstring typos' corrections. [[#2449]](https://github.com/PointCloudLibrary/pcl/pull/2449) 1447* `demean_cloud` correct usage message. [[#2443]](https://github.com/PointCloudLibrary/pcl/pull/2443) 1448* Set IMAGE_PATH explicitly in Doxygen config [[#2442]](https://github.com/PointCloudLibrary/pcl/pull/2442) 1449* Switch to using client-based search in Doxygen [[#2391]](https://github.com/PointCloudLibrary/pcl/pull/2391) 1450* **[api]** Misc. typos (cont.) [[#2215]](https://github.com/PointCloudLibrary/pcl/pull/2215) 1451* doc: misc. typos [[#2213]](https://github.com/PointCloudLibrary/pcl/pull/2213) 1452* Add url to API/ABI compatibity report [[#2116]](https://github.com/PointCloudLibrary/pcl/pull/2116) 1453* Improve Doxygen comments for HistogramInterpolationMethod [[#2111]](https://github.com/PointCloudLibrary/pcl/pull/2111) 1454* Update organized.h [[#1965]](https://github.com/PointCloudLibrary/pcl/pull/1965) 1455* Typo [[#1968]](https://github.com/PointCloudLibrary/pcl/pull/1968) 1456* Fixed spelling and grammar errors [[#1959]](https://github.com/PointCloudLibrary/pcl/pull/1959) 1457* Fixed error in documentation. [[#1957]](https://github.com/PointCloudLibrary/pcl/pull/1957) 1458 1459#### `PCL Tutorials:` 1460 1461* Fix dataset link in conditional euclidean clustering tutorial [[#2546]](https://github.com/PointCloudLibrary/pcl/pull/2546) 1462* Fix dead links in Walkthrough tutorial [[#2532]](https://github.com/PointCloudLibrary/pcl/pull/2532) 1463* Simplify explanation of PointXYZ structure in "Writing PCD" tutorial [[#2534]](https://github.com/PointCloudLibrary/pcl/pull/2534) 1464* Fix misc. typos in tutorials and docstrings [[#2529]](https://github.com/PointCloudLibrary/pcl/pull/2529) 1465* Fix a dead link to Radu Rusu's dissertation in the tutorial. [[#2508]](https://github.com/PointCloudLibrary/pcl/pull/2508) 1466* Fix various errors and typos in the docstrings and tutorials [[#2486]](https://github.com/PointCloudLibrary/pcl/pull/2486) 1467* Fix link to Institut Maupertuis's ensenso_extrinsic_calibration repo [[#2447]](https://github.com/PointCloudLibrary/pcl/pull/2447) 1468* Add settings for hypothesis verification [[#2274]](https://github.com/PointCloudLibrary/pcl/pull/2274) 1469* Fix ICP tutorial [[#2244]](https://github.com/PointCloudLibrary/pcl/pull/2244) 1470* Fix error in example code for estimate set of surface for a subset of points in the input dataset [[#2203]](https://github.com/PointCloudLibrary/pcl/pull/2203) 1471* Update message about legacy point cloud types in tutorial [[#2175]](https://github.com/PointCloudLibrary/pcl/pull/2175) 1472* Add descriptor unpacking to GASD tutorial [[#2167]](https://github.com/PointCloudLibrary/pcl/pull/2167) 1473* Fix convert to `Eigen::Map<const Eigen::Vector3f>` from Normal of `pcl::PointXYZINormal` [[#2128]](https://github.com/PointCloudLibrary/pcl/pull/2128) 1474* Fix the tutorial qt_visualizer compilation issue: qt4 -> qt5. [[#2051]](https://github.com/PointCloudLibrary/pcl/pull/2051) 1475* Fix several documentation typos [[#2020]](https://github.com/PointCloudLibrary/pcl/pull/2020) 1476* Replace literal include of wrong CMakeLists file with correct script [[#1971]](https://github.com/PointCloudLibrary/pcl/pull/1971) 1477* Update Ensenso tutorial for Ensenso X devices [[#1933]](https://github.com/PointCloudLibrary/pcl/pull/1933) 1478 1479#### `PCL Examples:` 1480 1481* Suppress strict alias warning [[#2072]](https://github.com/PointCloudLibrary/pcl/pull/2072) 1482* Suppress (maybe) uninitialized warning [[#2073]](https://github.com/PointCloudLibrary/pcl/pull/2073) 1483* Fix CPC/LCCP segmentation examples for VTK 7.1 [[#2063]](https://github.com/PointCloudLibrary/pcl/pull/2063) 1484 1485#### `PCL Tests:` 1486 1487* Corrections to Windows unit tests. [[#2596]](https://github.com/PointCloudLibrary/pcl/pull/2596) 1488* Relax eigen22f test criteria [[#2553]](https://github.com/PointCloudLibrary/pcl/pull/2553) 1489* Solve issues with failing features tests [[#2544]](https://github.com/PointCloudLibrary/pcl/pull/2544) 1490* Relax requirements in eigen22d test. Always provide a normalized result in `pcl::transformPlane`. [[#2503]](https://github.com/PointCloudLibrary/pcl/pull/2503) 1491* Enable tests_2d and tests_io in AppVeyor. [[#2505]](https://github.com/PointCloudLibrary/pcl/pull/2505) 1492* Relax threshold in Hough3DGrouping test [[#2507]](https://github.com/PointCloudLibrary/pcl/pull/2507) 1493* Relax precision requirements on TransformationEstimationLM test. [[#2497]](https://github.com/PointCloudLibrary/pcl/pull/2497) 1494* Relax rejector threshold in JointIterativeClosestPoint test. [[#2496]](https://github.com/PointCloudLibrary/pcl/pull/2496) 1495* vtk2mesh: Add parsing support to the new RGBA scalar field added in vtk8 [[#2492]](https://github.com/PointCloudLibrary/pcl/pull/2492) 1496* Revise direction test in SampleConsensusModelParallelLine/RANSAC to be consistent with set tolerance. [[#2491]](https://github.com/PointCloudLibrary/pcl/pull/2491) 1497* Make test conditions consistent with `OctreePointCloudSearch::boxSearch()` implementation. [[#2457]](https://github.com/PointCloudLibrary/pcl/pull/2457) 1498* Increase threshold for expected value in test_non_linear [[#2424]](https://github.com/PointCloudLibrary/pcl/pull/2424) 1499* Replace floating point numerals when using `boost::posix_time`. Fix compatibility with Boost 1.67. [[#2422]](https://github.com/PointCloudLibrary/pcl/pull/2422) 1500* Cleanup and improve unit test coverage for transformPointCloud functions [[#2245]](https://github.com/PointCloudLibrary/pcl/pull/2245) 1501* Fixes and new assertion macro in "pcl_tests.h" [[#2237]](https://github.com/PointCloudLibrary/pcl/pull/2237) 1502* Add new gtest path [[#1920]](https://github.com/PointCloudLibrary/pcl/pull/1920) 1503 1504#### `PCL Tools:` 1505 1506* Allow the `pcl_uniform_sampling` tool to deal with several formats (PCD, PLY and VTK) as input or output point cloud [[#2348]](https://github.com/PointCloudLibrary/pcl/pull/2348) 1507* mesh_sampling tool: Add support for colors [[#2257]](https://github.com/PointCloudLibrary/pcl/pull/2257) 1508* Error message on non-recognized feature names [[#2178]](https://github.com/PointCloudLibrary/pcl/pull/2178) 1509* Suppress sign compare warnings [[#2068]](https://github.com/PointCloudLibrary/pcl/pull/2068) 1510* [OCTREE] Compute accurately the centroids of octree in 'pcl_octree_viewer' [[#1981]](https://github.com/PointCloudLibrary/pcl/pull/1981) 1511* **[api][deprecation][new-feature]** Add new mls projection method. Deprecated `MovingLeastSquares::setPolynomialFit()`. [[#1960]](https://github.com/PointCloudLibrary/pcl/pull/1960) 1512* [OCTREE] Fix pcl_octree_viewer [[#1973]](https://github.com/PointCloudLibrary/pcl/pull/1973) 1513* [OCTREE] Remove a useless field in octree_viewer. [[#1980]](https://github.com/PointCloudLibrary/pcl/pull/1980) 1514 1515#### `CI:` 1516 1517* Disable Travis email notifications. Update PCL logo endpoint. [[#2535]](https://github.com/PointCloudLibrary/pcl/pull/2535) 1518* Migrate Travis to the new travis-ci.com platform [[#2538]](https://github.com/PointCloudLibrary/pcl/pull/2538) 1519* Enable tests_2d and tests_io in AppVeyor. [[#2505]](https://github.com/PointCloudLibrary/pcl/pull/2505) 1520* Fix docs on Travis CI. [[#2441]](https://github.com/PointCloudLibrary/pcl/pull/2441) 1521* Disable SSE flags in AppVeyor. [[#2438]](https://github.com/PointCloudLibrary/pcl/pull/2438) 1522* Split (yet again) Travis test job into two and tweak timings in building apps [[#2182]](https://github.com/PointCloudLibrary/pcl/pull/2182) 1523* **[new-feature]** Enable Global Tests on Windows CI [[#2137]](https://github.com/PointCloudLibrary/pcl/pull/2137) 1524* Travis merge test jobs. Expose VTK include directory for the visualization module. [[#2163]](https://github.com/PointCloudLibrary/pcl/pull/2163) 1525* Remove unnecessary PPAs and packages from Travis [[#2153]](https://github.com/PointCloudLibrary/pcl/pull/2153) 1526* AppVeyor - Change to simple style of specify triplet [[#2135]](https://github.com/PointCloudLibrary/pcl/pull/2135) 1527* Initial Appveyor CI integration [[#2083]](https://github.com/PointCloudLibrary/pcl/pull/2083) 1528* Change Travis to use pip3 for installing sphinx [[#2124]](https://github.com/PointCloudLibrary/pcl/pull/2124) 1529* [TRAVIS] Enable the build of apps. [[#2012]](https://github.com/PointCloudLibrary/pcl/pull/2012) 1530* [TRAVIS] Enable the build of tools. [[#2007]](https://github.com/PointCloudLibrary/pcl/pull/2007) 1531* Disable tools build in CI. [[#2003]](https://github.com/PointCloudLibrary/pcl/pull/2003) 1532 1533 1534## *= 1.8.1 (08.08.2017) =* 1535 1536* Replaced `make_shared` invocations on aligned allocated vars 1537 [[#1405]](https://github.com/PointCloudLibrary/pcl/pull/1405) 1538* Created an issue template for bug reporting 1539 [[#1637]](https://github.com/PointCloudLibrary/pcl/pull/1637) 1540* PCL logo image is now locally available 1541 [[#1677]](https://github.com/PointCloudLibrary/pcl/pull/1677) 1542* Updated the Windows all in one installer for MSVC15 1543 [[#1762]](https://github.com/PointCloudLibrary/pcl/pull/1762) 1544* Added compile support to VTK 7.1 1545 [[#1770]](https://github.com/PointCloudLibrary/pcl/pull/1770) 1546* Fixed badges markup in README.md 1547 [[#1873]](https://github.com/PointCloudLibrary/pcl/pull/1873) 1548* Replaced C-style `sqrtf` with `::sqrt` 1549 [[#1901]](https://github.com/PointCloudLibrary/pcl/pull/1901) 1550 1551### `CMake:` 1552 1553* Tweaks to PCL_DEFINITIONS behavior (to be **deprecated** in future 1554 versions) 1555 [[#1478]](https://github.com/PointCloudLibrary/pcl/pull/1478) 1556* VTK directory can now be manually specified during configuration 1557 [[#1605]](https://github.com/PointCloudLibrary/pcl/pull/1605) 1558* Updated the find Boost cmake macro to support the latest versions plus 1559 exported definitions now give priority to finding the same Boost version 1560 PCL was compiled with. 1561 [[#1630]](https://github.com/PointCloudLibrary/pcl/pull/1630) 1562* Corrected PCL_ROOT in PCLConfig.cmake 1563 [[#1678]](https://github.com/PointCloudLibrary/pcl/pull/1678) 1564* Removed automatic override of VTK_LIBRARIES 1565 [[#1760]](https://github.com/PointCloudLibrary/pcl/pull/1760) 1566* Updated find boost versions 1567 [[#1788]](https://github.com/PointCloudLibrary/pcl/pull/1788) 1568 [[#1855]](https://github.com/PointCloudLibrary/pcl/pull/1855) 1569 [[#1856]](https://github.com/PointCloudLibrary/pcl/pull/1856) 1570* Updated CUDA compute capabilities 1571 [[#1789]](https://github.com/PointCloudLibrary/pcl/pull/1789) 1572* Extend linking of `delayimp.lib` to all MSVC version 1573 [[#1823]](https://github.com/PointCloudLibrary/pcl/pull/1823) 1574* Removal of `MSVCxx` variables 1575 [[#1830]](https://github.com/PointCloudLibrary/pcl/pull/1830) 1576* Fixed path link to Documents of Windows Start-Menu 1577 [[#1857]](https://github.com/PointCloudLibrary/pcl/pull/1857) 1578* Fixed CPack for Documents 1579 [[#1858]](https://github.com/PointCloudLibrary/pcl/pull/1858) 1580* Fixed bug present when Ensenso SDK path included spaces 1581 [[#1875]](https://github.com/PointCloudLibrary/pcl/pull/1875) 1582* `-D_FORCE_INLINES` definition added for CUDA targets to prevent 1583 issues between old versions of the CUDA Toolkit and new versions 1584 of gcc 1585 [[#1900]](https://github.com/PointCloudLibrary/pcl/pull/1900) 1586* Implemented new versioning scheme for PCL, employing the suffix 1587 `-dev` in between releases. 1588 [[#1905]](https://github.com/PointCloudLibrary/pcl/pull/1905) 1589* Corrected search paths for Eigen on Windows 1590 [[#1912]](https://github.com/PointCloudLibrary/pcl/pull/1912) 1591* SSE definitions are now exported and cleanup of Eigen's 1592 definitions 1593 [[#1917]](https://github.com/PointCloudLibrary/pcl/pull/1917) 1594* Added support to dynamic linking against FLANN on Windows 1595 [[#1919]](https://github.com/PointCloudLibrary/pcl/pull/1919) 1596* Add new search path for GTest to the finder script 1597 [[#1920]](https://github.com/PointCloudLibrary/pcl/pull/1920) 1598* Fix discovery of PCL deployed out of install path 1599 [[#1923]](https://github.com/PointCloudLibrary/pcl/pull/1923) 1600 1601 1602### `libpcl_2d:` 1603 1604* Removed the non-free lena-grayscale-png image :( 1605 [[#1676]](https://github.com/PointCloudLibrary/pcl/pull/1676) 1606* 2d library is no longer generated since it contained no symbols 1607 [[#1679]](https://github.com/PointCloudLibrary/pcl/pull/1679) 1608 1609### `libpcl_common:` 1610 1611* Changed default alpha value to 255 on all RGB(A) point types 1612 [[#1385]](https://github.com/PointCloudLibrary/pcl/pull/1385) 1613* Fixed an issue preventing aligned memory allocation on 32-bit Windows 1614 systems 1615 [[#1665]](https://github.com/PointCloudLibrary/pcl/pull/1665) 1616* Fixed compile error on test_common on MSVC 1617 [[#1689]](https://github.com/PointCloudLibrary/pcl/pull/1689) 1618* Fixed parallel plane test condition on `pcl::planeWithPlaneIntersection` 1619 [[#1698]](https://github.com/PointCloudLibrary/pcl/pull/1698) 1620* Fixed endless loop condition in `compute3DCentroid` 1621 [[#1704]](https://github.com/PointCloudLibrary/pcl/pull/1704) 1622* `toPCLPointCloud2` is not resilient to an empty pointcloud input 1623 [[#1723]](https://github.com/PointCloudLibrary/pcl/pull/1723) 1624* Normal accumulator `normalized()` is now resilient to a 0 filled vector 1625 [[#1728]](https://github.com/PointCloudLibrary/pcl/pull/1728) 1626* Defined additional types in `PointCloud` to ensure STL container 1627 compatibility 1628 [[#1741]](https://github.com/PointCloudLibrary/pcl/pull/1741) 1629* Aligned malloc now works on Android as well 1630 [[#1774]](https://github.com/PointCloudLibrary/pcl/pull/1774) 1631* Added missing include to boost shared_ptr in vertices 1632 [[#1790]](https://github.com/PointCloudLibrary/pcl/pull/1790) 1633* Prevent incorrect copy of adjacent point in `fromPCLPointCloud2()` 1634 [[#1813]](https://github.com/PointCloudLibrary/pcl/pull/1813) 1635* Restored `Eigen::umeyama` for Eigen 3.3+ 1636 [[#1820]](https://github.com/PointCloudLibrary/pcl/pull/1820) 1637 [[#1887]](https://github.com/PointCloudLibrary/pcl/pull/1887) 1638* Fixed type in deprecation messages 1639 [[#1878]](https://github.com/PointCloudLibrary/pcl/pull/1878) 1640* Improved support for mingw aligned allocation 1641 [[#1904]](https://github.com/PointCloudLibrary/pcl/pull/1904) 1642* Added test for macro `_USE_MATH_DEFINES` to avoid warnings 1643 [[#1956]](https://github.com/PointCloudLibrary/pcl/pull/1956) 1644 1645### `libpcl_cuda:` 1646 1647* Fixed macro definitions for the Windows platform 1648 [[#1568]](https://github.com/PointCloudLibrary/pcl/pull/1568) 1649 1650### `libpcl_features:` 1651 1652* NormalEstimation[OMP] and FPFHEstimation[OMP] are now instantiated for 1653 the same types as the non OMP variants. 1654 [[#1642]](https://github.com/PointCloudLibrary/pcl/pull/1642) 1655* Prevention of the addition of duplicate keys in `PFHEstimation` 1656 [[#1701]](https://github.com/PointCloudLibrary/pcl/pull/1701) 1657* Bug fixes in OUR-CVFH 1658 [[#1827]](https://github.com/PointCloudLibrary/pcl/pull/1827) 1659* Fixed incorrect initialization of SHOT 1660 [[#1859]](https://github.com/PointCloudLibrary/pcl/pull/1859) 1661 [[#1876]](https://github.com/PointCloudLibrary/pcl/pull/1876) 1662 1663### `libpcl_filters:` 1664 1665* ExtractIndices filter now aborts prematurely and prints error verbose 1666 in case it detects an index which exceeds the size on the input data 1667 [[#1670]](https://github.com/PointCloudLibrary/pcl/pull/1670) 1668* Potential reduction of computational time of `ModelOutlierRemoval` 1669 [[#1735]](https://github.com/PointCloudLibrary/pcl/pull/1735) 1670* Improved code readability in CropBox 1671 [[#1817]](https://github.com/PointCloudLibrary/pcl/pull/1817) 1672 1673### `libpcl_gpu:` 1674 1675* Added support to NVidia Pascal GPUs 1676 [[#1824]](https://github.com/PointCloudLibrary/pcl/pull/1824) 1677* Fixed compilation error in KinfuLS 1678 [[#1872]](https://github.com/PointCloudLibrary/pcl/pull/1872) 1679* Fixed CUDA architecture check 1680 [[#1872]](https://github.com/PointCloudLibrary/pcl/pull/1872) 1681 1682### `libpcl_io:` 1683 1684* RGB values are now always saved as uint32 on PCD files 1685 [[#1385]](https://github.com/PointCloudLibrary/pcl/pull/1385) 1686* Fixed find RealSense macro and compilation error with RealSenseGrabber 1687 on Windows 1688 [[#1560]](https://github.com/PointCloudLibrary/pcl/pull/1560) 1689* Unified verbose on OctreePointCloudCompression 1690 [[#1569]](https://github.com/PointCloudLibrary/pcl/pull/1569) 1691* Improved performance on saving PLY, OBJ and VTK files 1692 [[#1580]](https://github.com/PointCloudLibrary/pcl/pull/1580) 1693* Added support to the transparency property `Tr` on pcl::MTLReader 1694 and fixed issue with parsing of the material's properties. 1695 [[#1599]](https://github.com/PointCloudLibrary/pcl/pull/1599) 1696* Fixed function signature mismatch in auto_io 1697 [[#1625]](https://github.com/PointCloudLibrary/pcl/pull/1625) 1698* Fix `ASCIIReader::setInputFields` interface 1699 [[#1690]](https://github.com/PointCloudLibrary/pcl/pull/1690) 1700* Adopted pcl_isnan in test_buffers to prevent compilation problems on 1701 MSVC12 1702 [[#1694]](https://github.com/PointCloudLibrary/pcl/pull/1694) 1703* Fixed incorrect laser number test condition in VLP Grabber 1704 [[#1697]](https://github.com/PointCloudLibrary/pcl/pull/1697) 1705* Fixed bug verbose output of compression statistics 1706 [[#1749]](https://github.com/PointCloudLibrary/pcl/pull/1749) 1707* Fixed a bug in the parsing of PLY headers 1708 [[#1750]](https://github.com/PointCloudLibrary/pcl/pull/1750) 1709* Replacement of `boost::math::isnan` by `pcl_isnan` 1710 [[#1766]](https://github.com/PointCloudLibrary/pcl/pull/1766) 1711* Binary files written by `PCDWriter` now have the same permissions 1712 as the ASCII ones 1713 [[#1779]](https://github.com/PointCloudLibrary/pcl/pull/1779) 1714* Fixed ODR violation when compiling with both OpenNI and OpenNI2 1715 [[#1818]](https://github.com/PointCloudLibrary/pcl/pull/1818) 1716* PLYReader now also accepts the property `vertex_index` 1717 [[#1847]](https://github.com/PointCloudLibrary/pcl/pull/1847) 1718* Fixed bug in return value of `pcl_converter` 1719 [[#1903]](https://github.com/PointCloudLibrary/pcl/pull/1903) 1720 1721 1722### `libpcl_keypoints:` 1723 1724* Fixed memory leak in `ISSKeypoint3D` 1725 [[#1815]](https://github.com/PointCloudLibrary/pcl/pull/1815) 1726 1727### `libpcl_octree:` 1728 1729* Fixed unexpected octree boundaries' reduction 1730 [[#1532]](https://github.com/PointCloudLibrary/pcl/pull/1532) 1731 [[#1906]](https://github.com/PointCloudLibrary/pcl/pull/1906) 1732* Fixed octree precompilation mechanism 1733 [[#1639]](https://github.com/PointCloudLibrary/pcl/pull/1639) 1734 [[#1916]](https://github.com/PointCloudLibrary/pcl/pull/1916) 1735* Fixed invalid cast in `OctreePointCloudVoxelCentroid` 1736 [[#1700]](https://github.com/PointCloudLibrary/pcl/pull/1700) 1737 1738### `libpcl_recognition:` 1739 1740* LineMOD bug fixes 1741 [[#1835]](https://github.com/PointCloudLibrary/pcl/pull/1835) 1742* Removed redundant definition of point types 1743 [[#1836]](https://github.com/PointCloudLibrary/pcl/pull/1836) 1744 1745### `libpcl_registration:` 1746 1747* Fixed GICP behavior when a guess is provided 1748 [[#989]](https://github.com/PointCloudLibrary/pcl/pull/989) 1749* Fixed compilation issues in NDT 2D with Eigen 3.3 1750 [[#1821]](https://github.com/PointCloudLibrary/pcl/pull/1821) 1751* NDT 2D state is now properly initialized 1752 [[#1731]](https://github.com/PointCloudLibrary/pcl/pull/1731) 1753 1754### `libpcl_sample_consensus:` 1755 1756* Improved error verbose in 1757 `SampleConsensusModelPlane::optimizeModelCoefficient` 1758 [[#1811]](https://github.com/PointCloudLibrary/pcl/pull/1811) 1759 1760### `libpcl_segmentation:` 1761 1762* Fixed bug in organized multiplane segmentation refine function where label 1763 indices were not being updated correctly 1764 [[#1502]](https://github.com/PointCloudLibrary/pcl/pull/1502) 1765* Corrected function signature in lccp segmentation 1766 [[#1761]](https://github.com/PointCloudLibrary/pcl/pull/1761) 1767* Fixed bug in boundary checking in Organized Connected Component 1768 Segmentation 1769 [[#1800]](https://github.com/PointCloudLibrary/pcl/pull/1800) 1770* Clarified documentation in Super Voxel Clustering 1771 [[#1804]](https://github.com/PointCloudLibrary/pcl/pull/1804) 1772* Fixed bug causing unnecessary computation in Region Growing 1773 [[#1882]](https://github.com/PointCloudLibrary/pcl/pull/1882) 1774 1775### `libpcl_surface:` 1776 1777* Double pass mean and covariance estimation are now employed in 1778 `ConcaveHull::reconstruct` 1779 [[#1567]](https://github.com/PointCloudLibrary/pcl/pull/1567) 1780* GP3 bug fixes 1781 [[#1850]](https://github.com/PointCloudLibrary/pcl/pull/1850) 1782 [[#1879]](https://github.com/PointCloudLibrary/pcl/pull/1879) 1783* Fixed buggy index cast in bilateral upsampling 1784 [[#1914]](https://github.com/PointCloudLibrary/pcl/pull/1914) 1785 1786 1787### `libpcl_visualization:` 1788 1789* Fixed bug in addPointCloudNormals which was ignoring view point information 1790 [[#1504]](https://github.com/PointCloudLibrary/pcl/pull/1504) 1791* Fixed bug camera FOV computation in PCLVisualizerInteractorStyle 1792 [[#1611]](https://github.com/PointCloudLibrary/pcl/pull/1611) 1793* Fixed a MSVC compilation error with the colormap LUT 1794 [[#1635]](https://github.com/PointCloudLibrary/pcl/pull/1635) 1795* Abort prematurely when the camera file cannot be opened on 1796 `PCLVisualizerInteractorStyle` 1797 [[#1776]](https://github.com/PointCloudLibrary/pcl/pull/1776) 1798* Fix to `addText3D` 1799 [[#1805]](https://github.com/PointCloudLibrary/pcl/pull/1805) 1800* Added some exception guards in OpenNI and OpenNI2 Viewer tools 1801 [[#1862]](https://github.com/PointCloudLibrary/pcl/pull/1862) 1802 1803### `PCL Apps:` 1804 1805* Fixed bug in point cloud editor app which allowed to select points behind 1806 the camera 1807 [[#1539]](https://github.com/PointCloudLibrary/pcl/pull/1539) 1808* Explicitly define OpenGL headers to fix build on Ubuntu arm64 1809 [[#1715]](https://github.com/PointCloudLibrary/pcl/pull/1715) 1810* Replaced the use of `slot` and `signals` keywords in QT apps for 1811 their `Q_*` counterparts to present name clashes with Boost Signals 1812 [[#1898]](https://github.com/PointCloudLibrary/pcl/pull/1898) 1813 1814### `PCL Docs:` 1815 1816* Fix docs generation on Windows 1817 [[#1717]](https://github.com/PointCloudLibrary/pcl/pull/1717) 1818 1819### `PCL Tests:` 1820 1821* Modularized the build of unit tests. 1822 [[#1768]](https://github.com/PointCloudLibrary/pcl/pull/1768) 1823* Removed invalid test condition on test_common_io 1824 [[#1884]](https://github.com/PointCloudLibrary/pcl/pull/1884) 1825 1826### `PCL Tools:` 1827 1828* `mesh2pcd` has now an option to explicitly disable visualization 1829 [[#1768]](https://github.com/PointCloudLibrary/pcl/pull/1768) 1830* `mesh_sampling` has now an option to explicitly disable visualization 1831 [[#1769]](https://github.com/PointCloudLibrary/pcl/pull/1769) 1832* Mesh sampling now has an option to include normal information 1833 [[#1795]](https://github.com/PointCloudLibrary/pcl/pull/1795) 1834* Fixed incorrect return value in pcl_converter 1835 [[#1903]](https://github.com/PointCloudLibrary/pcl/pull/1903) 1836 1837### `PCL Tutorials:` 1838 1839* Fixed a crash in the pcl_visualizer tutorial triggered in interactive 1840 mode 1841 [[#1631]](https://github.com/PointCloudLibrary/pcl/pull/1631) 1842* Fixed hyperlink in narf keypoint extraction 1843 [[#1777]](https://github.com/PointCloudLibrary/pcl/pull/1777) 1844* Typo corrections in random sample consensus 1845 [[#1865]](https://github.com/PointCloudLibrary/pcl/pull/1865) 1846* Updated matrix transform tutorial and added cube.ply mesh 1847 [[#1894]](https://github.com/PointCloudLibrary/pcl/pull/1894) 1848 [[#1897]](https://github.com/PointCloudLibrary/pcl/pull/1897) 1849* Updated Ensenso tutorial for Ensenso X devices 1850 [[#1933]](https://github.com/PointCloudLibrary/pcl/pull/1933) 1851 1852### `CI:` 1853 1854* Applied a workaround to a regression bug introduced by doxylink 1855 in the docs build job 1856 [[#1784]](https://github.com/PointCloudLibrary/pcl/pull/1784) 1857* Build jobs refactoring 1858 [[#1768]](https://github.com/PointCloudLibrary/pcl/pull/1768) 1859* Enable ccache to speed up builds in CI 1860 [[#1892]](https://github.com/PointCloudLibrary/pcl/pull/1892) 1861 1862## *= 1.8.0 (14.06.2016) =* 1863 1864* Added missing `Eigen::aligned_allocator` in vectors and maps that contain 1865 vectorizable Eigen where appropriate 1866 [[#1034]](https://github.com/PointCloudLibrary/pcl/pull/1034) 1867 [[#1052]](https://github.com/PointCloudLibrary/pcl/pull/1052) 1868 [[#1068]](https://github.com/PointCloudLibrary/pcl/pull/1068) 1869 [[#1182]](https://github.com/PointCloudLibrary/pcl/pull/1182) 1870 [[#1497]](https://github.com/PointCloudLibrary/pcl/pull/1497) 1871* Fixed compilation errors/warning when compiling in C++11 mode 1872 [[#1179]](https://github.com/PointCloudLibrary/pcl/pull/1179) 1873* Added a configuration option to choose between Qt4 and Qt5; the default is 1874 changed to be Qt5 1875 [[#1217]](https://github.com/PointCloudLibrary/pcl/pull/1217) 1876* Improved compatibility with recent Eigen versions 1877 [[#1261]](https://github.com/PointCloudLibrary/pcl/pull/1261) 1878 [[#1298]](https://github.com/PointCloudLibrary/pcl/pull/1298) 1879 [[#1316]](https://github.com/PointCloudLibrary/pcl/pull/1316) 1880 [[#1369]](https://github.com/PointCloudLibrary/pcl/pull/1369) 1881* Added support for VTK compiled with OpenGL2 backend (was introduced in VTK 1882 6.3, became default in VTK 7.0) 1883 [[#1534]](https://github.com/PointCloudLibrary/pcl/pull/1534) 1884 1885### `libpcl_common:` 1886 1887* Added `copy_all_fields` option to the family of transformPointCloudXXX() 1888 functions 1889 [[#805]](https://github.com/PointCloudLibrary/pcl/pull/805) 1890* Added a color lookup table consisting of 256 colors structured in a maximally 1891 discontinuous manner (Glasbey colors) 1892 [[#849]](https://github.com/PointCloudLibrary/pcl/pull/849) 1893* Added a helper class `EventFrequency` to measure frequency of a certain event 1894 [[#850]](https://github.com/PointCloudLibrary/pcl/pull/850) 1895* Added a new `UniqueShapeContext1960` point type 1896 [[#856]](https://github.com/PointCloudLibrary/pcl/pull/856) 1897* Added a function `transformPointWithNormal()` 1898 [[#908]](https://github.com/PointCloudLibrary/pcl/pull/908) 1899* Fixed index-out-of-range error in `copyPointCloud()` for empty clouds 1900 [[#933]](https://github.com/PointCloudLibrary/pcl/pull/933) 1901* Fixed errors when compiling library with Boost 1.56 and Qt4 1902 [[#938]](https://github.com/PointCloudLibrary/pcl/pull/938) 1903* Created a new point type `PointXYZLNormal` with position, normal, and label 1904 fields 1905 [[#962]](https://github.com/PointCloudLibrary/pcl/pull/962) 1906* Created a new point type `PointDEM` to represent Digital Elevation Maps 1907 [[#1021]](https://github.com/PointCloudLibrary/pcl/pull/1021) 1908* Fixed angle convexity calculation for parallel and anti-parallel normals, 1909 where a rounding error occasionally caused NaN angles in `getAngle3D()` 1910 [[#1035]](https://github.com/PointCloudLibrary/pcl/pull/1035) 1911* Fixed undefined behavior when using multiple instances of `TimeTrigger` 1912 [[#1074]](https://github.com/PointCloudLibrary/pcl/pull/1074) 1913* Fixed starvation bug in `TimeTrigger` on Windows with Boost < 1.55 1914 [[#1086]](https://github.com/PointCloudLibrary/pcl/pull/1086) 1915* Removed unnecessary mutex locking in `TimeTrigger::registerCallback` 1916 [[#1087]](https://github.com/PointCloudLibrary/pcl/pull/1087) 1917* Updated PCL exception types to have nothrow copy constructor and copy 1918 assignment operator 1919 [[#1119]](https://github.com/PointCloudLibrary/pcl/pull/1119) 1920* Fixed a bug with `PCA` not triggering recomputation when input indices are 1921 changed 1922 [[#1167]](https://github.com/PointCloudLibrary/pcl/pull/1167) 1923* Added missing XYZ coordinate copying in `PointXYZRGBAtoXYZHSV` and 1924 `PointXYZRGBtoXYZHSV` conversion functions 1925 [[#1273]](https://github.com/PointCloudLibrary/pcl/pull/1273) 1926* Added `const` qualifiers where appropriate in point type conversion functions 1927 [[#1274]](https://github.com/PointCloudLibrary/pcl/pull/1274) 1928* Fixed assignment operator in `PCA` 1929 [[#1328]](https://github.com/PointCloudLibrary/pcl/pull/1328) 1930* Added `PointWithRange` to the list of core point types 1931 [[#1352]](https://github.com/PointCloudLibrary/pcl/pull/1352) 1932* Fixed a bug in `getMaxDistance()` (this affected computation of OUR-CVFH 1933 features) 1934 [[#1449]](https://github.com/PointCloudLibrary/pcl/pull/1449) 1935* Added `operator==` to `PCLHeader` class 1936 [[#1508]](https://github.com/PointCloudLibrary/pcl/pull/1508) 1937 1938### `libpcl_features:` 1939 1940* Fixed default parameters of the USC descriptor to match the values proposed in 1941 the original paper 1942 [[#856]](https://github.com/PointCloudLibrary/pcl/pull/856) 1943* Fixed the L1 normalization of the `ROPSEstimation` feature 1944 [[#993]](https://github.com/PointCloudLibrary/pcl/pull/993) 1945* Fixed default angle step in `ROPSEstimation` 1946 [[#1000]](https://github.com/PointCloudLibrary/pcl/pull/1000) 1947* Fixed a bug in `CRHEstimation` where internal spatial data vector was not 1948 zero-initialized 1949 [[#1151]](https://github.com/PointCloudLibrary/pcl/pull/1151) 1950* Updated `NormalEstimation` to mark cloud as non-dense when normal computation 1951 fails 1952 [[#1239]](https://github.com/PointCloudLibrary/pcl/pull/1239) 1953* Added new functions to compute approximate surface normals on a mesh and 1954 approximate covariance matrices 1955 [[#1262]](https://github.com/PointCloudLibrary/pcl/pull/1262) 1956* Fixed histogram computation in `computePointPFHRGBSignature()` 1957 [[#1331]](https://github.com/PointCloudLibrary/pcl/pull/1331) 1958* Fixed wrong erasing order in feature cache in `PFHEstimation` 1959 [[#1335]](https://github.com/PointCloudLibrary/pcl/pull/1335) 1960 1961### `libpcl_filters:` 1962 1963* Improved `RadiusOutlierRemoval` performance by using nearest-K search when the 1964 input point cloud is dense 1965 [[#709]](https://github.com/PointCloudLibrary/pcl/pull/709) 1966* Fixed the signature of `BoxClipper3D::clipPlanarPolygon3D()` 1967 [[#911]](https://github.com/PointCloudLibrary/pcl/pull/911) 1968* Updated base `Filter` class to allow using same point cloud as input and 1969 output (effective for every filtering algorithm) 1970 [[#1042]](https://github.com/PointCloudLibrary/pcl/pull/1042) 1971* Improved `CropBox` performance by caching the result of transform matrix 1972 identity test 1973 [[#1210]](https://github.com/PointCloudLibrary/pcl/pull/1210) 1974* Updated `PassThrough` filter to write a user-supplied value in place of bad 1975 points 1976 [[#1290]](https://github.com/PointCloudLibrary/pcl/pull/1290) 1977* Fixed handling of color fields in `VoxelGrid` centroid computation 1978 [[#1415]](https://github.com/PointCloudLibrary/pcl/pull/1415) 1979* Updated `ExtractIndices` (for `PCLPointCloud2` cloud type) to respect 1980 `keep_organized_` flag 1981 [[#1462]](https://github.com/PointCloudLibrary/pcl/pull/1462) 1982* Fixed OpenMP support on MSVC in `Convolution3D` 1983 [[#1527]](https://github.com/PointCloudLibrary/pcl/pull/1527) 1984* BugFix: Filters used applyFilter twice. 1985 [[#1572]](https://github.com/PointCloudLibrary/pcl/pull/1572) 1986 1987### `libpcl_gpu:` 1988 1989* Added a function `hasShifted()` in KinFu large scale 1990 [[#944]](https://github.com/PointCloudLibrary/pcl/pull/944) 1991* Fixed empty "View3D" window bug when using registration mode with `-pcd` flag 1992 in KinFu app 1993 [[#1018]](https://github.com/PointCloudLibrary/pcl/pull/1018) 1994* Fixed uninitialized loop variable in `PeoplePCDApp::convertProbToRGB()` 1995 [[#1104]](https://github.com/PointCloudLibrary/pcl/pull/1104) 1996* Fixed compilation errors in `gpu_people` 1997 [[#1194]](https://github.com/PointCloudLibrary/pcl/pull/1194) 1998* Fixed compilation error in `kinfu_large_scale` with CUDA ≥ 6.0 1999 [[#1225]](https://github.com/PointCloudLibrary/pcl/pull/1225) 2000* Fixed volume size computation in `kinfu_large_scale` 2001 [[#1233]](https://github.com/PointCloudLibrary/pcl/pull/1233) 2002* Fixed sporadical out-of-bounds memory accesses in `kinfu_large_scale` kernels 2003 [[#1263]](https://github.com/PointCloudLibrary/pcl/pull/1263) 2004* Fixed `plot_camera_poses.m` script in KinFu project 2005 [[#1311]](https://github.com/PointCloudLibrary/pcl/pull/1311) 2006* Fixed runtime exceptions related to `--viz` flag in KinFu 2007* Fix compilation on Mac OSX 2008 [[#1586]](https://github.com/PointCloudLibrary/pcl/pull/1586) 2009 2010### `libpcl_io:` 2011 2012* Added a grabber for IDS Imaging Ensenso devices 2013 [[#888]](https://github.com/PointCloudLibrary/pcl/pull/888) 2014* Updated `RobotEyeGrabber` class to handle new packet format 2015 [[#982]](https://github.com/PointCloudLibrary/pcl/pull/982) 2016* Fixed focal length computation in `OpenNI2Grabber` 2017 [[#992]](https://github.com/PointCloudLibrary/pcl/pull/992) 2018* Updated `OpenNIGrabber` to use depth camera parameters instead of color camera 2019 parameters for point reprojection 2020 [[#994]](https://github.com/PointCloudLibrary/pcl/pull/994) 2021* Made PCD reader case insensitive with respect to nan/NaN/NAN values 2022 [[#1004]](https://github.com/PointCloudLibrary/pcl/pull/1004) 2023* Added support for saving normal and curvature fields in `savePLYFile` and 2024 `savePLYFileBinary` 2025 [[#1057]](https://github.com/PointCloudLibrary/pcl/pull/1057) 2026 [[#1058]](https://github.com/PointCloudLibrary/pcl/pull/1058) 2027* Fixed alpha value of bad points in `OpenNIGrabber` 2028 [[#1090]](https://github.com/PointCloudLibrary/pcl/pull/1090) 2029* Fixed a bug in `OpenNIGrabber` destructor where wrong callback handle was 2030 unregistered 2031 [[#1094]](https://github.com/PointCloudLibrary/pcl/pull/1094) 2032* Fixed a bug in `PCDGrabber` destructor 2033 [[#1127]](https://github.com/PointCloudLibrary/pcl/pull/1127) 2034* Fixed point coordinate computation in `HDLGrabber` 2035 [[#1130]](https://github.com/PointCloudLibrary/pcl/pull/1130) 2036* Improved the PLY parser to work around some issues on Mac OSX 2037 [[#1165]](https://github.com/PointCloudLibrary/pcl/pull/1165) 2038* Added a family of data buffer classes useful for temporal filtering in 2039 grabbers 2040 [[#1212]](https://github.com/PointCloudLibrary/pcl/pull/1212) 2041* Added a grabber for davidSDK devices 2042 [[#1216]](https://github.com/PointCloudLibrary/pcl/pull/1216) 2043* Added a grabber and viewer for DepthSense SDK devices 2044 [[#1230]](https://github.com/PointCloudLibrary/pcl/pull/1230) 2045* Fixed stride computation and alpha values in 2046 `OpenNI2Grabber::convertToXYZRGBPointCloud()` 2047 [[#1248]](https://github.com/PointCloudLibrary/pcl/pull/1248) 2048* Changed type and semantics of return values in polygon saving functions based 2049 on VTK 2050 [[#1279]](https://github.com/PointCloudLibrary/pcl/pull/1279) 2051* Moved implementations of `pcl::io::load()` and `pcl::io::save()` to a new file 2052 "io/auto_io.h" 2053 [[#1294]](https://github.com/PointCloudLibrary/pcl/pull/1294) 2054* Fixed compilation of `OpenNI2Grabber` on _msvc14_ 2055 [[#1310]](https://github.com/PointCloudLibrary/pcl/pull/1310) 2056* Added a callback signal for the filename of grabbed PCD file in `PCDGrabber` 2057 [[#1354]](https://github.com/PointCloudLibrary/pcl/pull/1354) 2058* Added support for both 'CRLF' and 'LF' line endings in PLY reader 2059 [[#1370]](https://github.com/PointCloudLibrary/pcl/pull/1370) 2060* Updated OpenNI2 grabber to support devices without color stream 2061 [[#1372]](https://github.com/PointCloudLibrary/pcl/pull/1372) 2062* Updated `PCDWriter` to not fail when the filesystem does not support setting 2063 file permissions 2064 [[#1374]](https://github.com/PointCloudLibrary/pcl/pull/1374) 2065* Fixed a bug in `MTLReader` reading function 2066 [[#1380]](https://github.com/PointCloudLibrary/pcl/pull/1380) 2067* Removed `PXCGrabber` (superseded by `DepthSenseGrabber`) 2068 [[#1395]](https://github.com/PointCloudLibrary/pcl/pull/1395) 2069* Added a grabber and viewer for RealSense SDK devices 2070 [[#1401]](https://github.com/PointCloudLibrary/pcl/pull/1401) 2071* Updated `loadPLYFile()` to support NaN values 2072 [[#1433]](https://github.com/PointCloudLibrary/pcl/pull/1433) 2073* Fixed parsing of `char` and `uchar` scalars in PLY files 2074 [[#1443]](https://github.com/PointCloudLibrary/pcl/pull/1443) 2075* Fixed ASCII file support in `savePolygonFile*` functions 2076 [[#1445]](https://github.com/PointCloudLibrary/pcl/pull/1445) 2077* Added a grabber and viewer for Velodyne VLP 2078 [[#1452]](https://github.com/PointCloudLibrary/pcl/pull/1452) 2079* Fix compilation when WITH_VTK=OFF 2080 [[#1585]](https://github.com/PointCloudLibrary/pcl/pull/1585) 2081 2082### `libpcl_keypoints:` 2083 2084* Fixed invalid array allocation in `ISSKeypoint3D` 2085 [[#1022]](https://github.com/PointCloudLibrary/pcl/pull/1022) 2086* Removed superfluous parameter in 'TrajkovicKeypoint3D::getNormals()' 2087 [[#1096]](https://github.com/PointCloudLibrary/pcl/pull/1096) 2088* Moved `UniformSampling` to the `filters` module 2089 [[#1411]](https://github.com/PointCloudLibrary/pcl/pull/1411) 2090* Fixed OpenMP support in `HarrisKeypoint2D` 2091 [[#1501]](https://github.com/PointCloudLibrary/pcl/pull/1501) 2092* Updated `SIFTKeypoint` to preserve point cloud viewpoint 2093 [[#1508]](https://github.com/PointCloudLibrary/pcl/pull/1508) 2094 2095### `libpcl_octree:` 2096 2097* Added `const` qualifiers in `OctreePointCloud::getVoxelBounds()` 2098 [[#1016]](https://github.com/PointCloudLibrary/pcl/pull/1016) 2099* Updated `Octree` iterator to use `unsigned long`s in key computations to 2100 reduce chance of overflows 2101 [[#1297]](https://github.com/PointCloudLibrary/pcl/pull/1297) 2102* Fixed compilation of `OctreePointCloudOccupancy` on _gcc_ 2103 [[#1461]](https://github.com/PointCloudLibrary/pcl/pull/1461) 2104 2105### `libpcl_outofcore:` 2106 2107* Fixed compilation errors with C++11 standard 2108 [[#1386]](https://github.com/PointCloudLibrary/pcl/pull/1386) 2109 2110### `libpcl_people:` 2111 2112* Fixed undefined behavior in `HOG` (use `new`/`delete` consistently) 2113 [[#1099]](https://github.com/PointCloudLibrary/pcl/pull/1099) 2114 2115### `libpcl_recognition:` 2116 2117* Fixed multiple includes in `recognition` module 2118 [[#1109]](https://github.com/PointCloudLibrary/pcl/pull/1109) 2119 [[#1110]](https://github.com/PointCloudLibrary/pcl/pull/1110) 2120* Fixed "index out of bounds" error in `LineRGBD::refineDetectionsAlongDepth()` 2121 [[#1117]](https://github.com/PointCloudLibrary/pcl/pull/1117) 2122* Fixed a memory leak in `LINEMOD::detectTemplatesSemiScaleInvariant()` 2123 [[#1184]](https://github.com/PointCloudLibrary/pcl/pull/1184) 2124 2125### `libpcl_registration:` 2126 2127* Updated `GeneralizedIterativeClosestPoint` to return _transformed_ input point 2128 cloud after alignment 2129 [[#887]](https://github.com/PointCloudLibrary/pcl/pull/887) 2130* Fixed a problem with multiple definition of `setInputFeatureCloud` and 2131 `nearestNeighborSearch` symbols in `PPFRegistration` 2132 [[#891]](https://github.com/PointCloudLibrary/pcl/pull/891) 2133 [[#907]](https://github.com/PointCloudLibrary/pcl/pull/907) 2134* Added an implementation of the algorithm "4-Points Congruent Sets for Robust 2135 Surface Registration" 2136 [[#976]](https://github.com/PointCloudLibrary/pcl/pull/976) 2137* Added an implementation of the algorithm "Keypoint-based 4-Points Congruent 2138 Sets – Automated marker-less registration of laser scans" 2139 [[#979]](https://github.com/PointCloudLibrary/pcl/pull/979) 2140* Fixed compilation of `pcl_registration` module with MSVC2010 2141 [[#1014]](https://github.com/PointCloudLibrary/pcl/pull/1014) 2142* Removed wrong error normalization in `SampleConsensusPrerejective` 2143 [[#1037]](https://github.com/PointCloudLibrary/pcl/pull/1037) 2144* Added a new `IncrementalRegistration` class that allows to register a stream 2145 of clouds where each cloud is aligned to the previous cloud 2146 [[#1202]](https://github.com/PointCloudLibrary/pcl/pull/1202) 2147 [[#1451]](https://github.com/PointCloudLibrary/pcl/pull/1451) 2148* Fixed a wrong typedef for `KdTreeReciprocalPtr` 2149 [[#1204]](https://github.com/PointCloudLibrary/pcl/pull/1204) 2150* Added support for externally computed covariance matrices in 2151 `GeneralizedIterativeClosestPoint` 2152 [[#1262]](https://github.com/PointCloudLibrary/pcl/pull/1262) 2153* Fixed initialization of source and target covariances in 2154 `GeneralizedIterativeClosestPoint6D` 2155 [[#1304]](https://github.com/PointCloudLibrary/pcl/pull/1304) 2156* Added a new `MetaRegistration` class that allows to register a stream of 2157 clouds where each cloud is aligned to the conglomerate of all previous clouds 2158 [[#1426]](https://github.com/PointCloudLibrary/pcl/pull/1426) 2159* Fixed segmentation fault occurring in `CorrespondenceRejectorSurfaceNormal` 2160 [[#1536]](https://github.com/PointCloudLibrary/pcl/pull/1536) 2161* Use aligned allocator in vectors of MatchingCandidate 2162 [[#1552]](https://github.com/PointCloudLibrary/pcl/pull/1552) 2163 2164### `libpcl_sample_consensus:` 2165 2166* Fixed behavior of `SACMODEL_PARALLEL_LINE` to match the name (instead of 2167 searching for lines perpendicular to a given axis) 2168 [[#969]](https://github.com/PointCloudLibrary/pcl/pull/969) 2169* Added `getClassName()` function to all SAC models 2170 [[#1071]](https://github.com/PointCloudLibrary/pcl/pull/1071) 2171* Improved performance of `SampleConsensusModel::computeVariance()` by up to 10 2172 times 2173 [[#1285]](https://github.com/PointCloudLibrary/pcl/pull/1285) 2174* Fixed assignment operators for `SacModelCone` and `SacModelCylinder` 2175 [[#1299]](https://github.com/PointCloudLibrary/pcl/pull/1299) 2176* Refactored SAC models to store expected model and sample sizes in a protected 2177 member field; this deprecated `SAC_SAMPLE_SIZE` map 2178 [[#1367]](https://github.com/PointCloudLibrary/pcl/pull/1367) 2179 [[#1396]](https://github.com/PointCloudLibrary/pcl/pull/1396) 2180 2181### `libpcl_search:` 2182 2183* Fixed potential segfault in `OrganizedNeighbor::estimateProjectionMatrix()` 2184 [[#1176]](https://github.com/PointCloudLibrary/pcl/pull/1176) 2185 2186### `libpcl_segmentation:` 2187 2188* Added implementation of `LCCP` segmentation algorithm 2189 [[#718]](https://github.com/PointCloudLibrary/pcl/pull/718) 2190 [[#1287]](https://github.com/PointCloudLibrary/pcl/pull/1287) 2191 [[#1389]](https://github.com/PointCloudLibrary/pcl/pull/1389) 2192* Made `SupervoxelClustering` fully deterministic and made some internal 2193 refactoring 2194 [[#912]](https://github.com/PointCloudLibrary/pcl/pull/912) 2195* Moved specializations of `OctreePointCloudAdjacency::VoxelData` class from 2196 header to implementation files 2197 [[#919]](https://github.com/PointCloudLibrary/pcl/pull/919) 2198* Deprecated `SupervoxelClustering::getColoredCloud()` 2199 [[#941]](https://github.com/PointCloudLibrary/pcl/pull/941) 2200* Fixed a regression in `ExtractPolygonalPrismData`; both explicitly and 2201 implicitly closed polygons are supported again 2202 [[#1044]](https://github.com/PointCloudLibrary/pcl/pull/1044) 2203* Added an overload of `setConditionFunction()` in 2204 `ConditionalEuclideanClustering` that takes `boost::function` 2205 [[#1050]](https://github.com/PointCloudLibrary/pcl/pull/1050) 2206* Updated `SupervoxelClustering` to use the depth dependent transform by 2207 default only if the input cloud is organized; added a function to force use 2208 of the transform, and removed corresponding parameter from the constructor 2209 [[#1115]](https://github.com/PointCloudLibrary/pcl/pull/1115) 2210* Substituted hard-coded label point type with template parameter in 2211 `OrganizedConnectedComponentSegmentation` 2212 [[#1264]](https://github.com/PointCloudLibrary/pcl/pull/1264) 2213* Added an implementation of supervoxel graph partitioning algorithm described 2214 in "Constrained Planar Cuts - Object Partitioning for Point Clouds" 2215 [[#1278]](https://github.com/PointCloudLibrary/pcl/pull/1278) 2216* Fixed crashes in `ApproximateProgressiveMorphologicalFilter` in the case of 2217 non-default cell size 2218 [[#1293]](https://github.com/PointCloudLibrary/pcl/pull/1293) 2219* Fixed a bug in `RegionGrowing::validatePoint()` 2220 [[#1327]](https://github.com/PointCloudLibrary/pcl/pull/1327) 2221* Fixed return value of `SupervoxelClustering::getSeedResolution()` 2222 [[#1339]](https://github.com/PointCloudLibrary/pcl/pull/1339) 2223 2224### `libpcl_stereo:` 2225 2226* Added a new `DisparityMapConverter` class for converting disparity maps into 2227 point clouds 2228 [[#1021]](https://github.com/PointCloudLibrary/pcl/pull/1021) 2229* Added a new `DigitalElevationMapBuilder` class for building Digital Elevation 2230 Maps from disparity maps 2231 [[#1021]](https://github.com/PointCloudLibrary/pcl/pull/1021) 2232 2233### `libpcl_surface:` 2234 2235* Updated `TextureMapping` to not use hard-coded point types 2236 [[#929]](https://github.com/PointCloudLibrary/pcl/pull/929) 2237* Added a new function `getHullPointIndices` in concave and convex hull classes 2238 to retrieve indices of points that form the computed hull 2239 [[#1213]](https://github.com/PointCloudLibrary/pcl/pull/1213) 2240* Added several functions and parameters to the `OrganizedFastMesh` class 2241 [[#1262]](https://github.com/PointCloudLibrary/pcl/pull/1262) 2242* Added missing `PCL_EXPORTS` attributes for OpenNURBS classes 2243 [[#1315]](https://github.com/PointCloudLibrary/pcl/pull/1315) 2244* Fixed memory leak in `MeshSmoothingLaplacianVTK` 2245 [[#1424]](https://github.com/PointCloudLibrary/pcl/pull/1424) 2246 2247### `libpcl_tracking:` 2248 2249* Improved OMP 2.0 compatibility of `PyramidalKLTTracker` 2250 [[#1214]](https://github.com/PointCloudLibrary/pcl/pull/1214) 2251 [[#1223]](https://github.com/PointCloudLibrary/pcl/pull/1223) 2252* Fixed occasional segfault in `KLDAdaptiveParticleFilterOMPTracker` 2253 [[#1392]](https://github.com/PointCloudLibrary/pcl/pull/1392) 2254 2255### `libpcl_visualization:` 2256 2257* Added a new `PointCloudColorHandler` for "label" field 2258 [[#849]](https://github.com/PointCloudLibrary/pcl/pull/849) 2259* Fixed `setSize()` and `setPosition()` functions in `PCLVisualizer` 2260 [[#923]](https://github.com/PointCloudLibrary/pcl/pull/923) 2261* Fixed an issue with `PCLVisualizer` producing empty screenshots on some system 2262 configurations 2263 [[#956]](https://github.com/PointCloudLibrary/pcl/pull/956) 2264* Added a new function `removeAllCoordinateSystems()` in `PCLVisualizer` 2265 [[#965]](https://github.com/PointCloudLibrary/pcl/pull/965) 2266* Made `PCLVisualizer::addPointCloudPrincipalCurvatures()` templated on point 2267 and normal type 2268 [[#965]](https://github.com/PointCloudLibrary/pcl/pull/965) 2269* Fixed a minor bug in `PCLVisualizer::updatePolygonMesh()` 2270 [[#977]](https://github.com/PointCloudLibrary/pcl/pull/977) 2271* Fixed a minor bug in `ImageViewer::addMask()` 2272 [[#990]](https://github.com/PointCloudLibrary/pcl/pull/990) 2273* Fixed opacity handling in `ImageViewer` 2274 [[#995]](https://github.com/PointCloudLibrary/pcl/pull/995) 2275* Fixed a bug with `ImageViewer` not displaying anything with VTK 6 2276 [[#1009]](https://github.com/PointCloudLibrary/pcl/pull/1009) 2277* Updated `ImageViewer` to work around a bug in VTK 6.1 2278 [[#1017]](https://github.com/PointCloudLibrary/pcl/pull/1017) 2279* Fixed an Eigen-related compilation error in `PCLVisualizer::renderView()` 2280 [[#1019]](https://github.com/PointCloudLibrary/pcl/pull/1019) 2281* Fixed wrong axis flipping in `PCLVisualizer::renderView()` 2282 [[#1026]](https://github.com/PointCloudLibrary/pcl/pull/1026) 2283* Fixed a bug in `renderViewTesselatedSphere` when generated vertices were not 2284 guaranteed to stay on the unit sphere 2285 [[#1043]](https://github.com/PointCloudLibrary/pcl/pull/1043) 2286* Fixed misaligned context items in `ImageViewer` 2287 [[#1049]](https://github.com/PointCloudLibrary/pcl/pull/1049) 2288* Fixed opacity handling for layered rectangles of context items in 2289 `ImageViewer` 2290 [[#1051]](https://github.com/PointCloudLibrary/pcl/pull/1051) 2291* Fixed a regression in `RenderViewsTesselatedSphere::generateViews()` related 2292 to handling of multiple VTK versions 2293 [[#1056]](https://github.com/PointCloudLibrary/pcl/pull/1056) 2294 [[#1067]](https://github.com/PointCloudLibrary/pcl/pull/1067) 2295 [[#1072]](https://github.com/PointCloudLibrary/pcl/pull/1072) 2296* Updated `PCLVisualizer` to use `PointCloudColorHandlerRGBAField` for 2297 `PointXYZRGBA` clouds by default 2298 [[#1064]](https://github.com/PointCloudLibrary/pcl/pull/1064) 2299* Fixed a bug in `PointCloudColorHandlerLabelField` where red and blue channels 2300 were swapped 2301 [[#1076]](https://github.com/PointCloudLibrary/pcl/pull/1076) 2302* Updated `PCLPlotter` to ignore NaN values in histogram computation 2303 [[#1120]](https://github.com/PointCloudLibrary/pcl/pull/1120) 2304 [[#1126]](https://github.com/PointCloudLibrary/pcl/pull/1126) 2305* Fixed initial size of the `PCLVisualizer` window 2306 [[#1125]](https://github.com/PointCloudLibrary/pcl/pull/1125) 2307* Changed default representation of all shapes in `PCLVisualizer` to "surface" 2308 [[#1132]](https://github.com/PointCloudLibrary/pcl/pull/1132) 2309* Added a check for model coefficients size in functions that add shapes to 2310 `PCLVisualizer` 2311 [[#1142]](https://github.com/PointCloudLibrary/pcl/pull/1142) 2312* Added an option to switch between static/optimal color assignment in 2313 `PointCloudColorHandlerLabelField` 2314 [[#1156]](https://github.com/PointCloudLibrary/pcl/pull/1156) 2315* Added `PCLVisualizer::contains()` to check if a cloud, shape, or coordinate 2316 axes with given id already exist 2317 [[#1181]](https://github.com/PointCloudLibrary/pcl/pull/1181) 2318* Improved shape visualization by enabling shading 2319 [[#1211]](https://github.com/PointCloudLibrary/pcl/pull/1211) 2320* Improved 'u' key functionality in `PCLVisualizer` 2321 [[#1241]](https://github.com/PointCloudLibrary/pcl/pull/1241) 2322 [[#1321]](https://github.com/PointCloudLibrary/pcl/pull/1321) 2323 [[#1323]](https://github.com/PointCloudLibrary/pcl/pull/1323) 2324* Fixed potential crashes in `PCLVisualizer` by always checking result of 2325 `vtkSafeDownCast` calls 2326 [[#1245]](https://github.com/PointCloudLibrary/pcl/pull/1245) 2327* Updated `addPointCloud()` to use `PointCloudColorHandlerRGBField` when the 2328 cloud has color field 2329 [[#1295]](https://github.com/PointCloudLibrary/pcl/pull/1295) 2330 [[#1325]](https://github.com/PointCloudLibrary/pcl/pull/1325) 2331* Updated `PCLVisualizer` not to disable shading when changing shape's color 2332 [[#1300]](https://github.com/PointCloudLibrary/pcl/pull/1300) 2333* Fixed behavior of `PCLVisualizer::wasStopped()` with VTK6 on OSX 2334 [[#1436]](https://github.com/PointCloudLibrary/pcl/pull/1436) 2335* Improve pointcloud visualization with colormaps 2336 [[#1581]](https://github.com/PointCloudLibrary/pcl/pull/1581) 2337 2338### `PCL Apps:` 2339 2340* Fixed compilation of `point_cloud_editor` with Qt5 2341 [[#935]](https://github.com/PointCloudLibrary/pcl/pull/935) 2342* Fixed compilation of `dominant_plane_segmentation` and `manual_registration` 2343 with Boost 1.57 2344 [[#1062]](https://github.com/PointCloudLibrary/pcl/pull/1062) 2345 [[#1063]](https://github.com/PointCloudLibrary/pcl/pull/1063) 2346 2347### `PCL Examples:` 2348 2349* Updated supervoxel clustering example 2350 [[#915]](https://github.com/PointCloudLibrary/pcl/pull/915) 2351* Fixes for MS Visual Studio 2013 2352 [[#1526]](https://github.com/PointCloudLibrary/pcl/pull/1526) 2353 2354### `PCL Tools:` 2355 2356* Added support for point label visualization in `pcl_viewer` 2357 [[#849]](https://github.com/PointCloudLibrary/pcl/pull/849) 2358* Added support for absolute positioning of visualized point clouds in 2359 `pcl_viewer` 2360 [[#1154]](https://github.com/PointCloudLibrary/pcl/pull/1154) 2361* Fixed PLY file loading in `pcl_mesh_sampling` tool 2362 [[#1155]](https://github.com/PointCloudLibrary/pcl/pull/1155) 2363* Added loop distance (`-D`) and loop count (`-c`) parameters to the LUM tool 2364 [[#1291]](https://github.com/PointCloudLibrary/pcl/pull/1291) 2365* Fixed in-place filtering with `VoxelGrid` in `mesh_sampling` tool 2366 [[#1366]](https://github.com/PointCloudLibrary/pcl/pull/1366) 2367* Added a tool to convert OBJ files to PLY format 2368 [[#1375]](https://github.com/PointCloudLibrary/pcl/pull/1375) 2369* Added a universal mesh/cloud converted tool to convert between OBJ, PCD, PLY, 2370 STL, and VTK files 2371 [[#1442]](https://github.com/PointCloudLibrary/pcl/pull/1442) 2372 2373## *= 1.7.2 (10.09.2014) =* 2374 2375* Added support for VTK6 2376 [[#363]](https://github.com/PointCloudLibrary/pcl/pull/363) 2377* Removed Google Test from the source tree and added it as a system dependency 2378 [[#731]](https://github.com/PointCloudLibrary/pcl/pull/731) 2379* Added support for QHull 2012 on non-Debian platforms 2380 [[#852]](https://github.com/PointCloudLibrary/pcl/pull/852) 2381 2382### `libpcl_common:` 2383 2384* Added `BearingAngleImage` class 2385 [[#198]](https://github.com/PointCloudLibrary/pcl/pull/198) 2386* Added `pcl::CPPFSignature` point type 2387 [[#296]](https://github.com/PointCloudLibrary/pcl/pull/296) 2388* Added `getRGBAVector4i()`, `getBGRVector3cMap()`, and `getBGRAVector4cMap()` 2389 to all point types containing RGB/RGBA fields 2390 [[#450]](https://github.com/PointCloudLibrary/pcl/pull/450) 2391* Added a family of "has field" functions to check presence of a particular 2392 field in a point type both at compile- and run-time 2393 [[#462]](https://github.com/PointCloudLibrary/pcl/pull/462) 2394* Added a function to copy data between points of different types 2395 [[#465]](https://github.com/PointCloudLibrary/pcl/pull/465) 2396* Added test macros for equality/nearness checks 2397 [[#499]](https://github.com/PointCloudLibrary/pcl/pull/499) 2398* Added `descriptorSize()` to all point types with descriptors 2399 [[#531]](https://github.com/PointCloudLibrary/pcl/pull/531) 2400* Added possibility to copy a cloud inside another one while interpolating 2401 borders 2402 [[#567]](https://github.com/PointCloudLibrary/pcl/pull/567) 2403* Added a function to determine the point of intersection of three non-parallel 2404 planes 2405 [[#571]](https://github.com/PointCloudLibrary/pcl/pull/571) 2406* Fixed a bug in HSV to RGB color conversion 2407 [[#581]](https://github.com/PointCloudLibrary/pcl/pull/581) 2408* Added a new `CentroidPoint` class 2409 [[#586]](https://github.com/PointCloudLibrary/pcl/pull/586) 2410* Templated intersection computation functions on scalar type 2411 [[#646]](https://github.com/PointCloudLibrary/pcl/pull/646) 2412* Templated functions in 'eigen.h' on scalar type 2413 [[#660]](https://github.com/PointCloudLibrary/pcl/pull/660) 2414* Added functions to transform points, vectors, lines, etc. 2415 [[#660]](https://github.com/PointCloudLibrary/pcl/pull/660) 2416 2417### `libpcl_features:` 2418 2419* Added a simple implementation of CPPF using normalised HSV values in the 2420 feature vector 2421 [[#296]](https://github.com/PointCloudLibrary/pcl/pull/296) 2422* Added `MomentOfInertiaEstimation` and `ROPSEstimation` features 2423 [[#319]](https://github.com/PointCloudLibrary/pcl/pull/319) 2424* Fixed a problem in `OURCVFHEstimation::computeRFAndShapeDistribution()` 2425 [[#738]](https://github.com/PointCloudLibrary/pcl/pull/738) 2426* Fixed undefined behavior in `OURCVFHEstimation::computeFeature()` 2427 [[#811]](https://github.com/PointCloudLibrary/pcl/pull/811) 2428* Fixed memory corruption error in OUR-CVFH 2429 [[#875]](https://github.com/PointCloudLibrary/pcl/pull/875) 2430* Declare `const InterestPoint&` explicitly 2431 [[#1541]](https://github.com/PointCloudLibrary/pcl/pull/1541) 2432 2433### `libpcl_filters:` 2434 2435* Added a function to set the minimum number of points required for a voxel to 2436 be used in `VoxelGrid` 2437 [[#434]](https://github.com/PointCloudLibrary/pcl/pull/434) 2438* Added `GridMinimum` filter 2439 [[#520]](https://github.com/PointCloudLibrary/pcl/pull/520) 2440* Added a morphological filter that operates on Z dimension 2441 [[#533]](https://github.com/PointCloudLibrary/pcl/pull/533) 2442* Added progressive morphological filter to extract ground returns 2443 [[#574]](https://github.com/PointCloudLibrary/pcl/pull/574) 2444* Added a filter to remove locally maximal points in the z dimension 2445 [[#577]](https://github.com/PointCloudLibrary/pcl/pull/577) 2446* Added an approximate version of the progressive morphological filter 2447 [[#665]](https://github.com/PointCloudLibrary/pcl/pull/665) 2448* Added `ModelOutlierRemoval` class that filters points in a cloud based on the 2449 distance between model and point 2450 [[#702]](https://github.com/PointCloudLibrary/pcl/pull/702) 2451 2452### `libpcl_io:` 2453 2454* Added experimental version of an OpenNI 2.x grabber 2455 [[#276]](https://github.com/PointCloudLibrary/pcl/pull/276) 2456 [[#843]](https://github.com/PointCloudLibrary/pcl/pull/843) 2457* Added support for IFS file format 2458 [[#354]](https://github.com/PointCloudLibrary/pcl/pull/354) 2459 [[#356]](https://github.com/PointCloudLibrary/pcl/pull/356) 2460* Added possibility to load `PCLPointCloud2` from OBJ files 2461 [[#363]](https://github.com/PointCloudLibrary/pcl/pull/363) 2462* Fixed loading and saving of PLY files 2463 [[#510]](https://github.com/PointCloudLibrary/pcl/pull/510) 2464 [[#579]](https://github.com/PointCloudLibrary/pcl/pull/579) 2465* Fixed race conditions in `PCDGrabber` 2466 [[#582]](https://github.com/PointCloudLibrary/pcl/pull/582) 2467* Fixed multi openni grabber buffer corruption 2468 [[#845]](https://github.com/PointCloudLibrary/pcl/pull/845) 2469* Fixed incompatibility with Boost 1.56 in `LZFImageWriter` 2470 [[#867]](https://github.com/PointCloudLibrary/pcl/pull/867) 2471* Fixed a bug in `PLYReader` which lead to deformation of point clouds when 2472 displayed in `CloudViewer` or `PCLVisualizer` 2473 [[#879]](https://github.com/PointCloudLibrary/pcl/pull/879) 2474 2475### `libpcl_kdtree:` 2476 2477* Fixed double memory free bug in `KdTreeFLANN` 2478 [[#618]](https://github.com/PointCloudLibrary/pcl/pull/618) 2479 2480### `libpcl_keypoints:` 2481 2482* Added a method `Keypoint::getKeypointsIndices ()` 2483 [[#318]](https://github.com/PointCloudLibrary/pcl/pull/318) 2484* Added keypoints based on Trajkovic and Hedley operator (2D and 3D versions) 2485 [[#409]](https://github.com/PointCloudLibrary/pcl/pull/409) 2486 2487### `libpcl_octree:` 2488 2489* Fixed a bug in `OctreePointCloudAdjacency::computeNeighbors()` 2490 [[#455]](https://github.com/PointCloudLibrary/pcl/pull/455) 2491* Accelerated `OctreePointCloudAdjacency` building by disabling dynamic key 2492 resizing 2493 [[#332]](https://github.com/PointCloudLibrary/pcl/pull/332) 2494* Fixed a bug with infinite points in `OctreePointCloudAdjacency` 2495 [[#723]](https://github.com/PointCloudLibrary/pcl/pull/723) 2496 2497### `libpcl_people:` 2498 2499* Added a possibility to define a transformation matrix for people tracker 2500 [[#606]](https://github.com/PointCloudLibrary/pcl/pull/606) 2501 2502### `libpcl_recognition:` 2503 2504* Allow PCL to be built against a system-wide installed metslib 2505 [[#299]](https://github.com/PointCloudLibrary/pcl/pull/299) 2506* Fixed a bug in `ObjRecRANSAC::addModel()` 2507 [[#269]](https://github.com/PointCloudLibrary/pcl/pull/269) 2508* Added `LINEMOD::loadTemplates()` (useful for object recognition systems that 2509 store templates for different objects in different files) 2510 [[#358]](https://github.com/PointCloudLibrary/pcl/pull/358) 2511 2512### `libpcl_registration:` 2513 2514* Fixed `SampleConsensusInitialAlignment::hasConverged()` 2515 [[#339]](https://github.com/PointCloudLibrary/pcl/pull/339) 2516* Added `JointIterativeClosestPoint` 2517 [[#344]](https://github.com/PointCloudLibrary/pcl/pull/344) 2518* Made correspondence rejectors to actually work with ICP 2519 [[#419]](https://github.com/PointCloudLibrary/pcl/pull/419) 2520* Added `GeneralizedIterativeClosestPoint6D` that integrates Lab color space 2521 information into the GICP algorithm 2522 [[#491]](https://github.com/PointCloudLibrary/pcl/pull/491) 2523* Fixed bugs and optimized `SampleConsensusPrerejective` 2524 [[#741]](https://github.com/PointCloudLibrary/pcl/pull/741) 2525* Fixed a bug in `TransformationEstimationSVDScale` 2526 [[#885]](https://github.com/PointCloudLibrary/pcl/pull/885) 2527 2528### `libpcl_sample_consensus:` 2529 2530* Unified `SampleConsensusModelNormalParallelPlane` with 2531 `SampleConsensusModelNormalPlane` to avoid code duplication 2532 [[#696]](https://github.com/PointCloudLibrary/pcl/pull/696) 2533 2534### `libpcl_search:` 2535 2536* `search::KdTree` can now be used with different KdTree implementations 2537 [[#81]](https://github.com/PointCloudLibrary/pcl/pull/81) 2538* Added a new interface to FLANN's multiple randomized trees for 2539 high-dimensional (feature) searches 2540 [[#435]](https://github.com/PointCloudLibrary/pcl/pull/435) 2541* Fixed a bug in the `Ptr` typdef in `KdTree` 2542 [[#820]](https://github.com/PointCloudLibrary/pcl/pull/820) 2543 2544### `libpcl_segmentation:` 2545 2546* Added `GrabCut` segmentation and a show-case application for 2D 2547 [[#330]](https://github.com/PointCloudLibrary/pcl/pull/330) 2548* Updated `RegionGrowingRGB::assembleRegion()` to speed up the algorithm 2549 [[#538]](https://github.com/PointCloudLibrary/pcl/pull/538) 2550* Fixed a bug with missing point infinity test in `RegionGrowing` 2551 [[#617]](https://github.com/PointCloudLibrary/pcl/pull/617) 2552* Fixed alignment issue in `SupervoxelClustering` 2553 [[#625]](https://github.com/PointCloudLibrary/pcl/pull/625) 2554* Added a curvature parameter to `Region3D` class 2555 [[#653]](https://github.com/PointCloudLibrary/pcl/pull/653) 2556* Fixed a minor bug in `OrganizedConnectedComponentSegmentation` 2557 [[#802]](https://github.com/PointCloudLibrary/pcl/pull/802) 2558 2559### `libpcl_surface:` 2560 2561* Fixed a bug in `EarClipping` where computation failed if all vertices have 2562 the same x or y component 2563 [[#130]](https://github.com/PointCloudLibrary/pcl/pull/130) 2564* Added support for unequal focal lengths along different axes in texture 2565 mapping 2566 [[#352]](https://github.com/PointCloudLibrary/pcl/pull/352) 2567* Speeded up bilateral upsampling 2568 [[#689]](https://github.com/PointCloudLibrary/pcl/pull/689) 2569* Reduced space usage in `MovingLeastSquares` 2570 [[#785]](https://github.com/PointCloudLibrary/pcl/pull/785) 2571* Adds MLS instantiation for input type PointXYZRGBNormal 2572 [[#1545]](https://github.com/PointCloudLibrary/pcl/pull/1545) 2573 2574### `libpcl_tracking:` 2575 2576* Fixed Hue distance calculation in tracking `HSVColorCoherence` 2577 [[#390]](https://github.com/PointCloudLibrary/pcl/pull/390) 2578* Added pyramidal KLT tracking 2579 [[#587]](https://github.com/PointCloudLibrary/pcl/pull/587) 2580 2581### `libpcl_visualization:` 2582 2583* Added a new color handler `PointCloudColorHandlerRGBAField` that takes into 2584 account alpha channel 2585 [[#306]](https://github.com/PointCloudLibrary/pcl/pull/306) 2586* Fixed `PCLVisualizer` crashes on OS X 2587 [[#384]](https://github.com/PointCloudLibrary/pcl/pull/384) 2588* Added possibility to display texture on polygon meshes 2589 [[#400]](https://github.com/PointCloudLibrary/pcl/pull/400) 2590* Added ability to add and remove several coordinate systems 2591 [[#401]](https://github.com/PointCloudLibrary/pcl/pull/401) 2592* Added `ImageViewer::markPoints()` 2593 [[#439]](https://github.com/PointCloudLibrary/pcl/pull/439) 2594* Added `setWindowPosition()` and `setWindowName()` to `PCLPlotter` 2595 [[#457]](https://github.com/PointCloudLibrary/pcl/pull/457) 2596* Changed camera parameters display to be more user-friendly 2597 [[#544]](https://github.com/PointCloudLibrary/pcl/pull/544) 2598* Added `PCLVisualizer::updateCoordinateSystemPose()` 2599 [[#569]](https://github.com/PointCloudLibrary/pcl/pull/569) 2600* Fixed display of non-triangular meshes in `PCLVisualizer` 2601 [[#686]](https://github.com/PointCloudLibrary/pcl/pull/686) 2602* Added a capability to save and restore camera view in `PCLVisualizer` 2603 [[#703]](https://github.com/PointCloudLibrary/pcl/pull/703) 2604* Added `PCLVisualizer::getShapeActorMap()` function 2605 [[#725]](https://github.com/PointCloudLibrary/pcl/pull/725) 2606* Fixed undefined behavior when drawing axis in `PCLVisualizer` 2607 [[#762]](https://github.com/PointCloudLibrary/pcl/pull/762) 2608* Fixed HSV to RGB conversion in `PointCloudColorHandlerHSVField` 2609 [[#772]](https://github.com/PointCloudLibrary/pcl/pull/772) 2610* Fixed non-working key presses in visualization GUIs on Mac OS X systems 2611 [[#795]](https://github.com/PointCloudLibrary/pcl/pull/795) 2612* Fixed a bug in `PCLVisualizer::addCube()` 2613 [[#846]](https://github.com/PointCloudLibrary/pcl/pull/846) 2614* Fixed a bug in cone visualization and added possibility to set cone length 2615 [[#881]](https://github.com/PointCloudLibrary/pcl/pull/881) 2616 2617### `PCL Tools:` 2618 2619* Added a simple tool to compute Hausdorff distance between two point clouds 2620 [[#519]](https://github.com/PointCloudLibrary/pcl/pull/519) 2621* Updated `pcl_viewer` to use RGB color handler as default 2622 [[#556]](https://github.com/PointCloudLibrary/pcl/pull/556) 2623* Added a morphological tool `pcl_morph` to apply dilate/erode/open/close 2624 operations on the Z dimension 2625 [[#572]](https://github.com/PointCloudLibrary/pcl/pull/572) 2626* Added a tool `pcl_generate` to generate random clouds 2627 [[#599]](https://github.com/PointCloudLibrary/pcl/pull/599) 2628* Added a tool `pcl_grid_min` to find grid minimums 2629 [[#603]](https://github.com/PointCloudLibrary/pcl/pull/603) 2630* Added a tool `pcl_local_max` to filter out local maxima 2631 [[#604]](https://github.com/PointCloudLibrary/pcl/pull/604) 2632* Added optional depth image input to `pcl_png2pcd` converter 2633 [[#680]](https://github.com/PointCloudLibrary/pcl/pull/680) 2634* Fixed memory size calculation in `pcl_openni_pcd_recorder` 2635 [[#676]](https://github.com/PointCloudLibrary/pcl/pull/676) 2636* Added device ID parameter to `pcl_openni_pcd_recorder` 2637 [[#673]](https://github.com/PointCloudLibrary/pcl/pull/673) 2638* Added automatic camera reset on startup in `pcl_viewer` 2639 [[#693]](https://github.com/PointCloudLibrary/pcl/pull/693) 2640* Added a capability to save and restore camera view in `pcl_viewer` 2641 [[#703]](https://github.com/PointCloudLibrary/pcl/pull/703) 2642* Updated `pcl_pcd2png` tool to be able to paint pixels corresponding to 2643 infinite points with black. Added Glasbey lookup table to paint labels with 2644 a fixed set of highly distinctive colors. 2645 [[#767]](https://github.com/PointCloudLibrary/pcl/pull/767) 2646* Added `pcl_obj2pcd` tool 2647 [[#816]](https://github.com/PointCloudLibrary/pcl/pull/816) 2648 2649### `PCL Apps:` 2650 2651* Fixed disappearing cloud from selection in Cloud Composer 2652 [[#814]](https://github.com/PointCloudLibrary/pcl/pull/814) 2653 2654 2655## *= 1.7.1 (07.10.2013) =* 2656 2657 * New pcl::io::savePNGFile() functions and pcd2png tool (deprecates organized_pcd_to_png). 2658 * Support for Intel Perceptual Computing SDK cameras. 2659 * New Dual quaternion transformation estimation algorithm. 2660 * Bugfixes. 2661 2662## *= 1.7.0 (23.07.2013) =* 2663 2664### `libpcl_common:` 2665 2666* Added pcl::Intensity and pcl::Intensity8u point types 2667* Added pcl::RangeImageSpherical sub-class that is more suitable than pcl::RangeImage for some kinds of 360° range images (as discussed in [PCL-users] Range Image Projection) 2668* Added DefaultPointRepresentation<pcl::Narf36> to allow pcl::Narf36 to be used with pcl::search (#915) 2669 2670### `PCL Apps:` 2671 2672* Added cloud_composer app 2673* Added PCLModeler, with a tree view scene explorer and multiple render windows support 2674* Added client app for the point cloud streaming server 2675* Added new server app for point cloud streaming to mobile devices (pcl_openni_mobile_server) 2676* Added a new demo for the connected component segmentation. Includes a QT gui that allows various features to be toggled on/off. 2677* Added SHOT estimator wrapper using OMP 2678* Added openni_organized_multi_plane_segmentation to demonstrate the OrganizedMultiPlaneSegmentation class. 2679 2680### `libpcl_recognition:` 2681 2682* Added a new tutorial for "libpcl_recognition" for Correspondence Grouping by Tommaso Cavallari (#666) 2683* Added support for .LMT file loading (which are TARed files for PCD masks and SQMMT linemod templates) 2684* Changes in the computation of the modality to improve performance 2685* Fixed a compilation error on windows; for some reason 'NULL' needs to be explicitly casted to the pointer type 2686* Added a model library class used for maintaining the object models to be recognized. 2687* Changed the interface to make it less confusing to use. 2688* Added a couple useful overloads for "Houg###Grouping" and "GeometricConsistencyGrouping" 2689* Added CRHAlignment class. 2690* Added Papazov HV method. 2691* Fixed a bug in Poisson surface reconstruction that was causing the unit test to fail 2692* Added option for automatic selection of number of features in extractFeature 2693* Added a new greedy hypotheses verification method. 2694* Added semi scale invariant linemod template detection 2695* Fixed RF search radius in "Houg###Grouping" 2696* Fixed some bugs in detection refinement along viewing direction 2697* Fixed bug in LineRGBD::computeTransformedTemplatePoints (template point cloud's width and height fields were not set) 2698* Converted uses of PointXYZRGB to PointXYZRGBA; converted std::cerr messages to PCL_DEBUG; minor reformatting to keep lines under 120 characters 2699* Fixed some bugs related to bounding box computation and computation of transformed template point clouds 2700* Added functionality to specify an object ID when loading templates in LineRGBD; 2701* Added "GeometricConsistencyGrouping" clustering class 2702* Added high level interface for RGBD version of linemod (not all parts are implemented yet) 2703* Added SSE optimizations to improve detection speed 2704* Added Ransac Correspondence Rejection into Houg###Grouping 2705* Changed method for selecting features in color gradient modality 2706* Added "CorrespondenceGrouping" abstract base class for correspondence grouping in pcl_recognitio 2707* Added cosine approximation in score computation 2708* Added structure for hypotheses verification methods. Base abstract class 2709 2710### `libpcl_keypoints` 2711 2712* Added implementation of the Intrinsic Shape Signature keypoint detector 2713* fixed crash caused by setNormals() in HarrisKeypoint3D (related to #745) 2714 2715### `libpcl_outofcore:` 2716 2717* Added support for PointCloud + gen LOD 2718* Added PointCloud2 support for outofcore queries via new "queryBBIncludes" method 2719* Added "copyPointCloud" support for PointCloud2 without indices 2720* Added feature: outofcore binary compressed pcd files to store point data on disk 2721* Bug fix: outofcore write buffer constant limitation fixed so outofcore_process will work with large 20M+ point TRCS data sets 2722* Constants for write buffer changed to 2e12 to support insertion of very large point clouds until new serialization is implemented 2723* Added getVoxelSideLength to octree_base for displaying of nodes in visualizer 2724 2725 2726### `libpcl_search:` 2727 2728* FlannSearch: fixed wrong typedef (::Ptr would break if FlannDistance!=flann::L2) and compiler error 2729* Added new option in `FlannSearch`: FLANN KMeans Tree can now be uses as the search algorithm 2730 2731### `libpcl_visualization:` 2732 2733* Added specific methods to handle monochrome images represented by a PointCloud<Intensity> or a PointCloud<Intensity8u> 2734* Add area selection option to PCLVisualizer so user can get a whole area indexes 2735* Fix the ImageViewer shapes overlay using vtkContextItem so they now appear with transparent background 2736 2737### `libpcl_tools:` 2738 2739* Added a PNG to PCD converter 2740 2741### `libpcl_io:` 2742 2743* Added support for the Velodyne High Definition Laser (HDL) 2744* Add support for foo/bar vertex property in PLY file reading 2745 2746## *= 1.6.0 (2012-07-15) = :: "About time" =* 2747 2748The most notable overall changes are: 2749 2750 2751### `PCL Tools:` 2752 2753* Added a tool for interfacing the marching cubes algorithms 2754* Added a PLY To PCD conversion tool 2755* Added a command line tool for transforming datasets based on their viewpoint 2756* Implemented feature #605: New octree visualizer example (Contributed by Raphael Favier. Thanks!) 2757* Updated "openni_save_image" to save both RGB and depth images as TIFF 2758* Added two command line tools for converting PCD data into PLY and VTK formats 2759* Fix for #504: Make ShapeContext and SpinImage uniform (thanks David!) 2760 2761### `libpcl_common:` 2762 2763* Fixed bug #658: Compiler error: undefined reference for getEulerAngles in pcl/common (thanks Gioia!) 2764* Moved towards a unified "eigen.h" header that only includes the Eigen headers that we need. 2765* Added boost 1.48 and 1.49 2766* Added a default "PointRepresentation" type for "ShapeContext" (thanks Elizabeth!) 2767* Added a new "PlanarPolygon" class for representing 2D planar polygon regions 2768* Added "SetIfFieldExists" functor helper to copy data from a variable into a point field, if it exists 2769* Added a helper functor ("CopyIfFieldExists") for copying out specific data out of a PointT field. See "test_common.cpp" for usage examples 2770* Added point value initialization by default in constructors for "PointXYZI", "Normal", "PointXYZHSV", "PointXYZRGBL", and "PointXYZRGB" 2771* Updating transforms.hpp to ensure that point fields are copied when applying affine transform to a specific set of indices. 2772* Added error messages on failure of aux functions for PointCloud2, "pcl::concatenatePointCloud" and "pcl::concatenateFields" 2773* Fixed win32 compilation error on test_plane_intersection 2774* Implemented plane intersection feature (feature #644) with a related unit test 2775* Added kissfft library 2776* Bugfix of eigen22 version for smallest eigenvalue/vector 2777* Add specialization for pcl::RGB point type 2778* Intensity field accessor moved from keypoints/sift to common to be shared by others 2779* Fixed some valid usages of point traits (e.g. static_cast::type>(...) ) on GCC 4.4.3 by explicitly instantiating some assert template long before it should actually be needed. 2780* Added ESF Histogram 640 to point types 2781 2782### `libpcl_filter:` 2783 2784* Added command line option "-keep" to preserve the organized data structure after a "Passthrough" filter 2785* Implemented feature #663: flexible comparison for conditional_removal filter (Thanks Julian!) 2786* Fix for bug #672: ijk grid coordinates in VoxelGrid computed differently in different functions (thanks Nicholas!) 2787* Fix for #572: Example "Euclidean Cluster Extraction" crashes / bug in VoxelGrid filter 2788* Improved performance of 3x getFieldIndex and removed dependency on pcl_io 2789* Fixed and implemented feature #518: VoxelGrid<> performance improvement (roughly 50+ times) (thanks Radoslaw!) 2790* Fixed the visual studio compilation error described in feature #614 (thanks Remus!) 2791* Fixed bug #674 (Elements in leaf_layout_ in VoxelGrid are not reset between calls to VoxelGrid::filter), Thanks Nicholas for the patch! 2792* Work on issue 614: updated the PassThrough filter to derive from FilterIndices instead of Filter 2793* Fix: use a makInfinite function to annihilate points in zero_padding cases 2794* Add new class to handle convolution in 3D space for radial basis kernel 2795* Modifying VoxelGridCovariance to allow for control over minimum number of points and eigen value inflation for singularity prevention. 2796 2797### `libpcl_visualization:` 2798 2799* Overloaded "addRectangle" in "ImageViewer" with several useful methods that take as input 3D min-max points and organized datasets, as well as image masks to create 2D rectangles on screen 2800* Renamed "addBox" to "addFilledRectangle" in "ImageViewer" 2801* Added "addPlanarPolygon" methods for "ImageViewer" to display planar polygonal contours in the image 2802* Added new "addMask" methods to "ImageViewer" for displaying 2D image masks from a given "PointCloud<T>" 2803* "PCLVisualizer" now has a new "addCube" method for passing {x, y, z}_{min, max} directly to the screen (thanks Jeremie!) 2804* Patch for two cases of mismatched new/free cases for PCL<->VTK data exchange (thanks Peter!) 2805* Fixed a problem with "removeLayer" which was causing shapes to flicker on screen on sequences like: "removeLayer; addShape; spinOnce" 2806* Added "addLine" to "ImageViewer" for displaying 2D lines 2807* Added "PCLVisualizer::close" to close the interactor window and "PCLVisualizer::set{Size, Position}" to set the window size and position on screen added image viewer to the docs 2808* Added better support for 2D image visualization (via "pcl::visualization::ImageViewer"): add/remove layers with different transparency, add 2D shapes (rectangles, circles, points, etc) 2809* Added "wasStopped" to "ImageViewer" to check if the window has been closed 2810* Fixed an issue in pcd_viewer where the PointPicking callback wasn't functioning properly 2811* Added "setPosition" to "pcl::visualization::ImageViewer" for allowing the image viewer to be moved somewhere else on screen 2812* Added two additional "addPointCloud" helpers for directly displaying "sensor_msgs::PointCloud2" data 2813* Added "addPointCloud" method for "sensor_msgs::PointCloud2" data (useful to bypass the conversion to XYZ for "pcd_viewer") 2814* Added the capability to remove a cloud when "removeShape" is called, to preserve API backward compatibility (a "PolygonMesh" is not treated as a "CloudActor" inside "PCLVisualizer") 2815* Fixed a bug where the scalars were not updated properly on "updatePointCloud" thus causing VTK warnings on the console 2816* Fixing issue #105 (PCLVisualizer::spinOnce don't work on Win32 system). Thanks Thibault and Alessio. 2817* Added "PointXYZRGBA" callbacks for "OpenNIGrabber" and "PCLVisualizer". 2818* Fixed two bugs where a segfault would occur in "addPolygonMesh" when the input cloud would be empty, as well as #563 : PCLVisualizer::addPolygonMesh crash (thanks Mourad!) 2819* Fixed a bug where changing the point color using "setPointCloudRenderingProperties" would not update the actor's colors on screen 2820* Fix for #532: "PCLVizualizer::addCoordinateSystem()" switch from "Eigen::Matrix4f" to "Eigen::Affine3f" (thanks Aurel!) 2821* Fix for #524: ctrl problem with pcd_viewer (thanks Mourad!) 2822* Adding opt in flag -use_vbos to pcl_visuzlier. It's still quite buggy, but shouldn't affect the visualizer unless this flag is passed. 2823* Added vtkVertexBufferObject/Mapper and moved pcl_image_canvas_source2d 2824* Added case handling where an actor might not have a valid viewpoint_transformation matrix resulting in a seg fault if pressing ALT+R 2825* Fixed bug in displaying addCoordinateSystem 2826* Added method to visualize intensity gradients 2827* Added zoom functionality for ALT + Scroll-Wheel 2828* Merged openni_viewer_simple with openni_viewer with all the available options except XYZI 2829 2830### `libpcl_octree:` 2831 2832* Fixed bug #693 - bounding box adaption affected change detection results 2833* Applied patch by Robert Huitl, Issue #651, define maxVoxelCount in octree raycasting 2834* Fixed OSX compiler warnings 2835* Fixed bug #683 - octree depth changes during stream compression 2836* Added new octree key class 2837* Added bounding box checks in method isVoxelOccupiedAtPoint (octree pointcloud class) 2838* Removed maxKeys limit in octree key generation method 2839* Added range checks for integer keys in octree classes, extended octree key class 2840* Fixed bug #620 (octree search fails if point cloud with indices is given) in octree pointcloud class 2841 2842### `libpcl_io:` 2843 2844* Added "DepthImage" signals/callbacks for "PCDGrabber" 2845* Support for loading TAR-ed LMT files 2846* Added support for TAR-PCD files for "PCDGrabber". Simply use "tar cvf file.tar *.pcd" and use "PCDGrabber" on it afterwards 2847* Fixed a bug in the "PointCloud<MatrixXf>" feature estimation and I/O regarding the fields "count" property 2848* Added a "saveVTKFile" method helper for saving "sensor_msgs::PointCloud2" data 2849* Added support for reading PCD ascii and binary files (binary_compressed not implemented yet!) for pcl::PointCloud<Eigen::MatrixXf> datatypes. 2850* Implemented and tested a fix for feature request #558: Implement IO for PointCloud<MatrixXf> 2851* Adding missing openni_device files from install 2852* Fixed a bug in ply reader 2853* Fixed bug #683 - dropping empty point clouds during stream compression 2854* Add functions to convert between PCL and VTK data structures. 2855* Handle red_diffuse, blue_diffuse and green_diffuse vertex properties 2856* Fix bug where normals were written before RGB 2857* Bugfix for #627 - Wrong include path for ply header 2858 2859### `libpcl_features:` 2860 2861* Fixed bug #676 in PCL Feature Search (thanks Adam!) 2862* Fixes compilation problem on Windows due to size_t variable in omp loop. 2863* Implemented feature request #661: border management in integral image normal estimation 2864* Fixed PFHRGBEstimation bug, thanks Luis 2865* Bug fix in SHOT feature, thanks wack 2866* Fixed a bug which caused some normals to point in the wrong direction 2867* Added Camera Roll histogram 2868* Fix bug in index used for normal selection 2869* Added esf feature 2870* Added setViewPoint functionality and useSensorOriginAsViewPoint method to reset the viewpoint 2871* Fixed bug #576 - CVFH respect setIndices now 2872* Fixed issue #550: Uninformative error in VFHEstimation (thanks David!) 2873* Fix #527: Bug in IntegralImageNormalEstimation (thanks Christoph!) 2874* Fixed #544: overflow in implicit constant conversion warnings (thanks David!) 2875* Modified SHOT omp so that the default computation of the reference frames 2876* SHOT: Fixed invalid access when keypoints have increased from the previous call. 2877* Setting sensor origin and orientation correctly for normal point cloud 2878* Fixed a bug in estimating the orientation of the normal (view point wasn't initialized in the constructor) 2879* Bug fix: if the cloud is not dense search for neighbours could raise an excpetion 2880* Bug fix: SHOT accepts only radius search 2881 2882### `libpcl_segmentation:` 2883 2884* Fixed a few issues in the new segmentation classes where some comparators didn't have the appropriate "Ptr" and "ConstPtr" well defined 2885* Fixed a bug where points passed onto the search method were not checked for NaN/Inf in "pcl::SegmentDifferences" 2886* Added a missing "setDistanceFromOrigin" to "SACSegmentationFromNormals" for "SACMODEL_NORMAL_PARALLEL_PLANE" (thanks A. Barral) 2887* Fix for #134 (Prism Extraction on Table top (flipping normal fails)) 2888* Fixed a segmentation fault in "SACSegmentationFromNormals" caused by calling "segment" without passing the input XYZ or normal data 2889* Fixed a bug in organized connected component segmentation. Previously would crash if the first pixel had a valid depth (doesn't occur on kinect data). 2890* Bugfix of issue # 675: Euclidean cluster extraction access violation. Thanks to Icy for helping find the solution 2891* Fixed bug #673 in EuclideanClusterExtraction 2892* Added new code for min cut segmentation 2893* Fixed bug #681: member variable was not set in constructor (thanks Bhaskara!) 2894* Added a threshold to MultiPlaneSegmentation for curvature, allowing us to discard smooth (but non-planar) regions. 2895* Added optional projection for multi_plane_segmentation. 2896* Added some new comparators for use with OrganizedConnectedComponents including RGB and edge aware 2897* Added additional fucnction call for segmentAndRefine. 2898* Added a comparator for doing euclidean clustering on organized point clouds. 2899* Added fast SeededHueSegmentation implementations 2900* Fixed segfault in multi plane refinement and functorized the comparison. 2901* Improved MultiPlaneSegmentation to allow refinement of regions, and support different comparators. 2902* New classes AutomatedSegmentation, AutomatedTreeSegmentation 2903* Added OrganizedConnectedComponentSegmentation, which is a general class for use with organized point clouds and can take user specified comparators. 2904* Added OrganizedMultiPlaneSegmentation which returns all planes in an organized cloud, along with the PlaneCoefficientComparator needed to do this. 2905 2906### `libpcl_surface:` 2907 2908* Fixed a grave bug where "setIndices" was not used in "ConvexHull" 2909* Added fix for #562: pcl::ConcaveHull crashes on an empty cloud (thanks Mourad!) 2910* Added "PCLSurfaceBase" base class for "MeshConstruction" and "SurfaceReconstruction", to unify the API around "setSearchMethod(&Search)" and "reconstruct(&PolygonMesh)" 2911* Added GPU accelerated convex hull. 7x for Ramesses dataset (700k points) 2912* Added a setDimension function to concave hull, so users can specify desired dimensionality of the resulting hull. If no dimension is specified, one will be automatically determined. 2913* Fixed bug #692 - MovingLeastSquares indices issues 2914* Added curve fitting and trimming of surfaces to examples/surface/example_nurbs_fitting_surface.cpp 2915* Added iterative fitting routines for curve fitting surface::on_nurbs::Triangulation - added conversion functions for nurbs curve to line-polygon - added conversion functions for nurbs surface and curve to PolyMesh 2916* Added flag to enable/disable usage of UmfPack for fast solving of sparse systems of equations - added triangulation functions to convert ON_NurbsSurface to pcl::PolygonMesh 2917* Added bug fix in ConcaveHull, thanks to summer.icecream 2918* Added marching cubes using RBF and Hoppe SDF 2919* Pushed new functions that perform texture-mapping on meshes. 2920* Fix: issue #646 (vtk_smoothing not copied) 2921* Added new functionalities to TextureMapping: Find occlusions based on raytracing in octrees, UV mapping based on Texture resolution and camera focal length. 2922* Relaxing dimensionality check threshold on concave_hull, so that 3D hulls should no longer be calculated on 2D input. 2923* Added poisson filter 2924 2925### `libpcl_keypoints:` 2926 2927* Added combined Harris keypoint detector to detect corners in image, in 3D and combined ones 2928* Fix bug #691 (Compiler error: undefined reference for setMinimalDistance in pcl/keypoints/harris_keypoint2D) 2929* Fixed the #637 pitfall in harris3D and harris6D 2930* Added implementation of 2D corner detectors 2931 2932### `libpcl_geometry:` 2933 2934* Added a new PCL library for computational geometry 2935* Added bugfix to remove self intersecting polygons 2936* Fixed some refinement corner cases for polygon approximation 2937* Added line iterator class for iterating over e.g. an image/organized cloud in the pixel space. 2938 2939 2940### `libpcl_search:` 2941 2942* Added NaN checks in "pcl::search::FlannSearch" 2943* Skip infinite neighbor candidates in pcl::search::OrganizedNeighbor::radiusSearch 2944* Added point projection method for organized search 2945 2946### `libpcl_tracking:` 2947 2948* Fixed issue #514: SpinImages segfault when using setKSearch (thanks David!) 2949* gcc-4.7 compatibility issues in pcl::tracking fixed. Thanks to Rich Mattes 2950 2951### `libpcl_sample_consensus:` 2952 2953* Implemented feature #589: Add sac_model_cone and sac_model_normal_sphere (contributed by Stefan Schrandt. Thanks!) 2954* Fix for #616: pcl::ProgressiveSampleConsensus<PointT>::getRandomSamples unimplemented (thanks Mourad!) 2955* Fix for #498: Bug in setOptimizeCoefficients for pcl::SACMODEL_SPHERE. 2956* Fixed bug #648: code was checking for plane perpendicular to given axis instead of parallel 2957* Applied patch for feature request #649: Locally constrained model generation for Sample Consensus 2958 2959### `libpcl_registration:` 2960 2961* Fixed issue #619: Cannot call pcl::registration::TransformationValidationEuclidean::validateTransformation (thanks Raphael!) 2962* Added code for #592: correspondence estimation based on normal shooting (coded by Aravindhan. Thanks!) 2963* Fixed #533: WarpPointRigid missing EIGEN_MAKE_ALIGNED_OPERATOR_NEW (thanks Radoslaw!) 2964* Correct overlapping grid distribution in 2D NDT implementation 2965 2966 2967## *= 1.5.0 (2012-02-22) = :: "Better late than never" =* 2968 2969The most notable overall changes are: 2970 2971* new framework for PCL examples in the example/ folder 2972* added the ICCV 2011 tutorial code to the list of bundled applications 2973* a brand new PCL tracking library (`libpcl_tracking`) 2974* new, well-tested implementations for `OrganizedNeighbor` and `BruteForceSearch` in `libpcl_search` 2975* considerable speedups for: eigendecomposition, covariance matrix estimation, and normal estimation (now running at 30Hz on VGA data) 2976* a lot of bug fixes and code refactorizations and optimizations (thanks to everyone that contributed!) 2977* compilation now defaults to Eigen column major again, but all the code in PCL should compile and work against both row major and column major matrices. 2978* libpcl_range_image is now incorporated into pcl_common, no extra linking required. 2979 2980### `libpcl_common` 2981 2982* added two new methods to compute centroid and covariance at once. Both are faster than calculating first the centroid and afterwards the covariance matrix. The float versions of the new methods are twice as fast but less accurate, whereas the double versions are more accurate and about 35% faster. 2983* fixed a few issues in our ScopeTime class where the creation of the string as well as the cerr were contributing negatively to the time measurements 2984* added empty() to PointCloud<Eigen::MatrixXf> to return whether the matrix is empty or not 2985* added size to PointCloud<Eigen::MatrixXf> and fixed the constructor warnings exposed by -pedantic 2986* added two new Point Types: Axis and ReferenceFrame as they are used in the Reference Frame calculations 2987* added a helper functor (`CopyIfFieldExists`) for copying out specific data out of a PointT field. See `test_common.cpp` for usage examples 2988* implemented and tested a fix for feature request #558: Implement IO for PointCloud<MatrixXf> 2989 2990 2991### `libpcl_filters` 2992 2993* refactored RandomSample to return sorted indices. In addition it now runs nearly twice as fast at it did previously. 2994* fixed and implemented feature #518: VoxelGrid<> performance improvement (roughly 50+ times) 2995 2996### `libpcl_kdtree` 2997 2998* removed unneeded mutices, added asserts instead of constant checks (the user is responsible for passing in valid data!) and sped up a few other things in KDTreeFLANN 2999 3000### `libpcl_search` 3001 3002* adapted use of flann::Matrix to new semantics of the 'stride' parameter, fixing incorrect results and a crash in FlannSearch 3003* changes that affect pcl_features, pcl_search, pcl_octree, pcl_registration, pcl_surface: 3004 3005 * we used to have 3 "overloads" for nearestKSearch and 3 for radiusSearch that every class inheriting from pclk::KdTree or pcl::search::Search needed to implement. Because most of the children always had the same implementation (copy&paste) we moved it up in the base class, made the methods virtual, and only children that need to change that behavior will overwrite it. 3006 * the max_nn parameter from radiusSearch has been changed from int with a default value of -1 to an unsigned int with a default value of 0. Each radiusSearch implementation should check for 0 or >= max_points_in_cloud and branch accordingly (if needed). 3007 * const correctness is now implemented everywhere in all nearestKSearch and radiusSearch operations 3008 3009* added an implementation of KdTreeFLANN for PointCloud<Eigen::MatrixXf> data structures 3010* FlannSearch: don't include flann/matrix.h, move all FLANN includes to impl/flann_search.hpp. Also adapt max_nn parameter in radius search to change r3962 (pass 0 to search for all neighbors instead of -1) 3011* completely new and shiny `BruteForceSearch` and `OrganizedNeighbor` classes 3012 3013 3014### `libpcl_octree` 3015 3016* fixed issue #513 (bug in octree iterator) 3017* fixed octree bounding box adaption 3018* fixed range test in getPointByIndex method (octree) 3019* fixed bug #604 & removed compiler warnings in Visual Studio 10 3020* fixed numerical problem in octree pointcloud class when points lie very close to the bounding box bounds 3021* improved performance with std::deque in OctreeBreadthFirstIterator class 3022* added breadth-first octree iterator and depth-first octree iterator classes, restructured octree iterator classes, moved "getVoxelBounds" method from OctreeIterator class to OctreePointCloud class 3023 3024 3025### `libpcl_sample_consensus` 3026 3027* added explicit checks + errors for NaN covariance matrices 3028* fixed a crash on 32bit platforms (thanks bharath) 3029* fix for #498: Bug in setOptimizeCoefficients for pcl::SACMODEL_SPHERE. The issue actually exposed a grave bug introduced with r2755, when we switched from CMinPack to Eigen. The fix touches all segmentation models in pcl_sample_consensus using Levenberg-Marquardt, and TransformationEstimationLM in libpcl_registration. Also added unit test to catch this in the future. 3030 3031### `libpcl_io` 3032 3033* fix row-major/column-major issues in I/O (#578 related) 3034* fixed #593 by removing unimplemented method declarations 3035* added a `saveVTKFile` method helper for saving `sensor_msgs::PointCloud2` data 3036* added support for reading PCD ascii and binary files (binary_compressed not implemented yet!) for pcl::PointCloud<Eigen::MatrixXf> datatypes. 3037* implemented and tested a fix for feature request #558: Implement IO for PointCloud<MatrixXf> 3038* added `PointXYZRGBA` callbacks for `OpenNIGrabber` and `PCLVisualizer` 3039* fixed issue #565 3040* fixed a few bugs in PCDReader regarding uint8/int8 data values and added a comprehensive unit test for all possible combinations of data types that we support in PCL 3041* added isValueFinite for checking whether a value T is finite or not, and rewrote the PCDReader bits of code that perform the is_dense checks 3042* integrated libply written by Ares Lagae as an independent component in io 3043* rely on ply library for PLY parsing, remove the old parser and use the freshly integrated libply, change the namespace ::ply to ::pcl::io::ply to avoid any potential issue 3044 3045 3046### `libpcl_surface` 3047 3048* Updated convex hull. It should now be somewhat faster, and allows users to optionally specify if the input is 2D or 3D, so the input dimension need not be calculated every time. 3049* fix for #562: pcl::ConcaveHull crashes on an empty cloud (thanks Mourad!) 3050* added option to ensure that triangle vertices are ordered in the positive direction around the normals in GreedyProjectionTriangulation 3051* fixed issue #489 in GreedyProjectionTriangulation 3052* fixed triangle vertex ordering issues in OrganizedFastMesh 3053* MarchingCubes now adheres to the new pcl_surface base class architecture 3054* added PCLSurfaceBase base class for MeshConstruction and SurfaceReconstruction, to unify the API around setSearchMethod(&Search) and reconstruct(&PolygonMesh) 3055* added marching_cubes_reconstruction tool 3056 3057### `libpcl_features` 3058 3059* fixed issue #550: Uninformative error in VFHEstimation (thanks David!) 3060* fix for #504: Make ShapeContext and SpinImage uniform (thanks David!). Note: this is an API breaking change, as `setInputCloudWithNormals`, which was deviating from the `FeatureEstimation` API is now replaced with patched `setInputCloud` and `setInputNormals`, thus no longer causing an error. However, we are confident with this change as the API was broken, so this is a bug fix. 3061* fixed a bug in the `PointCloud<MatrixXf>` feature estimation and I/O regarding the fields `count` property 3062* fixed an issue where the header stamp should only be copied from a PointCloud<T> into a PointCloud<MatrixXf> in PCL standalone, and not in PCL in ROS 3063* optimized RSD computation 3064* speeded up normal estimation in IntegralImageNormalEstimation 3065* renamed computeFeature (MatrixXf&) into computeFeatureEigen (MatrixXf&) and compute (MatrixXf&) into computeEigen (MatrixXf&) to keep the compiler happy, avoid multiple inheritance, and use clearer semantics between the two different output estimation methods 3066* fixed an issue where if radius would be defined for VFHEstimation, Feature::initCompute would error out 3067* fixed issue #539 (fpfh_estimation tutorial) 3068* fixed issue #544 (overflow in implicit constant conversion warnings) 3069* fixed issue #527 (bug in IntegralImageNormalEstimation) 3070* fixed issue #514 (SpinImages segfault when using setKSearch) 3071 3072### `libpcl_registration` 3073 3074* added TransformationValidation base class and TransformationValidationEuclidean as a measure to validate whether a final transformation obtained via TransformationEstimation when registering a pair of clouds was correct or not 3075* added getter/setter for maximum number of inner iterations to control number of optimizations in GeneralizedIterativeClosestPoint 3076* fixed issue #507 3077* fixed issue #533 (WarpPointRigid missing EIGEN_MAKE_ALIGNED_OPERATOR_NEW) 3078* fixed issue #464 (already defined function pointers) 3079* fixed a grave bug on 32bit architectures where MapAligned was used incorrectly 3080 3081### `libpcl_segmentation` 3082 3083* fixed a segmentation fault in SACSegmentationFromNormals caused by calling segment without passing the input XYZ or normal data 3084* added a missing `setDistanceFromOrigin` to `SACSegmentationFromNormals` for `SACMODEL_NORMAL_PARALLEL_PLANE` (thanks A. Barral) 3085 3086### `libpcl_visualization` 3087 3088* added `PointXYZRGBA` callbacks for `OpenNIGrabber` and `PCLVisualizer` 3089* fixed two bugs where a segfault would occur in `addPolygonMesh` when the input cloud would be empty, as well as #563 : PCLVisualizer::addPolygonMesh crash (thanks Mourad!) 3090* added the capability to remove a cloud when `removeShape` is called, to preserve API backward compatibility (a `PolygonMesh` is not treated as a `CloudActor` inside `PCLVisualizer`) 3091* fix #472: at startup the camera view pointis set to last added point cloud, but with the key combination ALT+r on can iterate through the view points of the visualized point clouds. 3092* added `addPointCloud` method for `sensor_msgs::PointCloud2` data (useful to bypass the conversion to XYZ for `pcd_viewer`) 3093* added `PCL_VISUALIZER_IMMEDIATE_RENDERING` for processing large datasets 3094* refactorized `pcd_viewer` to consume less memory by skipping the intermediate conversion to `PointCloud<PointXYZ>`, clearing the `PointCloud2` data once converted to VTK, and enabling intermediate mode 3095* added `setPosition` to `pcl::visualization::ImageViewer` for allowing the image viewer to be moved somewhere else on screen 3096* changed the `openni_image` viewer tool to display both RGB and depth images 3097* fixed a nasty bug where the scalars range were not correctly updated in the mapper on updatePointCloud thus causing weird VTK warnings at the console 3098* added setupInteractor to allow QVTK customizations 3099* pcd_grabber_viewer now shows the recorded images in PointXYZRGB clouds, and can use fps=0 and trigger each new frame manually by pressing SPACE 3100* fixed an BGR/RGB issue in image_viewer 3101* added setKeyboardModifier to change the default keyboard modifier from Alt to Shift or Ctrl so that in QVTK or other widgets, we can still use shortcuts like Mod+r, Mod+f, etc 3102* PCLVisualizer is now working with VTK compiled for cocoa, no X11 necessary on OS X 3103* build bundle executable for pcd_viewer if VTK is compiled with Cocoa. With that the keyboard events are handled by the application 3104* modified openni_passthrough to use QVTK instead of VTK 3105* added PCLVisualizer zoom in/out via /- [ alt] 3106* implemented feature #516 (pcd_viewer multiview with .vtk files) 3107* added showMonoImage for displaying a monochrome unsigned char 2D image in PCLVisualizer 3108* added setFullScreen and setWindowBorders methods to allow an user to change the full screen/border properties of the PCLVisualizer GUI 3109* fix for issue #519 (set the minimum number of cloud points to 1 in vtkLODActor) 3110* fix for issue #524 (ctrl problem with pcd_viewer) 3111* fix for issue #532 (PCLVizualizer::addCoordinateSystem() switch from Eigen::Matrix4f to Eigen::Affine3f) 3112* bug fix in pcd_grabber_viewer: now sorting the read .pcd file by name before showing them (was in random order before) 3113* fixed issue #525 (pcd_viewer did not handle nan values correctly in fields other than x, y, z) 3114* fixed a bug where changing the point color using setPointCloudRenderingProperties would not update the actor's colors on screen 3115* workaround for displaying FPS rate on PCLVisualizer - disabled backface culling because of known VTK issue 3116 3117## *= 1.4.0 (2011-12-31) = :: "Happy New Year" =* 3118 3119The most notable overall changes are: 3120 3121* changed the default on the order of data in all Eigen matrices to be **row major** `-DEIGEN_DEFAULT_TO_ROW_MAJOR` (Eigen defaults to column major). Be careful if your code was using 1D index operators, as they might be broken! See http://eigen.tuxfamily.org/dox/TopicStorageOrders.html and http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2011/12/msg00062.html. 3122 3123### `libpcl_common` 3124 3125* added float union to the pointXYZRGBL type, in order to aid PCD_viewer compatibility 3126* bugfix: `pcl::computeCovarianceMatrixNormalized` did not normalize for each implementation 3127* fixed bug #421: `at(u,v)` should return a const reference 3128* added `InitFailedException` and `UnorganizedPointCloudException`. Created `PCL_EXCEPTION` helper macro 3129* added the GFPFH global descriptor point type 3130* added gaussian kernel class and utilities 3131* added `isTrivial` to `pcl::PointRepresentation` which allows avoiding copy operations in special cases, thus speeding up operations like `rep->isValid (p)` 3132* added `eigen33` for smallest eigenvalue/vector and only eigenvalues version 3133* added `PointCloudColorHandlerHSVField` implementation 3134* deleted wrong definition of density in `pcl::transformPointCloud` 3135* added copy constructor for PCLBase 3136* fixed `PointCloud`'s in range inserter: width and height were not updated 3137* added `PCL_MAJOR_VERSION` and `PCL_MINOR_VERSION` #defines per Ryan's request 3138* fixed the `getMatrixXf` advanced user API call to return the correct values now that we are forcing Eigen Matrices to be row major in 1.x 3139* moved the content of `win32_macros.h` into `pcl_macros.h` 3140* added an `isFinite` method to check for x/y/z = NaN in point_types.hpp 3141* moved internal headers from `pcl/ros/point_traits.h` into `pcl/point_traits.h` and `pcl/ros/for_each_type.h` to `pcl/for_each_type.h` (these headers are for internal use only and should have never been imported by user code - however pcl_ros in perception_pcl_unstable will need to be modified when following trunk after this revision, as that is the only external piece of code that should import these headers) 3142* fixed one of the constructors for `pcl::PointCloud<T> (cloud, indices)` that was incomplete 3143* no longer checking "frame_id" parameters in header for operator += in `pcl::PointCloud<T>` 3144* added operator + for `pcl::PointCloud<T>` 3145* improved doxygen documentation all around `libpcl_common` 3146* added new specialization for `pcl::PointCloud<Eigen::MatrixXf>` - for *advanced users only*! (expect the API to change in trunk if needed) 3147* moved `NdCopyPointEigenFunctor` and `NdCopyEigenPointFunctor` from `voxel_grid.h` to `point_cloud.h` 3148* added `CloudProperties` class for optional properties for `pcl::PointCloud<Eigen::MatrixXf>`, and moved `sensor_origin_` and `sensor_orientation_` there (as `properties.sensor_origin` and `properties.sensor_orientation`), and removed `header`, while keeping `header.stamp` as `properties.acquisition_time` 3149* fixed the copy constructor (vector<size_t> -> vector<int>) and added an implementation for the + operator 3150* added a general convolution class. Convolution handles point cloud convolution in rows, columns and horizontal directions. Convolution allows for 3 policies: zero padding (default), borders mirroring and borders duplicating through `PointCloudSpring` class 3151* refactorized `PointCorrespondence` and `Correspondence` into the same thing, per issue #458 3152* added `ChannelProperties` in preparation for 2.0 3153* fixed bug #445: Overloaded the setIndices method in PCLBase so that it can accept `boost::shared_ptr<const std::vector> >` 3154* disabled unit test for `getMatrixXfMap` in DEBUG mode, as it was failing due to eigen's strictness on aligned/unaligned data, and added const+non consts versions 3155 3156### `libpcl_filters` 3157 3158* fixed bug in `random_sample.cpp`; The `PointCloud2` filter wasn't working causing the unit test to fail 3159* crop_box filter now supports `PointT` and `PointCloud2` point clouds 3160* added a normal space sampling filter 3161* fixed bug #433: `pcl::CropBox` doesn't update `width` and `height` member of output point cloud 3162* fixed bug #423 `CropBox` + `VoxelGrid` filters, order changes behaviour (using openni grabber) 3163* add `CropHull` filter for filtering points based on a 2D or 3D convex or concave hull. The ray-polygon intersection test is used, which relies on closed polygons/surfaces 3164* added clipper3D interface and a draft plane_clipper3D implementation 3165* removed spurious old `ColorFilter` class (obsolete, and it was never implemented - the skeleton was just lurking around) 3166* better Doxygen documentation to `PassThrough`, `VoxelGrid` and `Filter` 3167* moved the `set/getFilterLimits`, `set/getFilterFieldName`, and `get/setFilterLimitsNegative` from `Filter` into `VoxelGrid` and `PassThrough`, as they were the only filters using it. The rest were not, thus leading to user confusion and a bloated API. 3168 3169### `libpcl_kdtree` 3170 3171* fixed bug #442: reversed template parameters preventing use of nearestKSearchT and radiusSearchT in `pcl::search::Search` and `pcl::kdtree:KdTree` 3172 3173### `libpcl_search` 3174 3175* fixed a bug in `OrganizedNeighbor` where one of the `radiusSearch` signatures was working only if the cloud is _not_ organized (#420 - thanks Hanno!) 3176* updated `pcl::search:OrganizedNeighbor` to be back functional, radiusSearch is working back, 4-6x faster then KdTree, Knearest still need to implement this 3177* changed `pcl::search::FlannSearch`: fixed style of class and tests, moved impl to hpp 3178* cleaning up `OrganizedNearestNeighbor` as well as implementing one of the missing `radiusSearch` methods 3179* improved documentation for libpcl_search and silenced all Doxygen warnings 3180* removed auto (it needs to be completely rewritten and was left in a very bad state) 3181* made sure all the output of the search method is consistently returning 0 in case the nearest neighbor search failed and not -1 3182* updated kdtree wrapper code for the latest FLANN release 3183 3184### `libpcl_octree` 3185 3186* added method `getVoxelBounds` to octree iterator & removed result vector reserves 3187* improved documentation for `libpcl_octree` and silenced all Doxygen warnings 3188 3189### `libpcl_sample_consensus` 3190 3191* fixed an omission of the sample size declaration for `SACMODEL_PARALLEL_LINES` (thanks Benergy) 3192* replaced rand () with boost random number generators and fixed all failing unit tests 3193* workaround to get rid of infinite loops if no valid model could be found 3194 3195### `libpcl_io` 3196 3197* refactorization and consistent code indentation + make sure the timestamp is not set if we use PCL in ROS 3198* fixed an older issue where the `is_dense` flag was not set appropriately when reading data from a binary file (thanks Updog!) 3199* fixed an issue in the `PLYWriter` class where the element camera was not correctly set thus leading to crashes in Meshlab (thanks Bruno!) 3200* the VTK library loads vertex colors in PLY files as RGB. Added that to the polymesh loader. 3201* fixed 2 bugs in writing `PolygonMesh` and unpacking RGB 3202* fixed a bug in the .OBJ exporter to strip the path from the material library filename (thanks Robert!) 3203* added support for exporting vertex normals to the .OBJ (`pcl::io::saveOBJFile`) file exporter (thanks Robert!) 3204* fixed a 32bit/64bit issue in pointcloud compression 3205* added method to write obj files from `PolygonMesh` 3206* added serial number support for Windows using mahisorns patch. Thanks to mahisorn 3207* overloaded callbacks for `OpenNIGrabber` to output `PointCloud<Eigen::MatrixXf>` datasets 3208* added the possibility to write binary compressed Eigen data to disk using two new methods: `generateHeaderEigen` and `writeBinaryCompressedEigen`. Performance improvements to 30Hz I/O 3209* fix for #463 (Missing Symbol rgb_focal_length_SXGA_) 3210* fix: rgb values need to be packed before saving them in PointCloud2 for `PLYWriter` 3211* added example code for accessing synchronized image x depth data 3212* added support for the Stanford range_grid element and obj_info for PLY files. If you chosse to use range_grid instead of camera then only valid vertices will be written down to the PLY file. 3213 3214### `lipcl_keypoints` 3215 3216* added refine method for `Harris3D` corner detector 3217* rewrote big parts of the NARF keypoint extraction. Hopefully fixing some stability issues. Unfortunately still pretty slow for high resolution point clouds. 3218* fixed bug #461 (SIFT Keypoint result cloud fields not complete); cleaned up the line-wrapping in the error/warning messages 3219 3220### `libpcl_surface` 3221 3222* fixed a bug in `MarchingCubes`'s `getIndexIn1D` which led to the result variable to overflow when the data_size was larger than something around 2^10 (thanks Robert!) 3223* reviewed and slightly modified mls implementation. Added `MovingLeastSquaresOMP` OpenMP implementation 3224* new architecture for the mesh processing algorithms using VTK: `MeshProcessing` 3225* overloaded `reconstruction` and `performReconstruction` in `SurfaceReconstruction` to output a `PointCloud<T>` and `vector<Vertices>` as well 3226* added a new class called `MeshConstruction` per API design decision to split the surface reconstruction methods into topology preserving (`EarClipping, `OrganizedFastMesh`, `GreedyProjectionTriangulation`) and the rest. The new class implements a `reconstruction/performReconstruction` for `PolygonMesh` (for backwards compatibility purposes) and a faster set of the same methods for `vector<Vertices>` 3227* refactorized `GreedyProjectionTriangulation` by making it inherit from the new `MeshConstruction` base class, and removed a lot of old buggy code 3228* overloaded `performReconstruction (PointCloud<T> &, vector<Vertices> &)` per the new `SurfaceReconstruction` API 3229* fixed a bug in `OrganizedFastMesh` where the x/y/z indices were assumed to be 0/1/2, and made it part of the `MeshConstruction` API 3230* optimizations for `OrganizedFastMesh`. Now in 30Hz+ flavor. 3231* fixed a segfault from last night's `EarClipping` refactorization and improved the efficiency of the algorithm considerably 3232* updated `ConvexHull` and `ConcaveHull` to inherit from the new `MeshConstruction` class 3233* renamed `mesh_processing.h` to `processing.h` and `performReconstruction/reconstruct` to `performProcessing/process` for the new `MeshProcessing` API 3234 3235 3236### `libpcl_features` 3237 3238* fixed bug #439: 3DSC unit test fails on MacOS 3239* fixed `IntegralImage2Dim` : setting first line to zero was buggy producing undefined output data. 3240* fixing an issue in `PrincipalCurvaturesEstimation` where the *pc1* and *pc2* magnitudes were not normalized with respect to the neighborhood size, thus making comparisons of different neighborhoods impossible (thanks Steffen!) 3241* fixed `ShapeContext3DEstimation` computation and unit tests by switching from `stdlib.h`'s random () to Boost. 3242* fixed a bug in `IntensityGradient`: need to demean also intensity values, otherwise its assumed that the hyperplane goes always through origin which is not true 3243* overloaded `compute` in `pcl::Feature` to save the output in an `PointCloud<Eigen::MatrixXf>`. Added partial specialization on `Eigen::MatrixXf` to all features and implemented `computeFeature (PointCloud<MatrixXf> &output)` 3244* major doxygenization work 3245* added optimization checks for `is_dense` for some features, implemented NaN output for most (per http://dev.pointclouds.org/issues/457) 3246* added new unit tests for the Eigen::MatrixXf output 3247* fixing the MacOS GCC 4.2.1 compiler segfault by removing the OpenMP #pragma (related to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35364 ?). 3248* fixed bug #468: refactored to make floor explicit. 3249* added a `setUseInternalCache` method for `PFHEstimation` to use the internal cache on demand only. Other fixes to PFH/FPFH/PPF signatures (histogram sums were not adding up to 100.0 in some cases) 3250* major improvements for integral images + added template specialization for one dimensional integral images 3251 3252### `libpcl_registration` 3253 3254* fixed some bugs in ELCH, thanks Frits for pointing them out 3255* Big ELCH cleanup. 3256 3257 * elch.h (API changes): 3258 - Use Boost bundled properties for LoopGraph, every vertex stores a 3259 pointer to the corresponding point cloud in graph[vertex].cloud. 3260 - loop_graph_ is now stored as a shared_ptr. 3261 - loop_start_ and loop_end_ are saved as ints for now (will change in 3262 the future). 3263 - loop_transform_ is not stored as a pointer (may change in the future). 3264 3265 * elch.hpp: 3266 - Remove call to PCLBase::initCompute() as ELCH doesn't use a single 3267 input cloud or indices. 3268 - Change loopOptimizerAlgorithm to use start and end of the loop as 3269 stored in the object. 3270 - Adapt to API changes in elch.h. 3271 3272* added 2D implementation of Normal Distributions Transform for registration (Biber, Strasser; 2003), including example tool program. 3273* reworked internal `Registration` API: Remove private `computeTransformation` without guess, make `computeTransformation` with guess abstract, Adapt all classes implementing `Registration` accordingly. 3274* implemented `SampleConsensusInitialAlignment` with initial guess (thanks Dennis Guse) 3275* cleaned up the `CorrespondenceRejector` API, per #375 3276* apply Mourad's patch for #454; add more doc comments 3277 3278 3279### `libpcl_visualization` 3280 3281 3282* fixed an issue in `pcl::visualization::PointPickingCallback` where `iren->GetMousePosition ()` didn't seem to work on some VTK versions/systems, so we replaced it instead with `iren->GetEventPosition ()` (#444 - thanks Adam!) 3283* fixed a bug in `PointCloudColorHandlerRGBField<sensor_msgs::PointCloud2>` where one of the offsets for Z was incorrectly calculated thus leading to erroneous data (#404 - thanks Lucas!) 3284* set the lighting off on `setShapeRenderingProperties` when the user tries to control the color of the object precisely (maybe add a different lighting on/off property later?) 3285* revert `pcl::visualization::PCLVisualizer::setShapeRenderingProperties` vtk5.2, default in ubuntu LTS, doesn't support the SetLighting method on vtkActor 3286* fixed an issue in `PointCloudColorHandlerRGBField` where using an "rgba" field was causing an error in pcd_viewer (#428 - thanks Maurice!) 3287* added `PointCloudColorHandlerHSVField` 3288* fixed the `PointPickingCallback` behavior on Windows 7: `iren->GetShiftKey ()` returns 4 instead of 1 (thanks bepe) 3289* added `updateFeatureHistogram` functionality to `PCLHistogramVisualizer`, per #456 (thanks Asil!) 3290* added patch from Adam Stambler (Bug #396) 3291* added `removePolygonMesh` to make the API more user friendly (`addPolygonMesh` was already existing, but the polygon meshes were removed using `removeShape` until now) 3292* made the polygon meshes actually implement `CloudActor` structures internally, so that we can use different colors per vertex 3293* added `updatePolygonMesh` and improved the efficiency of `addPolygonMesh` for fast online rendering (i.e., produced via `OrganizedFastMesh`) 3294 3295## *= 1.3.1 (2011-11-30) =* 3296 3297* fixed bug #428: in `PointCloudColorHandlerRGBField` where using an "rgba" field was causing an error in `pcd_viewer` (thanks Maurice!) 3298* fixed bug #404: in `PointCloudColorHandlerRGBField<sensor_msgs::PointCloud2>` where one of the offsets for Z was incorrectly calculated thus leading to erroneous data (thanks Lucas!) 3299fixed bug #420: in `OrganizedNeighbor` where one of the `radiusSearch` signatures was working only if the cloud is _not_ organized (thanks Hanno!) 3300* fixed bug #421: `toROSMsg` referenced the address of a temporary return 3301* fixed bug #422: SHOT estimation did not work with different surface than keypoints 3302* fixed bug #430: an infinite loop in SAC methods if no valid model could be found 3303* fixed bug #433: `CropBox` did not update width and height member of output point cloud 3304* added missing using declarations for shot 3305* added a missing include file to transformation_estimation_point_to_plane.h; 3306* added transformation_estimation_point_to_plane_lls.h/hpp to the CMakeLists file 3307* fixed an issue where the `is_dense` flag was not set appropriately when reading data from a binary file (thanks Updog!) 3308* fixed a bug in the `PLYWriter` class where the element camera was not correctly set thus leading to crashes in Meshlab (thanks Bruno!) 3309* fixed a bug in `PrincipalCurvaturesEstimation` where the *pc1* and *pc2* magnitudes were not normalized with respect to the neighborhood size, thus making comparisons of different neighborhoods impossible (thanks Steffen!) 3310* set the lighting off on `setShapeRenderingProperties` when the user tries to control the color of the object precisely 3311fixed bug in `PointCloudColorHandlerRGBField<sensor_msgs::PointCloud2>` where y_point_offset and z_point_offset were not incremented 3312* fixed a bug in tools/compute_cloud_error 3313* fixed a crash in test_ii_normals.cpp 3314* removed unnecessary header from point_correspondence.h 3315* fixed unnormalized covariance matrix in `computeCovarianceMatrixNormalized` 3316* added missing include in std_msgs/Header.h 3317* added error checking for radius search in `extractEuclideanClusters` 3318* fixed a bug in `PassThrough` where NaN values were not correctly replaced by the user-specified value 3319* fixed a bug in ply_io when writing PolygonMesh 3320* fixed a bug in ply_io when unpacking rgb values 3321 3322## *= 1.3 (2011-10-31) = :: "Gaudi" =* 3323 3324From 1.3 we are constructing the Changelist for each library separately, as they can in theory be mixed and matched with older versions (though we officially do not support this yet). The 3325most notable overall changes are: 3326 3327* **removed wxWidgets as a dependency from PCL** and implemented the Image visualization classes using VTK 3328* **removed cminpack as a dependency from PCL** and implemented the LM optimization functionality using Eigen 3329* added a new library called **PCL Search** (`libpcl_search`) that has a more uniform API for nearest neighbor searches and stripped the unneeded functionality from `libpcl_kdtree` and `libpcl_octree`. Search now wraps KdTree and Octree for NN calls. **This is a MINOR API BREAKING CHANGE**. To change your code switch from: 3330``` 3331pcl::KdTree -> pcl::Search (if the purpose is to use one of its children for search) 3332pcl::KdTreeFLANN -> pcl::search::KdTree 3333pcl::OrganizedDataIndex -> pcl::search::OrganizedNeighbor 3334``` 3335* **improved MacOS support** 3336* improved documentation and unit tests 3337* added lots of application examples and demos. Note: not all have a complete functionality... we will try to clean this up in 1.4 and future releases. 3338 3339### Build system changes 3340 3341* define PCL_ROOT environment variable using the NSIS installer 3342* removing test+python from the dependency graph 3343* fixed bug #374 3344* remove cminpack from PCLConfig.cmake cmake and 3rdparty (switched to Eigen's Levenberg-Marquardt implementation) 3345* update NSIS.template.in : use CPACK_PACKAGE_INSTALL_REGISTRY_KEY as the registry key 3346* added the capability to build an all-in-one installer 3347* fixed the build system to work 100% on Android and MacOS 3348 3349 3350### `libpcl_common` 3351 3352* add overriding for operator[] to shorten code 3353* add a `setIndices` method that computes indices of points in a region of interest 3354* add `demeanPointCloud` with indices as `PointIndices` as well 3355* added eigen allocator to correspondence vectors (`pcl::Correspondences`) and adapted all registration modules => be sure to use `pcl::Correspondences` instead of `std::vector<pcl::Correspondence>` 3356* fixed a few doxygen errors 3357* added simple stop watch for non-scoped function time measurements and made `ScodeTime` derived from `StopWatch` 3358* fixed a bug in `getRejectedQueryIndices`, wrong output when order of correspondences have been changed 3359* moved `getRejectedQueryIndices` to pcl/common/correspondence.h 3360* added more doxygen documentation to the registration components 3361* marked all `getRemainingCorrespondences`-functions as DEPRECATED, we should replace them with purely stateless version outside the class body 3362* fixed a const missing in `PolynomialCalculationsT` (#388 - thanks Julian!) 3363* add `PCL_DEPRECATED` macro, closes #354. 3364* added `PointXYZHSV` type and the conversions for it 3365* added check for endianness for the Android platform 3366 3367 3368### `libpcl_search` 3369 3370* BIG changes introduced - migration from `KdTree` to `pcl::Search`: moved `OrganizedDataIndex` and `OrganizedNeighbor` classes to `libpcl_search` 3371* added new templated methods for `nearestKSearch` and `radiusSearch` for situations when PointT is different than the one the KdTree object was created with (e.g., KdTree<PointT1> vs nearestKSearch (PointT2 &p...) 3372* added two new methods for `getApproximateIndices` where given a reference cloud of point type T1 we're trying to find the corresponding indices in a different cloud of point type T2 3373* refactorized a lot of code in search and octree to make it look more consistent with the rest of the API 3374* fixed a bug in octree_search which was semantically doing something bad: for each `radiusSearch`/`nearestKSearch`/`approxNearestSearch` call with a PointCloudConstPtr, the octree was getting recreated. Changed the API to be consistent with the rest of PCL (including pcl_search and pcl_kdtree) where we pass in a PointCloud instead of a PointCloudConstPtr which simply calls searchMethod (cloud[i], ...) 3375* minor code optimizations 3376* renamed organized_neighbor.h header in pcl_search (unreleased, therefore API changes OK!) to organized.h 3377* disabled the auto-search tuning as it wasn't really working. must clean this up further 3378* remove all `approxNearestSearch` methods from the base `pcl::Search` class as they did not belong there 3379 3380 3381### `libpcl_io` 3382 3383* use `stringstream` instead of `atof` because of locale issues in IO (note that we can't use the `ifstream` directly because we have to check for the `nan` value) 3384* added locale independent PCD ASCII i/o 3385* implemented `setMapSynchronization` for `pcl::PCDWriter`. When set, `msync()` will be called before `munmap()` in the `pcl::PCDWriter::write*` calls, which guarantees data reliability. Though I/O performance is 300% better when unset, data corruption might occur on NFS systems, as indicated by http://www.pcl-developers.org/PCD-IO-consistency-on-NFS-msync-needed-td4885942.html. 3386* added new `writeBinaryCompressed` functionality for general purpose `sensor_msgs::PointCloud2` data (which is still our generic data container in PCL 1.x) 3387* added additional unit tests for binary_compressed 3388* fixed a grave bug in `PCDReader` (most likely introduced a few releases ago due to code refactorization) where the data was incorrectly copied if a PCD ASCII file had a field with multiple count elements (field.count) as first. Binary files are not affected by this bug. Added an unit test to catch this in the future. 3389* added functionality for `openni_grab_frame` (added optional command line options, optional output filename, chose output format) 3390* changed to new location of samplesconfig.xml for OpenNI 3391* added signal and slot blocking into grabber. Using blocking to skip first frame in `openni_grabber`, since it is corrupted 3392* added PLY format file support in binary and ascii mode (requires boost::iostreams library) 3393 3394### `libpcl_keypoints` 3395 3396* added 3D versions of Harris/Noble/Lowe/Tomasi and Curvature-based keypoint detection... scale space still missing 3397* work on making `SIFTKeypoint` more flexible by saving scale only when the output point type contains "scale" (the catch is that all point types must be correctly declared via our macros - see the modifications in test_keypoints.cpp). This allows us to use a `SIFTKeypoint<PointXYZRGB, PointXYZRGB>` and thus removes the constraint on using `copyPointCloud` afterwards. 3398* fixed an issue in `SIFTKeypoint` where width/height were not correctly set 3399 3400 3401### `libpcl_features` 3402 3403* specialize std::vector for Eigen::Matrix4f (alignment issue with msvc 32bit) in `SHOTEstimation` 3404* added a faster (eigen-based) integral image calculation => sped up normal estimation to 15Hz 3405* added Unique Shape Context (USC) feature descriptor 3406* added Shape Context 3D feature descriptor 3407* fixed a bug in the normalization factor of VFH for the distance component (only affecting if set distance component is true) 3408* fixed a few bugs regarding Windows build introduced in earlier commits 3409* BIG changes introduced - migration from `KdTree` to `pcl::Search` 3410* merged libpcl_range_image_border_extractor into libpcl_features. There's absolutely no reason why we should have 2 libraries generated from the features module. 3411 3412### `libpcl_filters` 3413 3414* added `FilterIndices` functionality #315 3415* added a `RandomSample` filter which makes use of indices #323 3416* added a new (very fast) class for data decimation: `ApproximateVoxelGrid` 3417* fix for #369 (StatisticalOutlierRemoval crash when input dataset is empty) 3418* implemented feature request #346 3419 3420### `libpcl_octree` 3421 3422* added function `genVoxelBounds` to octree pointcloud class 3423* added octree neighbor search class 3424* added octree-ray-tracing patch to octree_search class 3425* buxfix in octree ray traversal function `getIntersectedVoxelCentersRecursive` 3426* added unit test for `getIntersectedVoxelCentersRecursive` 3427* added method `getIntersectedVoxelIndices` for getting indices of intersected voxels and updated unit test 3428* refactorized a lot of code in search and octree to make it look more consistent with the rest of the API 3429* fixed a bug in octree_search which was semantically doing something bad: for each `radiusSearch`/`nearestKSearch`/`approxNearestSearch` call with a PointCloudConstPtr, the octree was getting recreated. Changed the API to be consistent with the rest of PCL (including pcl_search and pcl_kdtree) where we pass in a PointCloud instead of a PointCloudConstPtr which simply calls searchMethod (cloud[i], ...) 3430* minor code optimizations 3431* renamed organized_neighbor.h header in pcl_search (unreleased, therefore API changes OK!) to organized.h 3432* disabled the auto-search tuning as it wasn't really working. must clean this up further 3433* remove all `approxNearestSearch` methods from the base `pcl::Search` class as they did not belong there 3434 3435### `libpcl_registration` 3436 3437* fixed a minor bug in `CorrespondenceRejectorSampleConsensus`: `getRemainingCorrespondences` tried to nput_ although it should only use the given input correspondences 3438* added missing implementation for `TransformationEstimationLM` on correspondence vectors 3439* added eigen allocator to correspondence vectors (`pcl::Correspondences`) and adapted all registration modules --> be sure to use `pcl::Correspondences` instead of `std::vector<pcl::Correspondence>` 3440* fixing the API: a few left inconsistencies between `vector<Correspondence>` and `Correspondences`. The latter is to be preferred as it contains the Eigen aligned allocator. 3441* added new ELCH loop correction API (New pcl::registration::ELCH class (WIP), add Registration::Ptr typedef) 3442* added unit tests for the (new) registration API and all registration components 3443* Further cleaning up registration code and writing documentation. 3444 * fixed bug in getRejectedQueryIndices, wrong output when order of correspondences have been changed 3445 * moved getRejectedQueryIndices to pcl/common/correspondence.h 3446 * added more doxygen documentation to the registration components 3447 * marked all "getRemainingCorrespondences"-functions as DEPRECATED, we should replace them with purely stateless version outside the class body 3448* Update: remove ciminpack dependency and rely on eigen for LM 3449* Fixed a bug in ICP-NL by modifying `WarpPointRigid` to preserve the value of the 4th coordinate when warping; Re-enabled missing unit tests for ICP and ICP-NL 3450* Added point-to-plane ICP 3451* added nr_iterations_ and max_iterations_ to the initializer list (were missing) 3452* Fixed bugs in `WarpPointRigid3D` and `TransformationEstimationLM` 3453* fixed a problem where if no correspondences would be found via `nearestKSearch`, the RANSAC-based rejection scheme would fail (thanks to James for reporting this) 3454* changed the default LM implementation to use L2 instead of L2SQR 3455* Added a new `TransformationEstimationPointToPlaneLLS` class that uses a Linear Least-Squares approximation to minimize the point-to-plane distance between two point clouds 3456* Added the ability to specify the error function to be minimized in SAC-IA (see Feature #362) 3457 3458 3459### `libpcl_sample_consensus` 3460 3461* reimplemented the Levenberg Marquardt code that was using cminpack with Eigen, thus dropping the cminpack dependency for PCL 3462 3463### `libpcl_surface` 3464 3465* fixed bug in surface/mls: when no search interface and no tree is given, mls creates its' own tree, but didn'tupdate the search method to use 3466* added citation for Rosie's work (http://dl.acm.org/citation.cfm?id=1839808) 3467* added some error checking for missing/ill formed inputs for `MarchingCubes` 3468* don't delete smart pointers (thanks Chytu: http://www.pcl-users.org/Seg-fault-while-using-VTK-Smoother-tp3380114p3381648.html) 3469* added computation of area and volume for convex hulls. 3470 3471### `libpcl_segmentation` 3472 3473* added a labeled cluster euclidean segmentation method 3474 3475### `libpcl_visualization` 3476 3477* fixed an issue where `saveScreenshot` was not correctly initialized with the proper renderer, thus not saving the data 3478* supporting fontsize in addText (per feature #365) 3479* fixing the interactor style by ignoring all combinations in `OnChar` that we cover in `OnKeyDown` 3480* added `removeAllShapes` and `removeAllPointClouds` per #353 3481* renamed `deleteText3D` to `removeText3D` to consolidate the API 3482* fixing the API: a few left inconsistencies between `vector<Correspondence>` and `Correspondences`. The latter is to be preferred as it contains the Eigen aligned allocator. 3483* added patch from Lucas Walter to fix pcl::visualization::PCLVisualizer::removeAllPointClouds and removeAllShapes 3484* fixed a few doxygen errors 3485* cleaned up the `PCLHistogramVisualizer` API by moving to a vtk interactor instead of ours, and removed unnecessary calls such as `saveScreenShot` (never used with the histogram visualizer, and most likely buggy), `wasStopped` and `resetStoppedFlag` (never used). 3486* removed `PCLVisualizerInteractor` and switched back to a better default `vktWindowRenderInteractor` for VTK >= 5.6. Adjusted and fixed the internal API. No public API changes were made (except the removal of the `PCLVisualizerInteractor` class which was never meant to be used externally anyway). 3487* cleaned up and implemented the `ImageViewer` class properly and demonstrated it in a single thread via openni_viewer. The other tool (openni_viewer_simple) will not work due to `CloudViewer` starting its own thread and thus clashing on the same OpenGL context. 3488* fixed the correct order in initializer list for ImageViewer 3489* **removed wxWidgets completely** from the codebase 3490* added implementation for `markPoint` to `ImageViewer` to mimic older wxWidgets-based code 3491* fixed an issue in `PCLVisualizerInteractorStyle` where mouse events were not properly mapped in Qt (#389 - thanks Adam!) 3492* added an extra field of view to the camera paramers (#392 - thanks Adam!) 3493* small bugfix when the radius_sphere was different than 1 for `renderViewTesselatedSphere` 3494 3495 3496 3497## *= 1.2 (2011-09-30) = :: "Enough small talk" (LM) =* 3498 3499### Additions, improvements, and optimizations 3500 3501* Eliminated the `transform.h` header file < *API breaking change* > (r2517) 3502 3503 * the following functions have moved to `transforms.h`: 3504 3505 * `transformXYZ` (renamed to `transformPoint`) 3506 * `getTransformedPointCloud` (replaced with `transformPointCloud`) 3507 3508 * the following methods have been replaced with built-in Eigen methods: 3509 3510 * `operator<<` (use `.matrix ()` ) 3511 * `getRotationOnly` ( `.rotation ()` ) 3512 * `getTranslation` ( `.translation ()` ) 3513 * `getInverse` ( `.inverse ()` ) 3514 3515 * the following functions have move to `eigen.h`: 3516 3517 * `getTransFromUnitVectorsZY` 3518 * `getTransFromUnitVectorsZY` 3519 * `getTransFromUnitVectorsXY` 3520 * `getTransFromUnitVectorsXY` 3521 * `getTransformationFromTwoUnitVectors` 3522 * `getTransformationFromTwoUnitVectors` 3523 * `getTransformationFromTwoUnitVectorsAndOrigin` 3524 * `getEulerAngles` 3525 * `getTranslationAndEulerAngles` 3526 * `getTransformation` 3527 * `getTransformation` 3528 * `saveBinary` 3529 * `loadBinary` 3530 3531* Made major changes in pcl::registration (r2503) 3532 3533 * all registration code now uses `TransformEstimation` objects (`TransformEstimationSVD` and `TransformEstimationLM` in particular) rather than the older `estimateRigidTransformationSVD` code. Each class inheriting from `pcl::Registration` can pass in a different estimator via `setTransformationEstimation` 3534 * simplified `TransformEstimationSVD` code 3535 * implemented `TransformEstimationLM` by moving away code from `IterativeClosestPointNonLinear` (which now uses the transformation object) 3536 3537* replaced the `io/io.h` header file with `common/io.h` (for backwards compatibility, `io/io.h` will remain, but its use is deprecated) 3538* added unit test for `lineWithLineIntersection` (r2514) 3539* improved the VTK installation from source documentation for MacOS (r2589) 3540* updated the tutorials regarding usage of FindPCL.cmake vs. PCLConfig.cmake (r2567) 3541* added a new `PointCloud` constructor for copying a subset of points (r2562) 3542* made wxwidgets an optional dependency for visualization (r2559) 3543* added feature #334 (Enabling a library should enable all its library dependencies in CMake) implementation, (r2551) 3544* added an internal `estimateRigidTransformationSVD` method to `SampleConsensusModelRegistration` (r2502) 3545* added a `PCL_VISUALIZER_REPRESENTATION` property for `setShapeRenderingProperties` with three possible values: 3546 3547 * `PCL_VISUALIZER_REPRESENTATION_POINTS` for representing data as points on screen 3548 * `PCL_VISUALIZER_REPRESENTATION_WIREFRAME` for representing data as a surface wireframe on screen 3549 * `PCL_VISUALIZER_REPRESENTATION_SURFACE` for representing data as a filled surface on screen 3550 (r2500) 3551 3552* optimized performance of `BoundaryEstimation` (approximately 25% faster) (r2497) 3553* added reference citation to `estimateRigidTransformationSVD` (r2492) 3554* added a new keypoint for uniformly sampling data over a 3D grid called `UniformSampling` (r2413) 3555* added a destructor to `VoxelGrid<sensor_msgs::PointCloud2>` (r2412) 3556* optimized the performance of `SampleConsensusModelLine` (r2404) 3557* changed the behavior of toc_print and toc from `pcl::console:TicToc` to return milliseconds (r2402) 3558* added a new model, `SAC_MODEL_STICK`, for 3D segmentation (r2400) 3559* added 2x point picking to `PCLVisualizer`; use Alt + Mouse Left click to select a pair of points and draw distances between them (r2388) 3560* added two new functions (`pcl::getMaxSegment`) for determining a maximum segment in a given set of points (r2386) 3561* moved filters/test/test_filters to test/test_filters (r2365) 3562* renamed the binary executable in the compression.rst tutorial (r2345) 3563* Updated library dependencies 3564 3565 * removed the `libfeatures dependency` for `libpcl_surface (r2337) 3566 * removed the `libpcl_io dependency` from `libpcl_surface` (r2354) 3567 * removed `libpcl_io dependency` from `libpcl_keypoints` (r2364) 3568 * removed `libpcl_io dependency` for `libpcl_filters` (r2365) 3569 * removed `libpcl_io dependency` for `libpcl_registration` (r2372) 3570 3571* added a new function, `pcl::concatenateFields` for concatenating the fields of two `sensor_msgs::PointCloud2` datasets (1933) 3572* added a new `countWithinDistance` method to `SampleConsensusModel` (r2326), and optimized RANSAC and RRANSAC by replacing calls to `selectWithinDistance` with `countWithinDistance` (r2327) 3573* added feature #330: new PCLVisualizer::addCube and pcl::visualization::createCube methods (r2322) 3574* added `correspondence.h` to the includes in `common/CMakeLists.txt` (r2260) 3575* implemented defaults for the search method, per http://www.pcl-developers.org/defaults-for-search-method-td4725514.html (r2219,r2220,r2222,r2225,r2226,r2228) 3576* exposed `pcl::PCLVisualizer::saveScreenshot (const std::string &filename)` (r2095) 3577* enabled `pcd_io.hpp` (r2085) 3578* added a new faster binary writer + cloud/indices (r2080) 3579* added `pcl::RGB` structure and switched bitshifting RGB code to use the `pcl::RGB` structure's members (r2077,r2078) 3580* added a new `IOException` class for read/write exceptions (r2068) 3581* added missing `set/getAngleThreshold` for `BoundaryEstimation`. Made class parameter protected. (r2067) 3582* added functions in `pcl::console` for parsing CSV arguments of arbitrary length (r2052) 3583* added new functionality to `OrganizedFastMesh` (r1996); Now support for modes: 3584 3585 * fixed triangle meshing (left and right) that create quads and always cut them in a fixed direction, 3586 * adaptive meshing that cuts where possible and prefers larger differences in 'z' direction, as well as 3587 * quad meshing 3588 3589* improved `OrganizedFastMesh`'s removal of unused points (r1996) 3590 3591* CMake changes (r2592) 3592 3593 * changed the install dir of PCLConfig.cmake in Windows 3594 * renamed CMAKE_INSTALL_DIR into PCLCONFIG_INSTALL_DIR 3595 * NSIS installer will add a key in Windows Registry at HKEY_LOCAL_MACHINE\Software\Kitware\CMake\Packages\PCL to help CMake find PCL (CMake >= 2.8.5) (NSIS.template.in) 3596 * reordered CMAKE_MODULE_PATH entries, for CMake to pick up our NSIS.template.in 3597 * fixed CPACK_PACKAGE_INSTALL_REGISTRY_KEY value 3598 3599### Bug fixes 3600 3601* fixed bugs in `PointCloud` 3602 3603 * in `swap()`, the point data was swapped, but the width and height fields were not (r2562) 3604 * in `push_back()`, adding points did not update the width/height of the point cloud (r2596) 3605 * in `insert()/erase()`, inserting or erasing points did not update the width/height of the point cloud (r2390) 3606 3607* fixed bugs in `SampleConsensusModelRegistration` 3608 3609 * if target_ wasn't given, would crash with a boost shared uninitialized error (r2501) 3610 * homogeneous coordinates were wrong (r2502) 3611 3612* fixed a bug in `BoundaryEstimation` in case "angles" is empty (r2411) 3613* fixed a bug in `OrganizedFastMesh`'s adaptive cut triangulation; added a new unit test (r2138) 3614* fixed a bug in the openni_image viewer tool (r2511) 3615* fixed problems with Windows/MacOS ALT bindings in PCLVisualizer (r2558) 3616* fixed issues 3617 3618 * #139 (`FPFHEstimation` for non-trivial indices) (r2528) 3619 * #303 (make `pcd_viewer` reset the camera viewpoint when no camera given) (r1915) 3620 * #338 (cylinder segmentation tutorial was referring to a different file) (r2396) 3621 * #339 (the direction of the normal was wrongly estimated when `setSearchSurface` was given) (r2395) 3622 * #340 (keep_organized_ bug in `ConditionalRemoval`) (r2433) 3623 * #342 (Allow QT to be used with PCL Visualizer) (r2489) 3624 * #343 (`empty()` member function of a point cloud is not const) (r2440) 3625 * #350 (Misspelling in `GreedyProjectionTriangulation::setMaximumSurfaceAgle()`) (r2556) 3626 3627* added missing include in `correspondence_rejection.h` (r2393) 3628* corrected the headers included by `sample_consensus/sac_model.h` (r2550) 3629* removed duplicate content of NSIS.template.in (r2601) 3630* fixed various casting related compiler warnings (r2532) 3631* corrected typos in 3632 3633 * Windows tutorial (CMAKE_INSTALL_DIR => CMAKE_INSTALL_PREFIX) (r2595) 3634 * registration/icp.h documentation (reg => icp) (r2515) 3635 * several apps/tools console messages (wotks => works) (r2491) 3636 * how_features_work.rst tutorial (Muechen => Muenchen) (r2484) 3637 3638 3639 3640## *= 1.1.1 (2011-08-31) = :: "Low Entropy" =* 3641 3642* issues fixed: #224, #277, #288, #290, #291, #292, #293, #294, #295, #296, #297, #299, #302, #318, #319, #324, #325, #329 3643* Additional fixes: 3644 3645 * fixed a segfault in PCLVisualizer::addPointCloudNormals 3646 * fixed PCLVisualizer hanging on 'q' press 3647 * fixed a bug in MLS 3648 * fixed a bug in test_io 3649 * fixed a bug in PointCloudColorHandlerGenericField 3650 * fixed a bug when writing chars to ASCII .PCD files 3651 * fixed several errors "writing new classes" tutorial 3652 * added missing parameter setter in the "concave hull" tutorial 3653 3654 3655## *= 1.1.0 (2011-07-18) = :: "Deathly Hallows" =* 3656 3657* new 3D features: 3658 3659 * SHOT (Signature of Histograms of Orientations) 3660 * PPF (Point-Pair Features) 3661 * StatisticalMultiscaleInterestRegionExtraction 3662 * MultiscaleFeaturePersistence 3663 3664* improved documentation: 3665 3666 * sample consensus model coefficients better explained 3667 * new tutorials (RadiusOutlierRemoval, ConditionalRemovalFilter, ConcatenateClouds, IterativeClosestPoint, KdTreeSearch, NARF Descriptor visualization, NARF keypoint extraction, ConcaveHull, PCLVisualizer demo) 3668 3669* new surface triangulation methods: 3670 3671 * MarchingCubes, MarchingCubesGreedy 3672 * OrganizedFastMesh 3673 * SurfelSmoothing 3674 * SimplificationRemoveUnusedVertices 3675 3676* new registration methods: 3677 3678 * PyramindFeatureMatching 3679 * CorrespondenceRejectorSampleConsensus 3680 3681* new general purpose classes/methods: 3682 3683 * Synchronizer 3684 * distance norms 3685 * TextureMesh 3686 * PointCloud.{isOrganized, getMatrixXfMap) 3687 * SACSegmentation now works with PROSAC too 3688 * PCDViewer now reads VTK files 3689 * new Mouse and Keyboard events for PCLVisualizer 3690 * PCLVisualizer.{addText3D, addCoordinateSystem (Eigen::Matrix4f), deleteText3D, updatePointCloud, renderViewTesselatedSphere, resetCameraViewpoint, getCameras, getViewerPose} 3691 * ONIGrabber, DeviceONI 3692 * ImageRGB24, IRImage 3693 * generic FileReader + FileWriter 3694 3695* optimizations: 3696 3697 * faster pipelinening by not recreating a fake set of indices everytime 3698 * rendering optimizations for PCLVisualizer 3699 * copyPointCloud is now faster and can copy the intersections of the fields in both input datasets 3700 * VoxelGrid is now ~20Hz for Kinect data 3701 3702* new applications: 3703 3704 * VFH NN classification 3705 * 3D concave hulls 3706 * 3D convex hulls 3707 * ICP registration 3708 * Planar segmentation 3709 * Stream compression 3710 * Range image viewer 3711 * Voxel Grid 3712 * IntegralImage normal estimation 3713 3714* issues fixed: #75, #106, #118, #126, #132, #139, #156, #182, #184, #189, #197, #198, #199, #201, #202, #203, #210, #213, #211, #217, #223, #225, #228, #230, #231, #233, #234, #240, #247, #250, #251, #254, #255, #257, #258, #259, #261, #262, #264, #265, #266, #267, #268, #269, #273, #276, #278, #279, #281, #282, #283 3715 3716## *= 1.0.1 (2011-06-29) = :: "First Steps" =* 3717 3718*please note that version 1.0.0 had a flaw when creating ASCII pcd files. This version includes the tool pcd_convert_NaN_nan to fix this* 3719 3720* added VTK file visualization to pcd_viewer 3721* hiding the cminpack/FLANN headers, thus reducing compile time for user code 3722* fixed `IntegralImageNormalEstimation` 3723* tutorial updates and fixes + new tutorials. Changed tutorial structure to split CPP files from RST text. 3724* better doxygen documentation for many functions 3725* fixed a bug in `ConditionalRemovalFilter` where the `keep_organized` condition was reversed 3726* removed `BorderDescription` and `Histogram<2>` from the list of explicit template instantiations 3727* added `PointXY` point registration macros 3728* added `ExtractIndicesSelf` unit test 3729* fixed a lot of alignment issues on 32bit architectures 3730* PCD ascii files now have each individual line trimmed for trailing spaces 3731* internal changes for PCDReader/PCDWriter, where NAN data is represented as "nan" 3732* sped up compilation with MSVC by adding /MP for multiprocessor builds 3733* added a voxel grid command line tool filter 3734* issues fixed: #242, #207, #237, #215, #236, #226, #148, #214, #218, #216, #196, #219, #207, #194, #192, #183, #178, #154, #174, #145, #155, #122, #220 3735* added support for PathScale pathcc compiler 3736* added support for Intel icc C++ compiler 3737* added support for GCC 4.6 C++ compiler 3738* added preliminary support for Clang C++ compiler 3739* FindPCL.cmake and PCLConfig.cmake completed 3740 3741## *= 1.0.0 (2011-05-11) = :: "A new beginning" =* 3742 3743* completely standalone build system using CMake (not dependent on ROS anymore) 3744* tested on Win32/Win64, Linux (32/64) and MacOS (installers provided for all 3rd party dependencies and PCL) 3745* separated the entire codebase into multiple libraries that depend on each other. separate CMake declarations for each individual library. 3746* provide a FindPCL.cmake to ease integration 3747* many new unit tests + tutorials + improved Doxygen documentation (check http://www.pointclouds.org/documentation and http://docs.pointclouds.org) 3748* new liboctree interface for nearest neighbor/radius search with Octrees, change detection, and Point Cloud compression! 3749* added concave/convex hulls using QHull (dropped our old ConvexHull2D class) 3750* pcl::Registration improvements and bugfixes, sped up inner loops, added alignment methods with initial guess 3751* pcl::visualization bugfixes: multiple interactors are now possible, better threading support, sped up visualization (2-3x), addPolygonMesh helper methods 3752* new grabber interface for OpenNI-compatible camera interface: all 3 OpenNI cameras are supported (Kinect, Asus XTionPRO, PSDK) 3753* new grabber interface for streaming PCD files 3754* pcl::io bugfixes for PCD files using binary mode 3755* ROS_ macros are no longer valid, use PCL_ instead for printing to screen 3756* new PCA implementation, up to 4-5 times faster eigen decomposition code 3757* new CVFH feature, with higher performance than VFH for object recognition 3758 3759 3760# Pre 1.0 (copied from http://pcl.ros.org/ChangeList) - for historical purposes. 3761 3762The version numbers below belong to the *perception_pcl* stack in ROS, which coordinated both the release of PCL, as well as the release of the ROS PCL wrappers. From 1.0 onwards PCL got separated from ROS, and the release process of *perception_pcl* and PCL diverged. 3763 3764* [[flann]] 3765 3766 * Updated to version 1.6.8 3767 3768* [[pcl]] 3769 3770 * bug fix in _pcl::PassThrough_ filter, where the output data size was not set correctly when _keep_organized_ was set to false 3771 * bug fix in _pcl::GreedyProjectionTriangulation_, where point distances were incorrect, thus poroducing too many holes points during reconstruction () 3772 * added more elaborate unit tests for surface reconstruction 3773 * Added possibility to restrict no of returned interest points to _pcl::NarfKeypoint_ 3774 * Added parameter to control no of openmp threads to _pcl::NarfKeypoint_ 3775 3776* [[pcl_ros]] 3777 3778 * added the _keep_organized_ option to _pcl_ros::Passthrough_ (#4627) 3779 3780## *= 0.10.0 (2010-02-25) =* 3781 3782* Re-versioned 0.9.9 to follow patch-versioning semantics. 3783 3784## *= 0.9.9 (2010-02-22) :: "Almost there" edition =* 3785 3786* [[pcl]] 3787 3788 * removed _ConvexHull2D_ (*API breaking change!*) 3789 You need to change your code. From: 3790 ``` 3791 pcl::ConvexHull2D<...> ...; 3792 ``` 3793 to 3794 ``` 3795 pcl::ConvexHull<...> ...; 3796 ``` 3797 * added a new general purpose 2D/3D _ConvexHull_ class based on QHull 3798 * added a new general purpose 2D/3D _ConcaveHull_ class based on QHull 3799 * added helper _transformPointCloud_ method for cloud+indices as input 3800 * fixed: segfaults when ICP finds no correspondences (#4618) 3801 * improved the PCD I/O capabilities (for binary PCD) to deal with SSE padding 3802 * Added possibility to create a _RangeImagePlanar_ from a point cloud 3803 * Corrected is_dense to false in all range images. 3804 * Reimplemented big parts of the NARF keypoint extraction - should be more reliable now (and unfortunately slower) - uses polynomials to search maxima now. 3805 * Added helper classes for polynomial approximations to common 3806 * Added a new RANSAC-like algorithm: _PROSAC_ (much faster when there is a confidence for the matches) 3807 * Fixed normalization factor in the VFH's scale component. 3808 * Made MLS more flexible: output has all fields the input has, only with XYZ smoothed, and normals are provided separately (and optionally) 3809 * Added multi-scale calculation to NARF keypoint to make it faster again, fixed a bug in _BorderExtractor_ and fixed some issues in _RangeImagePlanar_. 3810 * Added functions in common to compute max distance from a point to a pointcloud. Fixed distance component of VFH, normalization is now also invariant to rotation about the roll axis. 3811 * Added _pcl::PointSurfel_ to known point types. 3812 * eigen-decomposition for symmetric positive-semi-definite 3x3 matrices: 1) bug fix so eigenvects are orthogonal, 2) is more robust for degenerated cases 3813 3814* [[pcl_ros]] 3815 3816 * _MovingLeastSquares_ nodelet improvements 3817 * Changed serialization of point clouds to ship the data as-is over the wire, padding included (#4754). Implemented subscriber-side optimizations to minimize memcpys. Will do one memcpy for the whole point cloud if the data layout is an exact match. 3818 3819## *= 0.9.0 (2011-02-08) :: "Darn the torpedoes" Edition =* 3820 3821* [[pcl]] 3822 3823 * optimizations for _dense_ dataset (no checking for _isfinite_ inside the loop unless _is_dense_ is false) 3824 * improved eigen decomposition _pcl::eigen33_ by better handling degenerate cases. Normal estimation should work better now. 3825 * more 32bit alignment fixes 3826 * improved Doyxgen documentation 3827 * added _POINT_CLOUD_REGISTER_POINT_STRUCT_ for _Narf36_ 3828 * fixed a minor bug in poses_from_matches where a distance was not computed correctly 3829 * disabled TBB classes until 1.0 comes out 3830 * fixed a few bugs in _ICP_NL_ registration (thanks Mike!) 3831 * enforced const-ness for _pcl::ArrayXfMap_ and _pcl::VectorXfMap_, by creating _pcl::ArrayXfMapConst_ and _pcl::VectorXfMapConst_ for maps over const types 3832 * improved Windows support 3833 * fixed a bug in _StatisticalOutlierRemoval_ where the output data array was set incorrectly. 3834 * fixed a _boost::split_ bug in _pcd_io_, for cases when point data starts with spaces or tabs 3835 * finalized the surface reconstruction (_pcl::SurfaceReconstruction_) API 3836 * added a new method for surface reconstruction using grid projections (_pcl::GridProjection_) 3837 * added a new generalized field value filter (_pcl::ConditionalRemoval_) 3838 * cleaned up normal estimation through integral images 3839 * PCL rift.hpp and point_types.hpp fixed for Windows/VS2010 3840 * fixed all _is_dense_ occurrences 3841 * *unmanged all _Eigen3::_ calls to _Eigen::_* 3842 * changed all _!isnan_ checks to _isfinite_ in order to catch INF/-INF values 3843 * added vtk_io tools for saving VTK data from _PolygonMesh_ structures 3844 * fixed _SACSegmentation::SACMODEL_CIRCLE2D:_ to accept _setRadius_ limits 3845 * use _SACSegmentation_ when the model doesn't fit _SACSegmentationFromNormals_ (assert fix) 3846 3847* [[pcl_ros]] 3848 3849 * added a mutex for configuration parameters and filter computation, to prevent changing parameters while the algorithm is running. Alternative: copy parameters before the compute loop. 3850 * pcd_to_pointcloud has been updated to take a private parameter "frame_id" which is used in publishing the cloud 3851 * unmangled all _Eigen3::_ calls to _Eigen::_ 3852 * Document cloud to image conversion. 3853 3854 * http://www.ros.org/wiki/pcl_ros/Tutorials/CloudToImage 3855 * Removed the tool from pcl , and moved to pcl_ros 3856 3857## *= 0.8.0 (2011-01-27) :: Operation CloudMan =* 3858 3859* [[flann]] 3860 3861 * Updated to version 1.6.7 3862 3863* [[pcl]] 3864 3865 * improved doxygen documentation overall 3866 * added support for indices for _SampleConsensus_ models (previously broken) 3867 * fixed a grave bug in _ProjectInliers_, where row_step was not correctly set thus leading to (de)serialization issues in the new _ros::Subscriber<PointCloud<T> >_ scheme 3868 * _RangeImagePlanar_ can now also be created from a depth image. 3869 * Fixed a bug in _RangeImagePlanar_. 3870 * Fixed possible segmentation fault in _RangeImageBorderExtractor_. 3871 * _RangeImage_ now has _is_dense=false_, since there typically are NANs in there. 3872 * Added Correspondence as a structure representing correspondences/matches (similar to OpenCV's DMatch) containing query and match indices as well as the distance between them respective points. 3873 * Added _CorrespondenceEstimation_ for determining closest point correspondence, feature correspondences and reciprocal point correspondences. 3874 * Added _CorrespondenceRejection_ and derivations for rejecting correspondences, e.g., based on distance, removing 1-to-n correspondences, RANSAC-based outlier removal (+transformation estimation). 3875 * Further split up registration.h and added transformation estimation classes, e.g., for estimating rigid transformation using SVD. 3876 * Added ```sensor_msgs::Image image; pcl::toROSMsg (cloud, image);```See tools/convert_pcd_image.cpp for a sample. 3877 * Added a new point type, _PointWithScale_, to store the output of _SIFTKeypoint_ detection. 3878 * Fixed a minor bug in the error-checking in _SIFTKeypoint::setScales(...)_ 3879 * Fixed small bug in _MovingLeastSquares_ 3880 * Fixed small bug in _GreedyProjectionTriangulation_ 3881 * Added unit tests for _RSDEstimation_, _MovingLeastSquares_ and _GreedyProjectionTriangulation_ 3882 * Fixed and improved multiple point to line distance calculations, and added it to distance.h and unit testing 3883 3884* [[pcl_ros]] 3885 3886 * Fixed a grave bug introduced in 0.7 where the _NullFilter_ approach doesn't work 3887 * Implemented the exact time synchronizer path for _PointCloudConcatenateDataSynchronizer_ 3888 * replaced subscribers/publishers in surface, segmentation, and feature nodelets from _sensor_msgs::PointCloud2_ to _pcl::PointCloud<T>_, thus reducing complexity and getting rid of all the intermediate _from/toROSMsg_ (de)serializations 3889 * moved away from storing state in the nodelets. The right way to do it is: callback -> _PointCloud_ -> process -> publish, without storing the _PointCloud_ as a member into the base class 3890 * introduced a mandatory _emptyPublish_ which nodelets should use to send an empty result with the header frame_id and stamp equal with the input's. 3891 3892## *= 0.7.1 (2011-01-09) =* 3893 3894* [[flann]] 3895 3896 * Makefile patch for LateX PDF build 3897 3898* [[pcl]] 3899 3900 * fixed _roslib/Header_ warnings by enabling _std_msgs/Header_ if ROS_VERSION > 1.3.0 3901 * working on PCL port to Android - mainly CMake scripts, and a few _#if ANDROID_ statements. 3902 * _pcl::VoxelGrid _now saves and gives access to the created voxel grid, with lots of helper functions 3903 3904* [[pcl_ros]] 3905 3906 * dropped _pcl_ros::Subscriber_ due to the changes introduced in 0.7 3907 3908## *= 0.7 (2010-12-20) :: Special "FLANN is awesome" Edition =* 3909 3910* [[eigen3]] 3911 3912 * removing eigen3 as it's already present in geometry (unstable) and geometry_experimental (cturtle) 3913 3914* [[pcl]] 3915 3916 * added general purpose _getMinMax()_ method for n-dimensional histograms (r34915). 3917 * more 32bit architecture alignment fixes 3918 * fixing \r string splitting issues on Windows systems for _PCDReader_ (r34830). 3919 * Added new range image class RangeImagePlanar. E.g., for direct usage with kinect disparity images. 3920 * added the option to keep the data organized after filtering with _pcl::PassThrough_ and replace values in place rather than removing them (r34776) 3921 * removed boost::fusion macros 3922 * moving the Feature estimation architecture to the new PCL structure 3923 * moved _sorted__ as a parameter in the _KdTree_ base class 3924 * added _PCL_INSTANTIATE_ macros that easily instantiate a specific method/class given a set of point types 3925 * Better checks for _is_dense_ plus bugfixes. 3926 * Added RSD (Radius Signature Descriptor) feature. 3927 * Updated the entire PCL tree to use FLANN as a default _KdTree_ 3928 * Optimized the _KdTreeFLANN::radiusSearch_ so it doesn't do any memory allocation if the indices and distances vectors passed in are pre-allocated to the point cloud size. 3929 * Changed _KdTree::radiusSearch_ method signature to return int (number of neighbors found) instead of bool 3930 * added new _pcl::View<T>_ class that holds a _PointCloud_, an _Image_, and a _CameraInfo_ message (r34575) 3931 * Moving the _Surface_ reconstruction framework to the new structure (r34547) 3932 * Moving the _Segmentation_ framework to the new structure (r34546) 3933 * Creating a libpcl_sample_consensus and moving the SAC methods and estimators to the new structure (r34545) 3934 * moving _Filter_ to the new structure (r34544) 3935 * Creating a libpcl_kdtree and moving the _KdTree_ to the new structure (r34543) 3936 * added support for PCD v0.7 files (+VIEWPOINT), minor API changes and consolidations 3937 * adding a sensor origin + orientation for _pcl::PointCloud<T>_ (r34519) 3938 * Improved _Boost_ CMake macros 3939 3940* [[pcl_ros]] 3941 3942 * greatly simplified the _PointCloudConcatenateDataSynchronizer_ nodelet (r34900). 3943 * _pcl::PointCloud<T>_ works natively with _ros::Publisher_ and _ros::Subscriber_. Separate _pcl_ros::Publisher_ and _pcl_ros::Subscriber_ are no longer necessary. 3944 3945* [[flann]] 3946 3947 * Updated to FLANN 1.6.6 3948 * Updated to FLANN 1.6.5. 3949 * Updated to FLANN 1.6.4 3950 * Updated to FLANN 1.6.3 3951 3952* [[pcl_tf]] 3953 3954 * Moved functionality to _pcl_ros_. RIP. 3955 3956* [[ann]] 3957 3958 * Removed ANN as a dependency. RIP. 3959 3960* [[cminpack]] 3961 3962 * updated cminpack to 1.1.1 3963 * fedora rosdep fixes 3964 * Patch for building and installing cminpack correctly (thanks to Nicholas) 3965 3966## *= 0.6 (2010-12-01) :: Special "Happy Birthday Bastian!" Edition =* 3967 3968* [[pcl]] 3969 3970 * sort clusters in _ExtractEuclideanCluster_ in descending order before returning (r34402) 3971 * VoxelGrid patch for handling RGB colors (thanks to Yohei) 3972 * lots of work to make PCL compile in Windows (thanks to Stefan) 3973 * bumping up the ASCII precision from 5 to 7 on PCD I/O operations 3974 * moved PCL to the new stack: perception_pcl 3975 * header include cleanup for faster compiles 3976 * switched _StatisticalOutlierRemoval_ to FLANN 3977 * Updated kdtree_flann to use the C++ bindings from FLANN 3978 3979* [[pcl_tutorials]] 3980 3981 * Added new tutorial to visualize the NARF descriptor and look at descriptor distances. 3982 * fixed a problem that was preventing tutorials to be built on MacOS (r34287) 3983 3984* [[flann]] 3985 3986 * Updated to latest version of FLANN (1.6.2) 3987 * Updated to latest version of FLANN (1.6.1) 3988 * Updated to latest version of FLANN (1.6) 3989 3990* [[cminpack]] 3991 3992 * Updated _cminpack_ to version 1.1.0 3993 * Updated _cminpack_ to version 1.0.90 (r34303) 3994 * Fixed a portability issue where the library was copied as .so, while MacOS systems need .dylib, thanks to Cyril per #4596 (r34286) 3995 3996* [[pcl_ros]] 3997 3998 * Fixed a portability issue where uint was used without being defined on MacOS systems, thanks to Cyril per #4596 (r34285) 3999 * Patch for _ConvexHull2D_ to publish _PolygonStamped_ (thanks to Ryohei) 4000 4001## *= 0.5 (2010-11-25) :: Special Thanksgiving Edition =* 4002 4003* [[pcl]] 4004 4005 * got rid of ROS_ASSERTS in favor of ROS_ERROR + return (true/false) 4006 * improvements on CMake build scripts and custom-made ROS header includes to make PCL work outside of ROS 4007 * pow() fixes for macos (#4568) 4008 * fixing a bug where if inliers are always 0, we get stuck in an (almost) infinite loop in Sample Consensus methods (r34191) 4009 * _SegmentDifferences_ is now optimized for null targets (simply copy the input) 4010 * Changed operator(x,y) in PointCloud to return references, both const and non-const. 4011 * set the default behavior of _ExtractIndices_ to return the complete point cloud if the input indices are empty and _negative_ is set to true 4012 * resize the clusters to 0 on failed _initCompute_ for _EuclideanClusterExtraction_ 4013 * fixed all filtering methods to return empty datasets (points/data.size () = 0, width = height = 0) on failures and make sure that header (+fields for PointCloud2) are always copied correctly in all cases (r34099). 4014 * make sure header and fields are copied even if the indices are invalid for _ProjectInliers_ 4015 * fixed error message typo in conversions.h 4016 * fixing the meaning of is_dense per #4446 4017 4018* [[pcl_ros]] 4019 4020 * added _min_inliers_ as the minimum number of inliers a model must have in order to be considered valid for _SACSegmentation_ 4021 * added a _SegmentDifferences_ nodelet 4022 * fixed a grave bug in _Filter_ where the output TF frame was not always set correctly (r34159) 4023 * added _eps_angle_ as a dynamic reconfigure parameter to _SACSegmentation_ 4024 * added error output on invalid input for all nodelets 4025 * Allow pcl_ros publishers to take shared pointers - fix #4574 (r34025) 4026 * change the default behavior of isValid from data.empty || width * height = 0, to width * height * step = data.size for _PCLNodelet_ 4027 * make sure data is published even if empty 4028 * making sure publishing with a rate of 0 works for _pcd_to_pointcloud_ 4029 * added TF transform capabilities to _bag_to_pcd_ 4030 * Enforce that the TF frame and the timestamp are copied before publish 4031 4032* [[pcl_tf]] 4033 4034 * got rid of unneeded transforms (if _target_frame = input.header.frame_id_, simply return the input) 4035 4036* [[pcl_visualization]] 4037 4038 * removed -DNDEBUG which was causing some weird random bugs (-cam "..." was one of them) (r33984) 4039 * fixing an issue with VTK exports which lead to 3rd party user packages needing to know and explicitly import VTK (r33980) 4040 4041## *= 0.4.2 (2010-11-01) =* 4042 4043* [[pcl_ros]] 4044 4045 * removed the vtk metapackage (replaced with findVTK macros) 4046 4047## *= 0.4.1 (2010-11-01) =* 4048 4049* [[pcl_ros]] 4050 4051 * adding EIGEN_MAKE_ALIGNED_OPERATOR_NEW to all nodelets to make sure that we are aligned on 32bit architectures 4052 4053## *= 0.4.0 (2010-10-30) =* 4054 4055* [[pcl]] 4056 4057 * changes needed for the eigen3 upgrade (_Eigen3::Transform3f_ -> _Eigen3::Affine3f_) 4058 * Added _SIFTKeypoint_ keypoint detection algorithm for use on xyz+intensity point clouds. 4059 * Fixed a bug in _Registration::FeatureContainer::isValid ()_ where the source and target feature clouds were required (incorrectly) to be the same size 4060 * added NARF features (descriptor) to features, updated NARF keypoints, made _RangeImageBorderExtractor_ derived from Feature. 4061 * added _set/get AllFields/AllData_ helper methods to _ProjectInliers_ (r33284) 4062 * added helper _bool getFilterLimitsNegative ()_ to _Filter_ (r33283) 4063 * added helper _set/get LocatorType_ methods to _EuclideanClusterExtraction_ (r33282) 4064 * added missing dependency on roscpp 4065 * added a check for insufficient number of points when fitting SAC models to avoid infinite loops (r33195) 4066 * added _makeShared ()_ to _pcl::PointCloud<T>_, and fixed the Ptr/ConstPtr typedefs (r33147) 4067 * fixed a bug in _SamplesConsensusModelRegistration_ where the sample selection could get stuck in an infinite loop 4068 * added line to line intersection routines (r33052) 4069 * corrected _transformPointCloudWithNormals_ in transforms.hpp to properly handle normals 4070 4071* [[pcl_ros]] 4072 4073 * switching rosrecord API to rosbag (r33602) 4074 * Complete refactorization of PCL_ROS nodelets. Got rid of multiple inheritance in favor of delegation. Using template specializations now the code compiles faster and GCC processes occupy less RAM during compilation. 4075 * new _PointCloudConcatenateDataSynchronizer_ nodelet: concatenates PointCloud2 messages from different topics (r33241) 4076 * added a _max_clusters_ int_t nodelet option to _EuclideanClusterExtraction_: The maximum number of clusters to extract (r33258) 4077 * added a _filter_limit_negative_ bool_t nodelet option to _Filter_. Set to true if we want to return the data outside [filter_limit_min; filter_limit_max] (r33257). 4078 * fixed bug in _PassThrough_ nodelet that prevented dynamic reconfigure from setting the _FilterFieldName_ properly. 4079 * added implementation of _MovingLeastSquares_ nodelet 4080 4081* [[eigen3]] 4082 4083 * upgraded to eigen3-beta2 4084 4085* [[cminpack]] 4086 4087 * Updated cminpack to 1.0.4 (r33419) 4088 4089* [[pcl_tutorials]] 4090 4091 * added/updated tutorials for range image creation, range image visualization, range image border extraction, NARF keypoint extraction and NARF descriptor calculation. 4092 4093* [[point_cloud_converter]] 4094 4095 * added missing dependency on roscpp (r33045) 4096 4097## *= 0.3.3 (2010-10-04) =* 4098 4099* [[pcl]] 4100 4101 * fixed a bug in _ProjectInliers_ for 32bit architectures (r33035) 4102 * Added unit tests for _computeCovarianceMatrixNormalized_ (r32985) 4103 * making _PointCloud2_/_PointCloud_ typedefs consistent (r32989) 4104 * field W is no longer needed in _pcl::PointNormal_, as it was only used for SSE optimization. Same for _pcl::PointXYZW_, which means we can remove them (r32960) 4105 4106* [[point_cloud_converter]] 4107 4108 * Changed INFO to DEBUG on print statements 4109 4110* [[pcl_tf]] 4111 4112 * added code to check for TF exceptions 4113 4114* [[pcl_ros]] 4115 4116 * changes to consistently output/publish empty datasets + made sure all inputs are checked for validity in each nodelet before processing (r32993) 4117 * added dynamic_reconfigure TF input_frame/output_frame parameters to _pcl_ros::Filter_ (r32990) 4118 4119## *= 0.3.2 (2010-09-28) =* 4120 4121* [[pcl]] 4122 4123 * fixed a bug in _ExtractPolygonalPrismData_ that got introduces in r31172 4124 * added new 3D Keypoint extraction base class and the NARF interest points. 4125 * added iterator, const_iterator, begin, end for _pcl::PointCloud_ 4126 * fixed bug in radius search of kdtree, that occurred when indices_ is used 4127 * renamed sac_model_oriented_[line|plane] to *parallel_line and *perpendicular_plane to be more clear 4128 * added a new SAC model for finding planes that are parallel to a given axis. Useful for e.g. finding vertical planes (parallel to "up" axis) 4129 * added a smarter sample selection to _SampleConsensusModelRegistration_ that uses a minimum distance between samples based on the principal directions/magnitudes of the dataset (r32873) 4130 * enabling SSE optimizations by default for all libraries 4131 * normalized covariance matrix estimation _pcl::computeCovarianceMatrixNormalized_ (r32872) 4132 * Added methods to _pcl::Registration_ for finding point correspondences between pairs of feature clouds 4133 * fixed a bug in _pcl::SampleConsensusModelLine_ where the number of iterations was not correctly checked/set in _getSamples_ 4134 * Added missing includes in icp_nl.h 4135 4136* [[pcl_ros]] 4137 4138 * changing the order of the members to allow nodelet unloading (r32941) 4139 * enabling SSE optimizations for all libraries (r32909) 4140 * enabling parameter setting via dynamic_reconfigure for _StatisticalOutlierRemoval_ filter (r32876) 4141 * set the default number of '''gcc''' build processes to 2, to avoid large memory allocation thus rendering the machine unusable during compilation 4142 4143* [[flann]] 4144 4145 * upgraded to FLANN 1.5 4146 4147## *= 0.3.1 (2010-09-20) =* 4148 4149* [[pcl]] 4150 4151 * fixed a grave bug that caused 32bit architectures to exhibit errors regarding eigen alignment issues (32769) 4152 * fixed a bug with _isBoundaryPoint()_ and _pcl::BoundaryEstimation::computeFeature()_ relating to the use of different surface_ and input_clouds and/or non-default indices_, and added a new way of calling _isBoundaryPoint()_ 4153 * fixed the problem of mls.hpp depending on eigen 2 4154 * added _computeCovarianceMatrixNormalized_ methods <<Ticket(ros-pkg 4171)>> 4155 * Renamed namespace of eigen3 to Eigen3 to prevent conflicts with eigen2 4156 4157* [[laser_scan_geometry]] 4158 4159 * fixed #4437 where PointCloud2 _projectLaser_ fails when laser intensity is off (32765) 4160 4161* [[pcl_tf]] 4162 4163 * fixed #4414 where _lookupTransform_ was being called without tf_listener object (32764) 4164 4165## *= 0.3.0 (2010-09-05) =* 4166 4167* [[pcl]] 4168 4169 * _VectorAverage_ uses fast spezialized PCA method now for dimension=3 4170 * new version of _VoxelGrid_ filter that downsamples data faster and doesn't use as much memory (the previous version could easily cause std::bad_alloc exceptions) 4171 * fixed a major bug where: 1) PointCloud2 structures were being sent with extra unusued (padding) data (i.e., directly copied from _pcl::PointCloud<T>_); 2) writing PCD files in binary mode resulted in corrupted files (r32303) 4172 * fixed a bug where the fields were not cleared on _pcl::getFields (pcl::PointCloud<T>_) (r32293) 4173 * fixed a bug where _PCDWriter_ was writing to the same file instead of creating new ones 4174 * improvements in non linear registration (reduced the number of estimates from 7 to 6, SSE optimizations, etc) 4175 * reduced the number of operations for covariance matrix estimation from 18*N to 10*N+3 => big speedup increase together with _pcl::eigen33_ ! 4176 * Big patch for PCL to work with Eigen3. Fixed alignment issues for Sample Consensus models. Added a faster (experimental) eigen decomposition method from Eigen3 trunk. 4177 * fixed a bug where the axis_ was not properly aligned on 32bit architectures thus causing an assert 4178 * Added ICP functionalities to range image, add new helper functions header file_io, minor fixes. 4179 4180* [[pcl_tf]] 4181 4182 * Added function to just transform a point cloud using an Eigen matrix. 4183 4184* [[pcl_visualization]] 4185 4186 * fixed a bug where NaN values invalidated certain color handlers 4187 * Range image example uses viewpoint information from file now 4188 4189* [[eigen3]] 4190 4191 * added Eigen3 library 4192 4193## *= 0.2.9 (2010-08-27) =* 4194 4195* [[pcl]] 4196 4197 * added _copyPointCloud (sensor_msgs::PointCloud2 &in, indices, sensor_msgs::PointCloud2 &out)_ 4198 4199* [[pcl_visualization]] 4200 4201 * fixed a bug in PCLVisualizer where NULL scalars were causing a segfault 4202 4203* [[pcl_ros]] 4204 4205 * changed the default max queue size to 3 4206 * added implementations for approximate time synchronizers 4207 * _ExtractPolygonalPrismData_ can now rotate the hull in the point cloud frame using TF 4208 4209* [[pcl_tf]] 4210 4211 * transforms.cpp add missing out.header.frame_id = target_frame; 4212 4213* [[laser_scan_geometry]] 4214 4215 * Max range handling from Hokuyo should work properly now. 4216 4217## *= 0.2.8 (2010-08-24) =* 4218 4219* [[pcl]] 4220 4221 * added a Huber kernel to LM optimization 4222 * fixed a bug where the order of _setInputCloud_ and _setPointRepresentation_ triggered an assert condition (31938) 4223 * added a Sample Consensus model for outlier rejection during ICP-like registration 4224 * added implementations of the intensity-domain spin image and Rotation Invariant Feature Transform, as described in "A sparse texture representation using local affine regions," by Lazebnik et al. (PAMI 2005). 4225 * added a templated N-dimensional histogram point type 4226 * Updated code to work with point wrapper registration. 4227 4228* [[pcl_visualization]] 4229 4230 * scale the colors lookup table to the color handler limits (31942) 4231 * fixed a bug where the screenshot function was not using the last updated screen 4232 * _addPointCloudPrincipalCurvatures_ renders the principal curvatures of a point cloud on screen + set color properties 4233 4234## *= 0.2.7 (2010-08-19) =* 4235 4236* [[pcl]] 4237 4238 * SSE improvements in *_PFHEstimation_ 4239 * more SSE improvements in _computeCentroid_, _computeCovarianceMatrix_, etc 4240 * several improvements regarding SSE optimizations in _SACModelPlane_ 4241 * make all data points that deal with XYZ SSE aligned (31780) 4242 * work on improving the VFH signatures (changed the signature from 263 to 308, added distances) 4243 4244* [[pcl_visualization]] 4245 4246 * fixed a silly X11 include bug, where Bool was defined globally therefore breaking BOOST_FOREACH 4247 * added font size property setter for text actors 4248 * new _PCLVisualizer::addText_ method for adding texts to screen (r31822) 4249 * implemented window position ordering and range min/max for _PCLHistogramVisualizer_ (r31805) 4250 * implemented a basic histogram visualizer for multi-dimensional count=1 features (e.g., VFH) 4251 4252* [[pcl_tutorials]] 4253 4254 * added a tutorial for online PointCloud2 message viewing 4255 4256## *= 0.2.6 (2010-08-17) =* 4257 4258* [[pcl]] 4259 4260 * fixed another bug where internal matrices were not always cleared in FPFH/VFH estimation 4261 * fixed a few bugs regarding _sizeof(PointT)=16_ for _demeanPointCloud_ (r31762) 4262 * fixed a grave bun in FPFHOMP/VFH estimation where the matrices were not correctly initialized on consequent runs (r31757) 4263 * introduced PCL exceptions, and added checks for conversion and cloud.at (u, v) operations 4264 4265* [[pcl_ros]] 4266 4267 * fixed a bug where _SACSegmentation_ was accepting two parameters with the same name (distance_threshold vs model_threshold) 4268 * disable empty data publishing in _PCDReader_ 4269 4270* [[pcl_visualization]] 4271 4272 * added lookup table to the renderer 4273 4274* [[cminpack]] 4275 4276 * enabled shared library by default 4277 4278## *= 0.2.5 (2010-08-14) =* 4279 4280* [[pcl]] 4281 4282 * added a convenience method in _pcl::io::loadPCDFileHeader_ for loading up files fast and checking their fields, data types and sizes, etc (r31740) 4283 * added implementation of the Sample Consensus Initial Alignment (SAC-IA) algorithm described in "Fast Point Feature Histograms (FPFH) for 3D Registration," Rusu et al., (ICRA 2009) 4284 * moved the _estimateRigidTransformationSVD_ methods out of _IterativeClosestPoint_ and made them static functions defined in registration.h. 4285 4286* [[pcl_visualization]] 4287 4288 * fixed the minmax color handler visualization (r31710) 4289 * few _addPointCloud_ convenience method for geometry handlers + bugfix in pcd_viewer (the last field was added twice as a color handler when more than one geometry handler was available) 4290 * _addPointCloudNormals_ displays surface normals on screen (PCLVisualizer) 4291 * added -normals and -normals_scale options to pcd_viewer 4292 4293* [[pcl_ros]] 4294 4295 * grave bug fixed in _PointCloudConcatenateFieldsSynchronizer_ where data was not correctly copied (r31708) 4296 * _PCDReader_ nodelet uses a latched topic to publish data 4297 4298## *= 0.2.4 (2010-08-10) =* 4299 4300* [[pcl]] 4301 4302 * pairwise registration tutorial now has on-screen visualization (r31698) 4303 * new laser scan geometry for LaserScan->PointCloud2 conversion 4304 * added general purpose transformation routines for sensor_msgs::PointCloud2 using TF (r31678) 4305 * added basic shapes (line, sphere, cylinder, polygon, etc), split rendering properties for shapes and point clouds (r31665) 4306 * fixed a few bugs regarding fields.count 4307 * small bug fix where triples on the parameter server didn't match with the value in dynamic reconfigure (VoxelGrid) 4308 * added a convenience method for conversion from PointCloud2 (xyz) to Eigen format 4309 * added a method to get the radius of a circumscribed circle 4310 * added methods for saving/loading camera parameters in PCL Visualizer (c, j, -cam) 4311 * added -multiview to pcd_viewer; PCLVisualizer can now create and use different viewports (r31600) 4312 4313## *= 0.2.3 (2010-08-02) =* 4314 4315* [[pcl]] 4316 4317 * tiny bug fixes for cturtle 4318 4319## *= 0.2.2 (2010-08-02) =* 4320 4321* [[pcl]] 4322 4323 * work to improve the PCL Visualization package, standalone pcd_visualizer completed 4324 * added cloud(u,v) accessors for organized datasets. 4325 * added constrained implementations (maximum distance between correspondences) for registration methods 4326 * added PCD file format v.6 which includes field count (r31367) 4327 * added a PointRepresentation class for spatial search methods that allows the user to specify what dimensions are important 4328 * added a maximum distance threshold for point correspondences in registration 4329 * fixed IterativeClosestPoint registration, added a L1 kernel to icp_nl, and unit tests (31283) 4330 * added a new segmentation method for obtaining the differences between two point clouds (r31281) 4331 4332## *= 0.2.1 (2010-07-25) =* 4333 4334* [[pcl]] 4335 4336 * test build fixes 4337 * made BAGReader inherit directly from nodelet::Nodelet 4338 4339## *= 0.2.0 (2010-07-24) =* 4340 4341* [[pcl]] 4342 4343 * added PCL_ROS package for all PCL_ROS interactions. Moved all nodelets and all ROS specific interfaces from PCL to PCL_ROS. 4344 * moved vectorAverage to common 4345 * added class to calculate transformation from corresponding points to common 4346 * added index remapping for the kdtrees so that NAN points are automatically ignored. 4347 * Split kdtrees in h and hpps 4348 * Added some new functionality to range images and fixed bugs in creation process. 4349 * separated the PCL tutorials from the library into a separate package (pcl_tutorials) 4350 * added a PCD Visualizer and implemented several point cloud visualization techniques (handlers) for geometry and color 4351 * added getFieldsList (PCL/io) for a pcl::PointCloud 4352 * added VTK as a dependency for visualization in an attempt to be compatible with older Linux distributions 4353 4354## *= 0.1.9 (2010-06-28) =* 4355 4356* [[pcl]] 4357 4358 * added radius search for organized_data 4359 * fixed some bugs in the range image class 4360 * structural changes in range images related classes 4361 * split point_types.h in point_types.h and point_types.hpp and added output operators for all points 4362 * Added angles.h, norms.h, time.h, transform.h and common_headers.h (which includes all the others) to provide some basic functions for convenience. 4363 * Added border_extraction for range images 4364 * Added vectorAverage to features, which calculates mean and covariance matrix incrementally without storing added points. 4365 * Added macros.h, which provides some basic macros for convenience. 4366 * added an initial PCL Visualizer implementation 4367 * replaced rosrecord with rosbag for all PCL tools 4368 * added cluster_max size to Euclidean Clustering (r30210) 4369 * adding cylinder direction axis constraints + sphere min/max radius constraints for model segmentation (r30195) 4370 * fixed a grave bug which was preventing objects containing ANN trees to be used in multiple threads (r30194) 4371 * fixed a bug where patches for ANN 1.1.2 were not applied correctly (r30193) 4372 * all nodelets now have use_indices and max_queue_size checked at startup via PCLNodelet base class 4373 * switched from rosrecord to the rosbag API for BAGReader 4374 * enable max_queue_size parameter (default to 1) for all nodelets 4375 * set the indices/distances to 0 if the search failed for ANN trees (r30130) 4376 * PCD reader fix when an invalid file name is given (r30004) 4377 * added range image class (r29971) 4378 * added axis and eps_angle as ROS parameters for segmentation (r29938) 4379 * setting the maximum number of clusters that are to be published via max_clusters (r29935) 4380 * fixed a grave bug where SACModelOrientedPlane was performing an infinite loop inside selectWithinDistance (r29934) 4381 4382## *= 0.1.8 (2010-05-24) =* 4383 4384* [[pcl]] 4385 4386 * simplified API in point_cloud_converter 4387 * new general purpose 3D point in 2D polygon check method (r29645) 4388 * added a getPointsInBox() method 4389 * fixed a bug where some points were not considered as being part of the polygonal prism due to polygonal bound checking errors (r29597) 4390 * added a PointXYZI type to represent intensity data. 4391 * updating flann to 1.5_pre2 (r29549) 4392 * added MovingLeastSquares tutorial (r29539) 4393 4394## *= 0.1.7 (2010-05-13) =* 4395 4396* [[pcl]] 4397 4398 * getMinMax3D<T> methods now reside in common 4399 * fixed a major bug in VoxelGrid where centroids were not initialized correctly 4400 * fixed a bug where NdCopyEigenPointFunctor and NdCopyPointEigenFunctor were given incorrect values 4401 * reorganizing the library for faster compilation 4402 * fix for linker errors when linking together multiple translation units that include the same point type registration. Static tag name strings would be defined more than once. #4071 (r29435) 4403 4404## *= 0.1.6 (2010-05-01) =* 4405 4406* [[pcl]] 4407 4408 * added parameter sets for Filter, VoxelGrid, ExtractIndices (r29229) 4409 * refactorized the dynamic reconfigure parametrization for nodelets 4410 * added tutorial/sample for cylinder segmentation via SAC (r29224) 4411 * introduced bad model handling in the sample consensus loop (r29218) 4412 * added the field name to the dynamic reconfigure parameter list for Filters (r29211) 4413 * improved NaN handling in kdtrees (r29204) 4414 * fixed a bug where PassThrough was incorrectly declared as a nodelet (r29202) 4415 * added tutorial/sample for the ConvexHull2D algorithm (r29198) 4416 * added set/get radius limits (to be extended), implemented radius limits for cylinder models, and better RANSAC model checking (r29194) 4417 * default input topic on pointcloud_to_pcd changed from "tilt_laser_cloud" to "input" (r29137) 4418 * CMakeLists split into individual files for better organization 4419 * fixed a couple of boost linking errors on some machines 4420 * transformed point_cloud_converter from a node into a library+node so it can be reused elsewhere 4421 * added a command line tool for concatenating PCD files (r29035) 4422 * added an implementation of the Viewpoint Feature Histogram (VFH) (r29032) 4423 4424## *= 0.1.5 (2010-04-22) =* 4425 4426* [[pcl]] 4427 4428 * added tutorial/sample for the ExtractIndices filter (r28990) 4429 * added tutorial/sample for the VoxelGrid filter (r28986) 4430 * added tutorial/sample for the StatisticalOutlierRemoval filter (r28985) 4431 * added templated version of loadPCDFile (r28978) and PCDReader::read 4432 * added unit tests for the StatisticalOutlierRemoval filter (r28971) 4433 * added unit tests for the ProjectInliers filter (r28970) 4434 * added unit tests for the VoxelGrid filter (r28969) 4435 * added negative limits and fixed a bug where the centroid was not correctly initialized in VoxelGrid (r28967) 4436 * added unit tests for the PassThrough filter (r28966) 4437 * added unit tests for PCL filters: RadiusOutlierRemoval and ExtractIndices (r28961) 4438 * added extra unit tests for concatenate points/fields (r28959) 4439 * added tutorial/sample code for BAGReader (r28955) 4440 4441## *= 0.1.4 (2010-04-21) =* 4442 4443* [[pcl]] 4444 4445 * added a few nodelet tests (talker, listener, pingpong) 4446 * added unit tests for BAGReader (r28924) 4447 * added an implementation for BAGReader (r28922) 4448 * added unit tests for PCDReader/PCDWriter 4449 * fixed a few bugs where certain include headers were not exposed properly 4450 * added an implementation of a statistical outlier removal filter (r28886) 4451 * added an implementation of radius outlier removal filter (r28878) 4452 * fixed a bug (#3378) where the output file name in several tools was incorrect (r28858) 4453 * added an implementation of non-linear ICP (28854) 4454 * fixed a bug where the min/max estimation was incorrect for sensor_msgs/PointCloud2 types in voxel_grid (r28846) 4455 4456## *= 0.1.3 (2010-04-15) =* 4457 4458* [[pcl]] 4459 4460 * final transformation is now accessible after registration (r28797) 4461 * added filter_limit_negative to switch between inside/outside interval (r28796) 4462 * added =/+= operator to PointCloud<PointT> (r28795) 4463 * added a set of tutorials for IO, Segmentation, Filtering 4464 * fixed a very ugly bug regarding covariance matrices having 0 elements (r28789) 4465 * IterativeClosestPoint tested and works (r28706) 4466 * added set/get maximum distance for organized data index and virtualized the ANN radiusSeach (r28705) 4467 * added demeaning methods to registration/transforms.h 4468 * updated ANN library to 0.1.2 4469 * fixed a major bug in ExtractPolygonalPrismData where distances were incorrectly checked 4470 * added plane normal flip via viewpoint to ExtractPolygonalPrismData 4471 * added axis and eps_angle (set/get) to SACSegmentationFromNormals 4472 * added methods for transforming PointCloud datasets containing normals 4473 4474## *= 0.1.2 (2010-04-05) =* 4475 4476* [[pcl]] 4477 4478 * added a first draft implementation of tf_pcl 4479 * added missing descriptions to PCL nodelets list 4480 * fixed a few bugs in voxel_grid where the offset was not incremented correctly (r28559) 4481 * added a new passthrough filter 4482 * fixed a few bugs regarding Eigen/Boost's make_shared (r28551) 4483 * solved numerical instability issue in MLS, preferred the solution using doubles over the one using SVD (r28502). MLS works great now. 4484 * simplified the registration API (still in progress) 4485 * changed point_cloud_converter to accept 2 input and 2 output topics, thus fixing the "subscribe when nothing is being published" problem (r28540) 4486 4487## *= 0.1.1 (2010-03-29) =* 4488 4489* [[pcl]] 4490 4491 * fixed a very nasty bug in VoxelGrid where leaves were not properly initialized (r28404) 4492 * fixed extractEuclideanClusters (was not working correctly) 4493 * added min/max height for polygonal prism data extraction (r28325) 4494 * added a bag_to_pcd tool that doesn't need ROS to convert BAG files to PCD (r28469) 4495 * fixed a bug where PCL classes couldn't be used unless ros::init was called first 4496 * classes now inherit from PCLNodelet and PCLBase 4497 * setInputCloud and setIndices are defined in PCLBase now, and used everywhere 4498 * fixed a bug where kdtree structures were incorrectly created 4499 * added get/set helper methods everywhere 4500 * PointCloud2 structures can now contain NaN (Not a Number) values, so extra checks have been added in a lot of places 4501 * added new distance methods to sample consensus models 4502 * removed ROS_DEBUG statements in the feature constructors 4503 * indices can now be set via pcl::PointIndices too 4504 * fixed a bug where the surface was not getting re-initialized in Feature (r28405) 4505 * added explicit checks for invalid covariance matrices (r28306) 4506 * fixed a bug where indices are created to mimic the input point cloud data but never reset (r28306) 4507 * cleaned the C++ API documentation 4508 * initial MLS port (untested) 4509 4510## *= 0.1.0 (2010-03-10) =* 4511 4512* [[pcl]] 4513 4514 * initial release 4515