|
Ponca
80e34c4ed3322bafe25349c3ea7523ca4a3aa60d
Point Cloud Analysis library
|
Check latest release at: https://github.com/poncateam/ponca/releases/latest.
Ponca changelog
--------------------------------------------------------------------------------
Current head (v.2.0.alpha1 RC)
- Bug-fixes and code improvements
- [fitting] Fix broken include directives in Basket/Compute (#236)
- Tests
- [all] Speed up tests in coverage mode (#236)
- Examples
- [nanoflann] Fix broken include directives (#236)
- CI/Actions
- Add coverage report for Pull Requests (#236)
- [ci] Removal of submodule from code coverage test (#238)
--------------------------------------------------------------------------------
v.2.0.alpha0
This release introduce the first API changes toward v2.0 + bug fixes and doc improvements
- API
- [fitting] Refactor weight functions. Now supports local/global fitting (#177)
- [fitting] Add compact and non-compact weight kernels (#177)
- [fitting] Add changeBasis method for `Plane` and `Line` primitives (#177)
- [fitting] Make projectDescent available for any `Basket` (#177)
- Bug-fixes and code improvements
- [fitting] Add [[nodiscard]] qualifier when required (#221)
- [fitting] Fix uninitialized variables (#221)
- [fitting] `AlgebraicSphere`: fix bug on projection for the planar case (#177)
- Tests
- [fitting] Add barycenter test (#177)
- [fitting] Add change_basis test (#177)
- [fitting] Minor improvements (#221)
- Examples
- [all] Update examples according to API change (#177)
- Docs
- [fitting] Add missing documentation (MeanPositionDer, MeanNormalDer) (#222)
- [fitting] Fix issues in documentation (MeanNormal) (#222)
- [fitting] Update doc according to API change (#177)
- [fitting] Minor improvements (#221)
--------------------------------------------------------------------------------
v.1.4
- API
- [fitting] Refactor the Weighting function initialization to avoid misuse (#167)
- [fitting] Add class NoWeightFunc to skip weight computation (#144)
- [fitting] Add ComputeObject and changed basket to inherit the compute methods from it (#188)
- [fitting] Add features in CovarianceFitBase (#191)
- [fitting] Generalised smooth weight kernel to any dimension (#159)
- [fitting] Adding the MLS computation (#187)
- Cmake
- [build] Enable exportation of projects linking to Ponca targets (#150)
- [install] Change output directory to `lib/cmake/Ponca` (#150)
- [build] Fix the compilation of pcl_wrapper on newer CMake version by enabling the use of the C language (#156)
- Bug-fixes and code improvements
- [spatialPartitioning] Fix compilation error with `MAX_NODE_COUNT` when compiled with MSVC (#152)
- [spatialPartitioning] Fix compilation error with AppleClang: wrong initializers ordering (#154)
- [spatialPartitioning] Fix issues with KdTreeCustomizableNode copy and move constructors(#192)
- [fitting] Fix typo in code (#182)
- [fitting] Fix unsafe use of m_ul in OrientedSphereFit for degenerated cases (#202)
- [fitting] Streamlining compute functions declaration (#194, #210)
- [spatialPartitioning] Adding missing PONCA_MULTIARCH_STD_MATH call (#205)
- [all] Added static cast to remove warnings (#203)
- [all] Fixing include directives for std lib (#214)
- Tests
- [fitting] Split Basket test in subtests (#96)
- [fitting] Fix random failure in Basket and Projection tests (#96,#162)
- [fitting] Minor fix in the basket test (#186,#193)
- [fitting] Adding the MLS test (#187)
- Examples
- [ssgls] Fix compilation error with CUDA due to compiler mismatch (#96)
- [pcl] Fix compilation error due to outdated API usage (#96)
- [nanoflann] Add missing include directive (#96)
- CI/Actions
- Fix automatic doc deployment (#158,#176)
- Print error log on tests failure (#162)
- save time by installing PCL and configuring examples only if tests are ok (#208)
- Docs
- [fitting] Updated the Fit user manual to account for the change of use of the curvature estimator (#172)
- [fitting] Improve concept and capabilities descriptions (#207)
- [doc] Removed the release digest (#160)
--------------------------------------------------------------------------------
v.1.3
This release introduces several improvements around the KdTre API, as well as bug fixes, new features and doc
(equations !!) for the fitting module.
- Silent Breaking Changes
- [fitting] Fix bad design where public barycenter() function was expressed in local coordinate (#141)
- API
- [SpatialPartitioning] Change part of the kdtree API (#123)
- [spatialPartitioning] Refactor KdTree into KdTreeDense + KdTreeSparse (#129)
- [fitting] Add UnorientedSphereDer (#134)
- Bug-fixes and code improvements
- [all] Limit explicit use of exceptions and adapt to compilation mode (#135)
- [fitting] Fix MeanNormal and MeanNormalDer classes for mean normal vector derivatives computation (#136)
- Tests
- [fitting] Compare single-pass covariance analysis with standard two-passes algorithm (#143)
- Docs
- [spatialPartitioning] Update KdTree docs to reflect the kdtree API refactor (#129)
- [fitting] Add equations explaining how single-pass covariance analysis works (#143)
--------------------------------------------------------------------------------
v.1.2
This release introduces several bug fixes and minor improvements.
- API
- [spatialPartitioning] Optimize memory use in knngraph queries (#104)
- [spatialPartitioning] Clean KdTree API (#122)
- [spatialPartitioning] Simplify node customization (#128)
- [fitting] Mark `Base` type as protected instead of private in CRTP classes (#119)
- [fitting] Improve KdTreeNodes API by hiding internal memory layout, improve methods naming (#120)
- Examples
- Fix example cuda/ponca_ssgls (#109)
- Bug-fixes and code improvements
- [fitting] Use variadic template for basket extensions (#85)
- [fitting] Fix current status issue (#108)
- [fitting] Fix sphere fit eigen solver (#112)
- [fitting] Fix a bug in AlgebraicSphere::primtiveGradient (#127)
- [spatialPartitioning] Optimize memory use in knngraph queries (#104)
- [spatialPartitioning] Fix potential compilation issues in KnnGraph (#111)
- [spatialPartitioning] Fix debug macros in KnnGraphRangeQuery (#121)
- [spatialPartitioning] Improve kdtree to_string to output data in YAML format (#125)
-Docs
- [fitting] Clarify documentation on FIT_RESULT (#108)
--------------------------------------------------------------------------------
v.1.1
This release improves the Spatial Partitioning Package with new features and
improved doc, as well as several bug fixes and API improvements.
- API
- [spatialPartitioning] Add kd-tree traits type (#80)
- [spatialPartitioning] Add knn-graphs (#101)
- [fitting] Add Primitive::getNumNeighbors (#86)
- [fitting] Add Primitive::getWeightFunc (#99)
- [fitting] Change naming convention and rational for principal curvatures in CurvatureEstimatorBase (#94)
- [fitting] Add class MeanNormalDer to compute derivatives of the mean normal vector (#78)
- Bug-fixes and code improvements
- [spatialPartitioning] Fix unwanted function hiding with DryFit::setWeightFunc (#86)
- [spatialPartitioning] Fix missing include directive in kdTreeTraits.h (#92)
- [spatialPartitioning] Fix duplicated code in KdTree queries (see issue #47) (#88)
- [fitting] Fix a potential bug when using multi-pass fitting (#89)
- [fitting] Fix a bug in CovarianceFit (#93)
- [fitting] Remove deadcode in Basket (#86)
- [fitting] Fix a bug in dtau computation for scale-only derivation (#98)
- [fitting] Fix a bug in MlsSphereFitDer weight derivatives (#97)
- [ci] Fix Compiler is out of heap space error on Github (MSVC), by splitting tests (#87)
- Tests
- Fix WeightKernel test (failing on windows due to finite differences) (#91)
-Docs
- [spatialPartitioning] Update module page with a minimal doc and examples (#86, #92)
- [spatialPartitioning] Add NanoFlann example (#86)
- [fitting] Update documentation of AlgebraicSphere::changeBasis (#99)
--------------------------------------------------------------------------------
v.1.0
This release introduces several changes in the API in order to
- improve the computation timings (we reported x1.2 to x1.4 gain depending on
the situation)
- reduce code duplication
- ease the design of new estimators
The changes introduced in this version mostly are introduced by PR #56.
- API
- [fitting] Factorize neighbors weight computation (#56)
- [fitting] Factorize neighbors weight derivative computation (add class
PrimitiveDer and BasketDiff) (#56)
- [fitting] Add new classes for intermediate computation, which reduces code
duplication across estimators: MeanPosition, MeanNormal, MeanPositionDer,
CovarianceFit, CovarianceFitDer (#56)
- [fitting] Improve genericity by allowing to build objets computing multiple
fits at once (#56)
- [fitting] Add a mechanism to detect conflicting computations (#56)
- [fitting] Move iScaleDer out of internal namespace + name enum (#56)
- [fitting] Rename normal() as primitiveGradient in MlsSphereFit (#72)
- [fitting] Add new weight kernels (#71,#74)
- [fitting] Add mechanism to check weight derivatives validity (#74)
- Bug-fixes and code improvements
- [fitting] Reduce objets sizes by removing unnecessary attributes (#56)
- [fitting] Set default fields values (#56)
- [fitting] Remove explicit implementation of default constructors (#56)
- [fitting] Add macros to simplify headers writing (#56)
- [fitting] Fix several warnings when compiling with MSVC (#56)
- [fitting] Fix compilation error in GLSDer (#68)
- [fitting] Fix a bug in barycenterDer computation (#72)
- [fitting] Improve weight kernel testing (#71,#74)
- Tests
- [fitting] Update according to API changes (#56)
- [fitting] Rewrite test on dNormal (#72)
-Docs
- Switch to doxygen-awesome-css (#56)
- Fix several warnings (#56)
- [common] Add main page (#56)
- [common] Add concept page (#56)
- [common] Reformat page User Manual (#56)
- [fitting] Rewrite User Manual (#56)
- [fitting] Rewrite Concept page (#56)
- [fitting] Add mathematical details about barycenter and barycenterDer (#72)
--------------------------------------------------------------------------------
v.0.3
- API
- [spatialpartitioning] Remove duplicated code and clean API (#32,#51)
- [spatialpartitioning] Fix a bug in range queries (#46)
- [spatialpartitioning] Add a counter of leaf in the KdTree (#55)
- [spatialpartitioning] Add editInput on Queries to allow query re-usability
between different request (#57)
- [fitting] Add Line primitive and LeastSquaresLineFitting (#39)
- [fitting] Rename several classes for better name consistency (#42)
- [fitting] Add DryFit: a dummy fit object useful for debugging or monitoring (#52, #53)
- [fitting] Improve convenience functions for basket: add compute(Range) and
computeWithIds, which can be directly interfaced with kdtree queries (#53)
- [fitting] Fix too sensitive AlgebraicSphere comparison (#53)
- [common] Add missing include directive in stack.h (#59)
- Buildchain
- [cmake] Add option to hide IDE targets (#54)
- Tests
- [spatialpartitioning] Fix wrong test macro in kdtree tests (#46)
- [fitting] Fix bug in basket test (#51)
- [fitting] Disable test on windows when using long doubles (#53)
- Dependencies
- [eigen] Update default version to 3.4 (#53)
- Doc
- Rewrite documentation of the fitting package user manual and its classes. (#42)
- Fix typo in user manual (#34)
- Fix broken speed/quality comparisons for curvature estiators (#53)
- Fix Mathjax configuration (#41)
- Update author list (#42)
--------------------------------------------------------------------------------
v.0.2-patch1
- Buildchain
- [cmake] Fix several bugs with Eigen submodule (#26)
- Tests
- Fix test on Algebraic Sphere projection (#27)
- Fix compilation error on Windows (github actions) for Basket test ( (#27)
- Doc
- Fix online documentation (#29): broken reference list (issue #24)
- CI/Actions
- Add automatic doc deployment (#29)
--------------------------------------------------------------------------------
v.0.2
- API
- [spatialpartitioning] Add new package Space Partitioning (#20)
- [core][fitting] Rename Core module as Fitting (#9)
- [common] Add package common (#9)
- [api] New public entry points are the header files <Ponca/Ponca> and <Ponca/Fitting> (#9)
- Buildchain
- [cmake] Fix several bugs with Eigen submodule (#17,#19)
- [cmake] Allow use as submodule (#15)
- [cmake] Cmake package is now relocable (#9)
--------------------------------------------------------------------------------
v.0.1
- Migrate from Patate: update naming
--------------------------------------------------------------------------------
Patate changelog
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
v.0.5
- Vitelotte
- Core
# Fixed a bug making LDLT solver fail with most versions of Eigen.
# Now support curved edges for rendering
# Improved Windows/Linux compatibility.
# Added Luv color space and fixed a few bugs.
# Added color space support (conversion and rendering)
# Removed redundant headers
# Fixed shader2cpp so that generated shaders are not modified on each compilations.
# Fixed errors and warnings
- Examples
# mvg_editor: display status bar message on selection
- Documentation
# Documentation for diffusion images and color spaces
- Grenaille
- Core
# Fix bugs in GLS derivatives computations
# API improvements:
- Add a method compute(Iterator begin, Iterator end) to hide the addNeighbor/finalize calls when using stl-like vertex containers
- GLS::tau and GLS::eta replaced by generic names: potential, normal. These names are also used by CovariancePlaneFit.
- Add a general CurvatureEstimator based on the availability of a dNormal() method. Make GLSCurvatureHelper deprecated. Principal curvature extraction has also been improved by computing the 2x2 shape operator
# Fix surfaceVariation() method to match Pauly's definition
# Improved covariance plane fitting (single pass + first orded spatial derivatives)
# Speed-up computation of eigenvector derivatives by by-passing the computation of the SVD to compute the pseudo-inverse of the matrix pencil
# Remove several warnings
- Cuda
# Improved compatibility with Cuda 7 (compilation + cross-compilation )
- Tests
# Fix fit_plane unit test
# Extend paraboloid unit test to check for covariance-plane derivatives
# Improve paraboloid unit test: add numerical differentiation, improve stability
- Examples
# Cuda and C++ examples can now be compiled using CMake
# Python examples are also installed in build dir
- General documentation
# Add deprecated page
# Added a clean changelog page and fixed images copy.
# Replace link to devel-list to patate-info registration page
# Add AMS math extensions
# Add a table listing methods implemented in Grenaille
- Other improvements
# Update CMake configuration to show Grenaille and Vitelotte source files in QtCreator
--------------------------------------------------------------------------------
v0.4
- Vitelotte
- Core
# First release of Vitelotte which include a datastructure for
mesh-based vector graphics, a FEM diffusion solver, an OpenGL renderer
and I/O in the mvg file format
- Examples
# tutorial: a simple application to demonstrate basic usage of Vitelotte
# mvgtk: a CLI tool to manipulate mvg files
# mvg_editor: a simple GUI tool to edit mvg files
# mvg_viewer: a lightweigh OpenGL viewer
- Doc
# Added the Vitelotte section, with user manual for the main
functionalities and basic explanations of the examples
- Grenaille
- Core
# Bugfixes and performance improvements in GLSCurvatureHelper
- Doc
# Minor changes: added formulas
- General documentation
# Updates Eigen/Cuda instructions
--------------------------------------------------------------------------------
v0.3.2
- Core
# New PrimitiveBase class (to be used with heritance for all new primitives)
# Plane primitive added
# New output state for fitting added (need another pass)
# New plane fitting technique, using covariance analysis
# Few updates
- Examples
# PCL wrapper added
# Plane fitting example added
- Tests
# Plane primitive tests added
# Plane fitting tests added
# Few updates in tests
- Documentation
# Few fixes in typo
# Few updates in credits and for new features
--------------------------------------------------------------------------------
v0.3.1
- Core
# few issues with cuda have been updated
- Exemple
# SSC gls examples updated
--------------------------------------------------------------------------------
v0.3
- Documentation
# New version with improved presentation, new examples, user manual, images, references, etc.
# Examples fixed.
# We now have a logo !
- Tests
# Now using ctest for the unit tests
# Few functional tests have been added
- Core
# Fits now have a state. The finalize() function can return it. See doc for more details.
# Fit degenerative cases are now well treated (for example plane case). Thus, it should no more produce QNaN values.
# Library cleaned of useless code / files.
# Code refactoring, we now follow some guidelines (see guidelines.txt).
--------------------------------------------------------------------------------
V0.1.2
- BugFix
# Fix space derivatives equals to NaN when the local query is (0,...,0)
- Documentation
# Update documentation on partial support of SelfAdjointEigenSolver in cuda
# Update documentation on GLSCurvatureHelper: new tutorial
- Functionalities
# Add a ready state in algebraic sphere that is set to true by the fitting kernels finalize method
# Add method to compare two GLS instances
# Add helper class to compute principal curvatures
- Improvements
# Use optimized storage order for derivatives vectors wrt space/space differentiation parameters
- Tests
# Add eigendecomposition test
- Cleaning
# Remove unused include directives