1.4.0
Major changes:
- New build system
- C++17 support
- Python bindings
- 4 DOF Point-to-plane error minimizer
- Spectral Decomposition Datapoints Filter
- Add Descriptor Datapoints Filter
- Countless fixes and improvements, see the complete list below
Language, compilation, platforms and build system
- Added missing include that made windows compilation fail. by @simonpierredeschenes in #343
- Modernize cmake; make cmake compatible with git submoduling by @jlblancoc in #382
- Fix build of downstream packages. by @peci1 in #407
- The keyword "or" is not supported by windows compilers. by @kubelvla in #418
- Get rid of the Visual C++ warnings by @afabri in #355
- Automaticaly find eigen3 by @maximecharriere in #448
- Windows: Fix Narrowing conversion of seed in MaxPointCount by @maxGimeno in #470
- Build python binding as regular package by @KernelA in #506
- Handle libnabo config mode by @sloriot in #513
- libpointmatcher build-system by @RedLeader962 in #518
- build-system minor mod by @RedLeader962 in #519
- fix: build-system side unstable compilation issue fix [NMO-402] by @RedLeader962 in #539
- fix: N2ST path resolution in dependencies-doc docker image by @RedLeader962 in #541
- Fixes to CMake library management config generation by @boxanm in #538
- fix: refactor hardcoded build system path using environment variable and substitution by @RedLeader962 in #542
- refactor(release-prep): doc update and libpointmatcher-build-system logic refactoring to submodule by @RedLeader962 in #543
- feat: Move libpointmatcher build-system logic to norlab-build-system submodule (clean-up and polish) by @RedLeader962 in #545
- fix: Build system improvements and fixes by @RedLeader962 in #546
- Migrate to C++17 by @boxanm in #536
- feat: implement libpointmatcher turnkey install scripts for user who have cloned the repo by @RedLeader962 in #547
- Fixed compilation on Visual Studio 2022 by @soesau in #494
- Fixes for windows by @maxGimeno in #437
- Link against pthread by @YoshuaNava in #417
- Disable static boost linkage by default by @KernelA in #530
- Add Boost_LIBRARIES to pointmatcher_LIBRARIES by @maxGimeno in #441
- Add libpointmatcher_INCLUDE_DIR to match with CGAL by @maximecharriere in #446
Error minimizers
- Change icp chain image to an svg by @PhiBabin in #340
- Feature/4 dof for point to plane minimizer by @kubelvla in #378
- Add missing force4DOF param to PointToPlaneWithCov by @bhavitp in #384
- Fix 4DoF PointToPlane error minimizer crash by @kaatrasa in #492
- RemoveBeyond option for the maxQuantileDistance filter by @dagata-mining in #452
- Add option to weight by reading pc by @hermannsblum in #439
Data point filters
- Fix/normal space hashing by @jsburklund in #327
- Improve speed of Normal Space filtering by @jsburklund in #328
- Fix/clamp normals by @jsburklund in #326
- [feature/spdf] Add SpectralDecompositionFilter (SpDF) by @MathLabu in #411
- [DataPoints] Added check to prevent unsigned int underflow in getEuclideanDim() by @YoshuaNava in #414
- Feature/speedup random sampling filter by @YoshuaNava in #396
- Fix weird behavior of MaxPointCountDataPointsFilter by @aguenette in #464
- Add seed to Random sampling filter by @boxanm in #501
- Fix time values after applying Sampling surface normal filter by @boxanm in #502
- New DataPoints filter for descriptor augmentation by @boxanm in #535
- Fix octree sampling by @boxanm in #540
- Fix the surface normals datapoints filter covariance matrix bug by @aguenette in #465
- Apply the transformation to eigen vectors by @aguenette in #467
- Change storage ordering of the eigen vectors descriptors by @aguenette in #468
- Bug fix in
SurfaceNormalOutlierFilter
by @cjamin in #457 - Updated the inner loop counter by @harsh-su in #521
Documentation
- Update link to documentation in readme by @PhiBabin in #350
- [WIP] Fix/typo : Tutorials improvements by @aguenette in #386
- Fixes tutorials formatting problem (#373) by @aguenette in #387
- Fix/typo Fixes tutorials building failure by @aguenette in #388
- Outlier filter documentation added by @nimisbert in #392
- Adding the new outlierfilters documentation to mkdocs .yml by @aguenette in #394
- Added reference for PointToPlaneWithCov ErrorMinimizer. by @simonpierredeschenes in #398
- Fixed the differences between examples and documentation (#409) by @aguenette in #410
- Reorganization of the compiling tutorials for ubuntu and macos by @aguenette in #400
- Strong Windows installation tutorial update by @maximecharriere in #447
- Add more details in pypointmatcher's installation docs by @IamPhytan in #495
- Update README.md by @pomerlef in #525
- Update CompilationPython.md by @boxanm in #527
- Create LICENSE file based on BSD license as per package.xml by @Timple in #485
- Update readme_test.md for docker daemon test by @RedLeader962 in #524
- Create readme_test.md by @RedLeader962 in #522
- Update CompilationWindows.md by @NattyBumppo in #456
- Fix windows doc by @maxGimeno in #436
- Typo in PCL lib name by @andre-nguyen in #422
Miscellaneous
- refactor: Drop support for yaml-cpp old API by @aguenette in #450
- [WIP] feature/python_module : Adding libpointmatcher's Python bindings (#222) by @aguenette in #397
-
Fix segfault happening in ICPSequence class by @simonpierredeschenes in #348
-
Fix out-of-bounds access by @jlblancoc in #385
-
Replaced the remaining raw pointers with shared pointers in Registrar.h by @aguenette in #395
-
Feature/geometry data points filter for master by @kubelvla in #374
-
Implemented an in-place method for transforming DataPoints objects by @YoshuaNava in #419
-
Include iso646.h to add
and
,or
,not
macros by @maximecharriere in #427 -
[Matches/OutlierFiltersImpl] Made convergence error messages more informative by @YoshuaNava in #453
-
Histogram::computeStats() without sorting the Histogram by @maximecharriere in #479
-
Use the LOG_INFO_STREAM macro instead of std::cerr by @maximecharriere in #490
-
Release by @RedLeader962 in #523
-
Fix Transformations test build when using Eigen3.4 by @boxanm in #531
-
THE 2023 release by @RedLeader962 in #544
New Contributors
- @jsburklund made their first contribution in #327
- @haampie made their first contribution in #332
- @kubelvla made their first contribution in #378
- @jlblancoc made their first contribution in #385
- @aguenette made their first contribution in #386
- @bhavitp made their first contribution in #384
- @afabri made their first contribution in #354
- @nimisbert made their first contribution in #392
- @peci1 made their first contribution in #407
- @YoshuaNava made their first contribution in #414
- @andre-nguyen made their first contribution in #422
- @maximecharriere made their first contribution in #427
- @maxGimeno made their first contribution in #436
- @hermannsblum made their first contribution in #439
- @dagata-mining made their first contribution in #452
- @NattyBumppo made their first contribution in #456
- @cjamin made their first contribution in #457
- @Timple made their first contribution in #482
- @kaatrasa made their first contribution in #492
- @IamPhytan made their first contribution in #495
- @soesau made their first contribution in #494
- @KernelA made their first contribution in #506
- @sloriot made their first contribution in #513
- @RedLeader962 made their first contribution in #518
- @harsh-su made their first contribution in #521
Full Changelog: 1.3.1...1.4.0