Ponca
aa50bfdf187919869239c5b44b748842569114c1
Point Cloud Analysis library
|
Check latest release at: https://github.com/poncateam/ponca/releases/latest.
update documentation and examples
ease the design of new estimators
Improve tests and documentation
Ponca changelog -------------------------------------------------------------------------------- Current head (v.1.4 RC) - Cmake - [build] Enable exportation of projects linking to Ponca targets (#150) - [install] Change output directory to `lib/cmake/Ponca` (#150) - Bug-fixes and code improvements - [spatialPartitioning] Fix compilation error with `MAX_NODE_COUNT` when compiled with MSVC (#152) -------------------------------------------------------------------------------- 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