Skip to content

Commit 7c78290

Browse files
authored
Merge pull request #2 from kerautret/FixCIFrechetFix
Fix ci frechet fix
2 parents 81227e3 + 95a2b7d commit 7c78290

36 files changed

+8274
-220
lines changed

.github/workflows/build-master.yml

+9-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ env:
1010
CONFIG_GLOBAL: -DBUILD_EXAMPLES=true -DBUILD_TESTING=true -DDGTAL_RANDOMIZED_TESTING_THRESHOLD=10 -DWITH_EIGEN=true
1111
CONFIG_LINUX: -DWITH_OPENMP=true -DWITH_GMP=true -DWITH_FFTW3=true -DWITH_CGAL=true -DWITH_LIBIGL=true -DWARNING_AS_ERROR=ON -DWITH_HDF5=true -DWITH_QGLVIEWER=true -DWITH_CAIRO=true -DWITH_ITK=true -DDGTAL_ENABLE_FLOATING_POINT_EXCEPTIONS=true -DBUILD_POLYSCOPE_EXAMPLES=true
1212
CONFIG_MAC: -DWITH_GMP=true -DBUILD_POLYSCOPE_EXAMPLES=true -DWITH_CGAL=true -DWITH_LIBIGL=true
13-
CONFIG_WINDOWS: -DWITH_OPENMP=true -DENABLE_CONAN=true #-DWITH_FFTW3=true #-DWITH_CAIRO=true #-DWITH_ITK=true -DWITH_GMP=true
13+
CONFIG_WINDOWS: -DWITH_OPENMP=true #-DWITH_GMP=true #-DWITH_FFTW3=true #-DWITH_CAIRO=true #-DWITH_ITK=true
1414

1515
jobs:
1616
build:
@@ -44,17 +44,18 @@ jobs:
4444
id: conan
4545
uses: turtlebrowser/get-conan@main
4646
with:
47-
version: 1.57.0
47+
version: 2.4.0
4848

4949
- name: Create conan default profile
5050
if: matrix.os == 'windows-latest'
51-
run: conan profile new default --detect
52-
51+
run: |
52+
conan profile detect --force
53+
5354
- uses: actions/cache@v4
5455
if: matrix.os == 'windows-latest'
5556
with:
5657
path: ~/.conan
57-
key: ${{ runner.os }}-conan-${{ matrix.BUILD_TYPE }}
58+
key: ${{ runner.os }}-conan2-${{ matrix.BUILD_TYPE }}
5859

5960
- name: Get white list of tests
6061
run: |
@@ -80,7 +81,9 @@ jobs:
8081
if: matrix.os == 'windows-latest'
8182
shell: bash
8283
working-directory: ${{runner.workspace}}/build
83-
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} $CONFIG_GLOBAL $CONFIG_WINDOWS -DDGTAL_RANDOMIZED_TESTING_WHITELIST="${{ steps.whitelist.outputs.WHITELIST }}"
84+
run: |
85+
conan install $GITHUB_WORKSPACE --build=missing
86+
cmake $GITHUB_WORKSPACE -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} $CONFIG_GLOBAL $CONFIG_WINDOWS -DDGTAL_RANDOMIZED_TESTING_WHITELIST="${{ steps.whitelist.outputs.WHITELIST }}"
8487
8588
- name: Build
8689
working-directory: ${{runner.workspace}}/build

.github/workflows/buildAndDocumentation-PR.yml

+10-7
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ on:
66

77
env:
88
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
9-
BUILD_TYPE: Debug
109
TESTBLACKLIST: "(testLinearStructure|testIntegerConverter|testArithmeticalDSSComputerOnSurfels)"
1110
CONFIG_GLOBAL: -DBUILD_EXAMPLES=true -DBUILD_TESTING=true -DDGTAL_RANDOMIZED_TESTING_THRESHOLD=10 -DWITH_EIGEN=true
1211
CONFIG_LINUX: -DUSE_CCACHE=NO -DWITH_OPENMP=true -DWITH_GMP=true -DWITH_CGAL=true -DWITH_LIBIGL=true -DWITH_FFTW3=true -DWARNING_AS_ERROR=ON -DWITH_HDF5=true -DWITH_QGLVIEWER=true -DWITH_CAIRO=true -DWITH_ITK=true -DDGTAL_ENABLE_FLOATING_POINT_EXCEPTIONS=true -DBUILD_POLYSCOPE_EXAMPLES=true
1312
CONFIG_MAC: -DUSE_CCACHE=NO -DWITH_GMP=true -DBUILD_POLYSCOPE_EXAMPLES=true -DWITH_CGAL=true -DWITH_LIBIGL=true
14-
CONFIG_WINDOWS: -DWITH_OPENMP=true -DENABLE_CONAN=true #-DWITH_FFTW3=true #-DWITH_CAIRO=true #-DWITH_ITK=true -DWITH_GMP=true
13+
CONFIG_WINDOWS: -DWITH_OPENMP=true #-DWITH_GMP=true #-DWITH_FFTW3=true #-DWITH_CAIRO=true #-DWITH_ITK=true
1514

