Skip to content

Commit

Permalink
Merge pull request #1744 from troussil/LAlg
Browse files Browse the repository at this point in the history
Implementation of the L-Algorithm
  • Loading branch information
dcoeurjo authored Oct 9, 2024
2 parents 4e9fc6a + e1c26b4 commit 2c16fe8
Show file tree
Hide file tree
Showing 19 changed files with 1,265 additions and 116 deletions.
6 changes: 5 additions & 1 deletion ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
# DGtal 1.5beta

## New features

- *Geometry*
- Implementation of the plane-probing L-algorithm (Tristan Roussillon, [#1744](https://github.com/DGtal-team/DGtal/pull/1744))

## Bug fixes

- *General*
- Fix cmake CGAL 6.0 Breaking change. (David Coeurjolly, [#1745](https://github.com/DGtal-team/DGtal/pull/1745))
- Adding a new `DGTAL_REMOVE_UNINSTALL` cmake option to disable the `uninstall` target. (David Coeurjolly, [#1746](https://github.com/DGtal-team/DGtal/pull/1746)


- *Geometry*
- Bug fix in ArithmeticalDSSComputerOnSurfels (Tristan Roussillon, [#1742](https://github.com/DGtal-team/DGtal/pull/1742))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ int main(void)
//! [PlaneProbingTetrahedronEstimatorConstruction]
// The general form is ProbingEstimator<Predicate, mode> where
// - Predicate is a model of concepts::PointPredicate, see DigitalPlanePredicate or DigitalSurfacePredicate for instance,
// - mode specifies the candidate set, it is one of { ProbingMode::H, ProbingMode::R, ProbingMode::R1 }.
// - mode specifies the candidate set, it is one of { ProbingMode::H, ProbingMode::R, ProbingMode::R1, ProbingMode::L }.
using DigitalPlane = DigitalPlanePredicate<Space>;
using Estimator = PlaneProbingTetrahedronEstimator<DigitalPlane, ProbingMode::R1>;

Expand Down
18 changes: 18 additions & 0 deletions src/DGtal/doc/global.bib
Original file line number Diff line number Diff line change
Expand Up @@ -1329,6 +1329,24 @@ @article{LMRJMIV2020
HAL_VERSION = {v1},
}

@InProceedings{Lu2022,
author="Lu, Jui-Ting
and Roussillon, Tristan
and Coeurjolly, David",
editor="Baudrier, {\'E}tienne
and Naegel, Beno{\^i}t
and Kr{\"a}henb{\"u}hl, Adrien
and Tajine, Mohamed",
title="A New Lattice-Based Plane-Probing Algorithm",
booktitle="Discrete Geometry and Mathematical Morphology",
year="2022",
publisher="Springer International Publishing",
address="Cham",
pages="366--381",
abstract="Plane-probing algorithms have become fundamental tools to locally capture arithmetical and geometrical properties of digital surfaces (boundaries of a connected set of voxels), and especially normal vector information. On a digital plane, the overall idea is to consider a local pattern, a triangle, that is expanded starting from a point of interest using simple probes of the digital plane with a predicate ``Is a point x in the digital plane?''. Challenges in plane-probing methods are to design an algorithm that terminates on a triangle with several geometrical properties: its normal vector should match with the expected one for digital plane (correctness), the triangle should be as compact as possible (acute or right angles only), and probes should be as close as possible to the source point (locality property). In addition, we also wish to minimize the number of iterations or probes during the computations. Existing methods provide correct outputs but only experimental evidence for these properties. In this paper, we present a new plane-probing algorithm that is theoretically correct on digital planes, and with better experimental compactness and locality than existing solutions. Additional properties of this new approach also suggest that theoretical proofs of the aforementioned geometrical properties could be achieved.",
isbn="978-3-031-19897-7"
}

@INPROCEEDINGS{Lachaud03c,
AUTHOR = {J.-O. Lachaud and A. Vialard},
TITLE = {Geometric measures on arbitrary dimensional digital surfaces},
Expand Down
2 changes: 1 addition & 1 deletion src/DGtal/geometry/doc/modulePlaneProbing.dox
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ testPlaneProbingParallelepipedEstimator.cpp.

\section sectPlaneProbing1 Introduction to plane-probing algorithms

A plane-probing algorithm (see @cite LPRJMIV2017, @cite RLDGCI2019 and @cite LMRJMIV2020)
A plane-probing algorithm (see @cite LPRJMIV2017, @cite RLDGCI2019, @cite LMRJMIV2020 and @cite Lu2022)
computes the normal vector of a set of digital points
from a starting point and a predicate \b InPlane: "Is a point x in the set of digital points?".
This predicate is used to probe the set as locally as possible
Expand Down
2 changes: 1 addition & 1 deletion src/DGtal/geometry/doc/packageGeometry.dox
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ of arbitrary dimension, by the means of separable and incremental distance trans
- \subpage moduleIntegralInvariant <!--Integral invariant curvature estimator 2D/3D--> (Jérémy Levallois, David Coeurjolly, Jacques-Olivier Lachaud)
- \subpage LocalEstimatorsFromSurfel (David Coeurjolly)
- \subpage moduleVCM (Louis Cuel, Jacques-Olivier Lachaud, Quentin Mérigot, Boris Thibert)
- \subpage modulePlaneProbing (Jacques-Olivier Lachaud, Jocelyn Meyron, Tristan Roussillon)
- \subpage modulePlaneProbing (Jacques-Olivier Lachaud, Jui-Ting Lu, Jocelyn Meyron, Tristan Roussillon)
- \subpage moduleMaximalSegmentSliceEstimation (Jocelyn Meyron, Tristan Roussillon)

- Mesh geometric estimators
Expand Down
Loading

0 comments on commit 2c16fe8

Please sign in to comment.