Ponca  aa50bfdf187919869239c5b44b748842569114c1
Point Cloud Analysis library
Loading...
Searching...
No Matches
Releases overview

Check latest release at: https://github.com/poncateam/ponca/releases/latest.

Principal features of the latest releases

V1.1: improve Spatial Partitioning module + bug fixes

  • add KdTreeTraits to customize KdTree, add KnnGraph
  • fix several mathematical bugs in Fitting package
  • update documentation and examples

    git checkout v1.1

V1.0: adding Spatial Partitioning module

  • 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

    git checkout v1.0

V0.3: adding Spatial Partitioning module

V0.2: adding Spatial Partitioning module

  • Add a new Spatial Partitioning module with a KdTree and several queries
  • Add a new Common module for general purpose code
  • Improvements of the cmake build chain (dependencies management and use a submodule).
    git checkout v0.2-alpha-patch1

Complete Changelog

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