1615
jobs:
1716
build:
@@ -45,17 +44,19 @@ jobs:
4544
id: conan
4645
uses: turtlebrowser/get-conan@main
4746
with:
48-
version: 1.57.0
47+
version: 2.4.0
4948

5049
- name: Create conan default profile
5150
if: matrix.os == 'windows-latest'
52-
run: conan profile new default --detect
51+
run: |
52+
conan profile detect --force
53+
5354
5455
- uses: actions/cache@v4
5556
if: matrix.os == 'windows-latest'
5657
with:
57-
path: ~/.conan
58-
key: ${{ runner.os }}-conan-${{ matrix.BUILD_TYPE }}
58+
path: ~/.conan2
59+
key: ${{ runner.os }}-conan2-${{ matrix.BUILD_TYPE }}
5960

6061
- name: Get white list of tests
6162
run: |
@@ -81,7 +82,9 @@ jobs:
8182
if: matrix.os == 'windows-latest'
8283
shell: bash
8384
working-directory: ${{runner.workspace}}/build
84-
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} $CONFIG_GLOBAL $CONFIG_WINDOWS -DDGTAL_RANDOMIZED_TESTING_WHITELIST="${{ steps.whitelist.outputs.WHITELIST }}"
85+
run: |
86+
conan install $GITHUB_WORKSPACE --build=missing
87+
cmake $GITHUB_WORKSPACE -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} $CONFIG_GLOBAL $CONFIG_WINDOWS -DDGTAL_RANDOMIZED_TESTING_WHITELIST="${{ steps.whitelist.outputs.WHITELIST }}"
8588
8689
- name: Build
8790
working-directory: ${{runner.workspace}}/build

.github/workflows/pythonBindings-PR.yml

+9-6
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,18 @@ jobs:
4848
id: conan
4949
uses: turtlebrowser/get-conan@main
5050
with:
51-
version: 1.57.0
51+
version: 2.4.0
5252

5353
- name: Install dependancies (conan - Windows 2/2)
5454
if: matrix.os == 'windows-latest'
55-
run: conan profile new default --detect
56-
55+
run: |
56+
conan profile detect --force
57+
5758
- uses: actions/cache@v3
5859
if: matrix.os == 'windows-latest'
5960
with:
60-
path: ~/.conan
61-
key: ${{ runner.os }}-conan-${{ matrix.BUILD_TYPE }}
61+
path: ~/.conan2
62+
key: ${{ runner.os }}-conan2-${{ matrix.BUILD_TYPE }}
6263

6364

6465
- name: Create Build Environment
@@ -80,7 +81,9 @@ jobs:
8081
if: matrix.os == 'windows-latest'
8182
shell: bash
8283
working-directory: ${{runner.workspace}}/build
83-
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} $CONFIG_PYTHON $CONFIG_GLOBAL $CONFIG_WINDOWS
84+
run: |
85+
conan install $GITHUB_WORKSPACE --build=missing
86+
cmake $GITHUB_WORKSPACE -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} $CONFIG_PYTHON $CONFIG_GLOBAL $CONFIG_WINDOWS
8487
8588
8689
- name: Build

.github/workflows/pythonBindings-Pypi.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,19 @@ jobs:
5151
id: conan
5252
uses: turtlebrowser/get-conan@main
5353
with:
54-
version: 1.57.0
54+
version: 2.4.0
5555

5656
- name: Install dependancies (conan - Windows 2/2)
5757
if: matrix.os == 'windows-latest'
58-
run: conan profile new default --detect
58+
run: |
59+
conan profile new default --detect
60+
conan install . --output-folder=build --build=missing
5961
6062
- uses: actions/cache@v3
6163
if: matrix.os == 'windows-latest'
6264
with:
6365
path: ~/.conan
64-
key: ${{ runner.os }}-conan-${{ matrix.BUILD_TYPE }}
66+
key: ${{ runner.os }}-conan2-${{ matrix.BUILD_TYPE }}
6567

