Skip to content

Commit

Permalink
Merge branch 'master' into upPolyscope
Browse files Browse the repository at this point in the history
  • Loading branch information
dcoeurjo authored Oct 30, 2024
2 parents 6e27267 + 2c16fe8 commit e67ac40
Show file tree
Hide file tree
Showing 22 changed files with 1,301 additions and 137 deletions.
11 changes: 11 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
# 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))


# DGtal 1.4.1

Expand Down
29 changes: 12 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#Download base image
ARG UBUNTU_VERSION=20.04
ARG UBUNTU_VERSION=22.04
FROM ubuntu:${UBUNTU_VERSION} as base
# LABEL about the custom image
LABEL maintainer="[email protected]"
LABEL maintainer="[email protected]"
LABEL version="0.0.1"
LABEL description="This Docker is for the Dgtal library installation."
ARG DEBIAN_FRONTEND=noninteractive
Expand All @@ -29,12 +29,9 @@ RUN apt -y install mesa-common-dev libglm-dev mesa-utils
### Install cmake
RUN apt -y install cmake
###Install boost
RUN apt -y install libboost-all-dev
###Install clang-9
RUN apt -y install clang-9

RUN apt -y install libcgal*
RUN apt -y install libboost-dev

### Install optional deps
RUN apt -y install libmagick++-dev

RUN apt -y install graphicsmagick*
Expand All @@ -43,33 +40,31 @@ RUN apt -y install doxygen

RUN apt -y install libcgal-dev

RUN apt -y install libinsighttoolkit4-dev

RUN apt -y install libqglviewer-dev-qt5
#RUN apt-get -y install libinsighttoolkit4-dev

RUN apt -y install libgmp-dev
#RUN apt -y install libqglviewer-dev-qt5

RUN apt -y install libeigen3-dev
#RUN apt -y install libgmp-dev

RUN apt -y install libfftw3-dev
#RUN apt -y install libfftw3-dev

#### User to install
RUN groupadd -g 1000 digital
RUN useradd -d /home/digital -s /bin/bash -m digital -u 1000 -g 1000
RUN usermod -aG sudo digital
####

RUN apt -y install mesa-common-dev libglm-dev mesa-utils
#RUN apt -y install mesa-common-dev libglm-dev mesa-utils

### Directory to store the git
RUN mkdir /home/digital/git/
RUN mkdir /home/digital/git/DGtal


#### clone git and install
RUN git clone https://github.com/DGtal-team/DGtal.git /home/digital/git/DGtal
#RUN git clone https://github.com/DGtal-team/DGtal.git /home/digital/git/DGtal

RUN mkdir /home/digital/git/DGtal/build
RUN cd /home/digital/git/DGtal/build && cmake .. -DWITH_GMP=true -DWITH_EIGEN=true -DWITH_FFTW3=true -DWITH_CGAL=true -DWITH_ITK=true -DWITH_OPENMP=true -DWITH_CAIRO=true -DWITH_QGLVIEWER=true -DWITH_MAGICK=true && make install
#RUN mkdir /home/digital/git/DGtal/build
#RUN cd /home/digital/git/DGtal/build && cmake .. -DWITH_GMP=true -DWITH_EIGEN=true -DWITH_FFTW3=true -DWITH_CGAL=true -DWITH_ITK=true -DWITH_OPENMP=true -DWITH_CAIRO=true -DWITH_QGLVIEWER=true -DWITH_MAGICK=true && make install


20 changes: 15 additions & 5 deletions cmake/CheckDGtalOptionalDependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -344,15 +344,25 @@ if(WITH_CGAL)

find_package(CGAL COMPONENTS Core)
if(CGAL_FOUND)
include( ${CGAL_USE_FILE} )
set(CGAL_FOUND_DGTAL 1)
target_compile_definitions(DGtal PUBLIC -DCGAL_EIGEN3_ENABLED)
target_compile_definitions(DGtal PUBLIC -DWITH_CGAL)
target_link_libraries(DGtal PUBLIC ${CGAL_LIBRARIES} ${CGAL_3D_PARTY-LIBRARIES})
set(DGtalLibDependencies ${DGtalLibDependencies} ${CGAL_LIBRARIES} ${CGAL_3D_PARTY-LIBRARIES})
## Making sure that CGAL got the Eigen3 flag
target_compile_definitions(DGtal PUBLIC -DWITH_Eigen3 -DWITH_LAPACK)
message(STATUS "CGAL found.")
message(STATUS "CGAL found, version ${CGAL_VERSION}")
if (CGAL_VERSION VERSION_LESS "5.0")
message(FATAL_ERROR "CGAL version 5.0 or higher is required.")
else()
if (CGAL_VERSION VERSION_LESS "6.0")
message(STATUS "CGAL using ${CGAL_USE_FILE}")
include( ${CGAL_USE_FILE} )
target_link_libraries(DGtal PUBLIC ${CGAL_LIBRARIES} ${CGAL_3D_PARTY-LIBRARIES})
set(DGtalLibDependencies ${DGtalLibDependencies} ${CGAL_LIBRARIES} ${CGAL_3D_PARTY-LIBRARIES})
## Making sure that CGAL got the Eigen3 flag
else()
target_link_libraries(DGtal PUBLIC CGAL::CGAL)
set(DGtalLibDependencies ${DGtalLibDependencies} CGAL::CGAL)
endif()
endif()
endif()
endif()

Expand Down
3 changes: 3 additions & 0 deletions cmake/Common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,15 @@ include(TargetDoxygenDox OPTIONAL)
# -----------------------------------------------------------------------------
# uninstall target
# -----------------------------------------------------------------------------
option(DGTAL_REMOVE_UNINSTALL "Remove DGtal uninstall target." OFF)
if (NOT DGTAL_REMOVE_UNINSTALL)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/TargetUninstall.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/TargetUninstall.cmake
@ONLY)
add_custom_target(uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/TargetUninstall.cmake")
endif()

# -----------------------------------------------------------------------------
# Parsing cmake options
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 e67ac40

Please sign in to comment.