6668
- name: Install python dependancies
6769
shell: bash

ChangeLog.md

+34-8
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
- Major update: C++17 is now required for DGtal. (David Coeurjolly,
66
[#1682](https://github.com/DGtal-team/DGtal/pull/1682))
77
- Mandatory dependencies and some optional ones can be setup by
8-
conan.io, especially on windows, new `ENABLE_CONAN` cmake
8+
conan.io, especially on Windows, new `ENABLE_CONAN` cmake
99
option to activate this. (David Coeurjolly,
1010
[#1689](https://github.com/DGtal-team/DGtal/pull/1689))
1111
- Faster build using CPM for dependency download and ccache with the cmake `USE_CCACHE=YES`option
1212
(ccache must be installed). (David Coeurjolly, [#1696](https://github.com/DGtal-team/DGtal/pull/1696))
1313
- Better documentation style using doxygen-awesome.css. (David Coeurjolly,
14-
[#1697](https://github.com/DGtal-team/DGtal/pull/1697))
14+
[#1697](https://github.com/DGtal-team/DGtal/pull/1697))
1515

1616
- *Geometry*
1717
- New implicit shape from point cloud using LibIGL Winding Numbers. (David Coeurjolly,
@@ -23,24 +23,41 @@
2323
[#1699](https://github.com/DGtal-team/DGtal/pull/1699))
2424
- Python bindings and Pypi deploy are now handled by Github-Actions (Bastien Doignies,
2525
[#1721](https://github.com/DGtal-team/DGtal/pull/1721))
26+
- Add CMake option DGTAL_WRAP_PYTHON (Pablo Hernandez-Cerdan,
27+
[#1700](https://github.com/DGtal-team/DGtal/pull/1700))
28+
- Upgrade of the conan scripts (for windows build) to conan 2, removing the ENABLE_CONAN option
29+
(documentation update instead) (David Coeurjolly,
30+
[#1729](https://github.com/DGtal-team/DGtal/pull/1729))
2631

2732
- *IO*
2833
- New method to change the mode of the light position in Viewer3D (fixed to
2934
camera or the scene) (Bertrand Kerautret, [#1683](https://github.com/DGtal-team/DGtal/pull/1683))
3035
- Add a new method to store material information in obj file in MeshReader and MeshWriter.
3136
(Bertrand Kerautret, [#1686](https://github.com/DGtal-team/DGtal/pull/1686))
3237
- Fix duplicate symbols on Windows due to stb_image, see issue #1714 (David Coeurjolly,
33-
[#1715](https://github.com/DGtal-team/DGtal/pull/1715)
38+
[#1715](https://github.com/DGtal-team/DGtal/pull/1715))
3439

3540
- *Shapes*
36-
- Add flips to SurfaceMesh data structure
37-
(Jacques-Olivier Lachaud, [#1702](https://github.com/DGtal-team/DGtal/pull/1702))
41+
- Add flips to SurfaceMesh data structure (Jacques-Olivier Lachaud,
42+
[#1702](https://github.com/DGtal-team/DGtal/pull/1702))
3843
- Add method to remove isolated vertices in Mesh, improve obj
3944
material reading from potential obsolete path. (Bertrand Kerautret,
4045
[#1709](https://github.com/DGtal-team/DGtal/issues/1709))
41-
- Update of the WindingNumber constructor to allow external computation of point areas
46+
- Update of the WindingNumberShape constructor to allow external computation of point areas
47+
(David Coeurjolly,[#1719](https://github.com/DGtal-team/DGtal/issues/1719))
48+
- The WindingNumberShape class can output the raw winding number values
4249
(David Coeurjolly,[#1719](https://github.com/DGtal-team/DGtal/issues/1719))
4350

51+
- *DEC*
52+
- New helper functor to construct an embedder to correct the PolygonalCalculs
53+
(projection onto estimated tangent planes) (David Coeurjolly,
54+
[#1730](https://github.com/DGtal-team/DGtal/issues/17309))
55+
56+
- *Geometry package*
57+
- Add creation of polytopes from segments and triangles in
58+
ConvexityHelper and 3-5xfaster full subconvexity tests for triangles
59+
in DigitalConvexity (Jacques-Olivier Lachaud,
60+
[#1717](https://github.com/DGtal-team/DGtal/pull/1717))
4461

4562
- *Project*
4663
- Add CMake option DGTAL_WRAP_PYTHON (Pablo Hernandez-Cerdan,
@@ -84,16 +101,25 @@
84101
[#1711](https://github.com/DGtal-team/DGtal/pull/1711))
85102
- Fixing install path of CPM in the DGtalConfig.cmake.in (David Coeurjolly,
86103
[#1713](https://github.com/DGtal-team/DGtal/pull/1713))
104+
- DGTAL_LIBRARIES cmake flag now contains the Deps (David Coeurjolly,
105+
[#1728](https://github.com/DGtal-team/DGtal/pull/1728))
87106

88107
- *Topology package*
89108
- Fix KhalimskySpaceND to get it work with BigInteger (Tristan Roussillon,
90-
[#1681](https://github.com/DGtal-team/DGtal/pull/1681)
109+
[#1681](https://github.com/DGtal-team/DGtal/pull/1681))
91110

92111
- *Geometry package*
93112
- Fix Issue #1676 in testStabbingCircleComputer (Tristan Roussillon,
94113
[#1688](https://github.com/DGtal-team/DGtal/pull/1688)
114+
- Fix BoundedLatticePolytopeCounter::countInterior method (Jacques-Olivier Lachaud,
115+
[#1717](https://github.com/DGtal-team/DGtal/pull/1717))
95116
- Fix const attribute that shouldn't be in FreemanChain (Colin Weill--Duflos,
96-
[#1723](https://github.com/DGtal-team/DGtal/pull/1723))
117+
[#1723](https://github.com/DGtal-team/DGtal/pull/1723))
118+
- Fix seg fault due to recent compilers in FrechetShortcut (Bertrand Kerautret,
119+
Isabelle Sivignon [#1726](https://github.com/DGtal-team/DGtal/pull/1726))
120+
- Fix FrechetShortcut to enable the parameter error to be equal to 0 and add new
121+
tests in testFrechetShortcut (Isabelle Sivignon, [#1726](https://github.com/DGtal-team/DGtal/pull/1726))
122+
97123

98124
- *IO*
99125
- Fix of the `getHSV` method in the `Color` class. (David Coeurjolly,

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ and to construct a federative project. Another objective of DGtal is
1717
to simplify the construction of demonstration tools to share new
1818
results and potential efficiency of the proposed work.
1919

20+
DGtal received the [Symposium on Geometry Processing Software Award in 2016](http://awards.geometryprocessing.org/).
2021

2122
Quick Install
2223
=============

cmake/CheckDGtalDependencies.cmake

-64
Original file line numberDiff line numberDiff line change
@@ -6,70 +6,6 @@ message(STATUS "----------------------------------------------------------------
66
message(STATUS "DGtal required dependencies: ")
77

88

9-
# -----------------------------------------------------------------------------
10-
# Mandatory and optional deps via conan
11-
# -----------------------------------------------------------------------------
12-
option(ENABLE_CONAN "Enable conan for deps discovery (used for windows CI for instance) features." OFF)
13-
14-
15-
if (ENABLE_CONAN)
16-
message(STATUS "Conan enabled for deps")
17-
18-
if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
19-
message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
20-
file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake"
21-
"${CMAKE_BINARY_DIR}/conan.cmake"
22-
STATUS DOWNLOAD_STATUS
23-
TLS_VERIFY ON)
24-
list(GET DOWNLOAD_STATUS 0 STATUS_CODE)
25-
list(GET DOWNLOAD_STATUS 1 ERROR_MESSAGE)
26-
# Check if download was successful.
27-
if(${STATUS_CODE} EQUAL 0)
28-
message(STATUS "Download completed successfully!")
29-
else()
30-
message(STATUS "Error occurred during download: ${ERROR_MESSAGE}")
31-
message(STATUS "Trying turning TLS_VERIFY OFF")
32-
file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake"
33-
"${CMAKE_BINARY_DIR}/conan.cmake"
34-
STATUS DOWNLOAD_STATUS
35-
TLS_VERIFY OFF)
36-
list(GET DOWNLOAD_STATUS 0 STATUS_CODE)
37-
list(GET DOWNLOAD_STATUS 1 ERROR_MESSAGE)
38-
if(${STATUS_CODE} EQUAL 0)
39-
message(STATUS "Download completed successfully!")
40-
else()
41-
message(FATAL_ERROR "Error occurred during download: ${ERROR_MESSAGE}")
42-
endif()
43-
endif()
44-
endif()
45-
46-
include("${CMAKE_BINARY_DIR}/conan.cmake")
47-
48-
conan_cmake_configure(REQUIRES zlib/1.2.13
49-
boost/1.81.0
50-
gmp/6.2.1
51-
fftw/3.3.9
52-
#cairo/1.17.6
53-
#libpng/1.6.39 #Explicit fix deps (compat issues)
54-
#expat/2.5.0
55-
#openssl/1.1.1s
56-
#libiconv/1.17
57-
OPTIONS boost:header_only=True
58-
gmp:enable_cxx=True
59-
GENERATORS cmake_find_package)
60-
61-
conan_cmake_autodetect(settings)
62-
conan_cmake_install(PATH_OR_REFERENCE .
63-
BUILD missing
64-
REMOTE conancenter
65-
SETTINGS ${settings})
66-
67-
set(FFTW3_DIR ${CONAN_FFTW_ROOT})
68-
message(STATUS "Setting FFTW3_DIR to ${CONAN_FFTW_ROOT}")
69-
else()
70-
message(STATUS "Conan disabled")
71-
endif()
72-
739
# -----------------------------------------------------------------------------
7410
# Looking for boost
7511
# -----------------------------------------------------------------------------

cmake/DGtalConfig.cmake.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,5 +132,5 @@ if(NOT TARGET DGtal)
132132
include ("${DGTAL_CMAKE_DIR}/DGtalLibraryDepends.cmake")
133133
endif()
134134

135-
set(DGTAL_LIBRARIES DGtal Eigen3::Eigen)
135+
set(DGTAL_LIBRARIES DGtal ${DGtalLibDependencies})
136136
get_target_property(DGTAL_INCLUDE_DIRS DGtal INTERFACE_INCLUDE_DIRECTORIES)

conanfile.txt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[requires]
2+
fmt/9.1.0
3+
zlib/1.2.13
4+
boost/1.81.0
5+
gmp/6.3.0
6+
fftw/3.3.9
7+
8+
[generators]
9+
CMakeDeps
10+
CMakeToolchain
11+
12+
[options]
13+
boost*:header_only=True
14+
gmp*:enable_cxx=True

examples/polyscope-examples/dgtalCalculus-bunny.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
* Laboratoire d'InfoRmatique en Image et Systemes d'information - LIRIS (CNRS, UMR 5205), CNRS, France
2020
*
2121
* @date 2021/09/02
22+
* @ingroup Examples
2223
*
2324
* This file is part of the DGtal library.
2425
*/

examples/polyscope-examples/dgtalCalculus-geodesic.cpp

+4-17
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* @file
1818
* @author David Coeurjolly (\c [email protected] )
1919
* Laboratoire d'InfoRmatique en Image et Systemes d'information - LIRIS (CNRS, UMR 5205), CNRS, France
20+
* @ingroup Examples
2021
*
2122
* @date 2021/09/02
2223
*
@@ -92,25 +93,11 @@ void precompute()
9293
auto surfels = SH3::getSurfelRange( surface, params2 );
9394
iinormals = SHG3::getIINormalVectors(binary_image, surfels,params2);
9495
trace.info()<<iinormals.size()<<std::endl;
95-
auto myProjEmbedder = [&](Face f, Vertex v)
96-
{
97-
const auto nn = iinormals[f];
98-
RealPoint centroid(0.0,0.0,0.0); //centroid of the original face
99-
auto cpt=0;
100-
for(auto v: surfmesh.incidentVertices(f))
101-
{
102-
cpt++;
103-
centroid += surfmesh.position(v);
104-
}
105-
centroid = centroid / (double)cpt;
106-
RealPoint p = surfmesh.position(v);
107-
auto cp = p-centroid;
108-
RealPoint q = p - nn.dot(cp)*nn;
109-
return q;
110-
};
11196
psMesh->addFaceVectorQuantity("II normals", iinormals);
97+
11298
calculus = new PolyCalculus(surfmesh);
113-
calculus->setEmbedder( myProjEmbedder );
99+
functors::EmbedderFromNormalVectors<Z3i::RealPoint, Z3i::RealVector> embedderFromNormals(iinormals,surfmesh);
100+
calculus->setEmbedder( embedderFromNormals );
114101
}
115102

116103
heat = new GeodesicsInHeat<PolyCalculus>(calculus);

examples/polyscope-examples/dgtalCalculus-halfsphere.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
* Laboratory of Mathematics (CNRS, UMR 5127), University of Savoie, France
2020
*
2121
* @date 2022/04/10
22+
* @ingroup Examples
2223
*
2324
* This file is part of the DGtal library.
2425
*/

0 commit comments

Comments
 (0)