Skip to content

Commit

Permalink
Merge branch 'master' into update-bootstrap-jquery-GF
Browse files Browse the repository at this point in the history
  • Loading branch information
SaillantNicolas committed Jan 4, 2024
2 parents ede13f2 + 6a2eb49 commit 0827770
Show file tree
Hide file tree
Showing 7 changed files with 109 additions and 25 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/Receive_PR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,19 @@ jobs:
- name: Remove demo/ (temporarily)
run: rm -rf demo/
- name: Setup Pages
uses: actions/configure-pages@v3
uses: actions/configure-pages@v4
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
uses: actions/upload-pages-artifact@v3
- name: Create PR number file
run: |
echo "${{ github.event.number }}" > pr_number.txt
- name: Upload PR number file
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr_number.txt
17 changes: 0 additions & 17 deletions _posts/2023-06-13-new-release-cgal56-beta1.md

This file was deleted.

5 changes: 3 additions & 2 deletions _posts/2023-07-28-three_new_releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ The CGAL Open Source Project is pleased to announce today three new releases:
* [CGAL-5.5.3](/2023/07/28/cgal553) is the third bug-fix release for CGAL-5.5, and
* [CGAL-5.6](/2023/07/28/cgal56) is latest release of CGAL.

The development of CGAL will then now on the future CGAL-6.0 (planned for December 2023), with bug-fixes regularly backported to the branches for CGAL-5.5.x and CGAL-5.6.x. CGAL-6.0 will be the first release of CGAL requiring C++17 or later. It will also support Qt6.

The development of CGAL will now focus on the future CGAL-6.0 (planned for June 2024), with bug-fixes
regularly backported to the branches for CGAL-5.5.x and CGAL-5.6.x. CGAL-6.0 will be the first release
of CGAL requiring C++17 or later. It will also support Qt6.
</div>
96 changes: 96 additions & 0 deletions _posts/2023-12-17-alpha_wrapping_improvements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
layout: post
title: "New in CGAL: Improvements for 3D Alpha Wrapping"
description: "New features, and speed-up"
category:
tags: [""]
---
{% include JB/setup %}

<h3><a href="https://geometryfactory.com/who-we-are/">Mael Rouxel-Labbé</a></h3>
<h4><a href="http://www.geometryfactory.com" target="_blank">GeometryFactory</a></h4>

<br>
<p>Introduced in CGAL 5.5, the package
<a href="https://doc.cgal.org/latest/Manual/packages.html#PkgAlphaWrap3" text="3D Alpha Wrapping">3D Alpha Wrapping</a>
can be used to generate watertight, manifold surface triangle meshes from any given inputs provided we can compute distances
and intersections to this input. This enables the method to guarantee output properties,
and genericity with respect to the input format (triangles, polylines, ...).
In addition, it is guaranteed to strictly encloses the input, which is a mandatory property
for applications needing conservative distance queries, such as collision avoidance,
or motion planning. Finally, it is fully robust to defects in the input such as self-intersections,
degeneracies, non-manifoldness...</p>

<div style="text-align:center;">
<a href="../../../../images/christmas_wrap.png"><img src="../../../../images/christmas_wrap.png" style="max-width:95%"/></a><br>
<br><small>Season's wrappings.</small>
</div>

<br><br>
<p>In the upcoming CGAL release, CGAL 6.0, we introduce a few improvements to the 3D Alpha Wrapping package:
pause & resuming functionalities, fast "LOD" wrapping, generation of volumetric wraps, and some speed-ups.</p>

<br>
<h3>Resume and Restart Functionalities</h3>

<p>The main function of the package 3D Alpha Wrapping takes two input parameters: the size of the
the feature size (<i>alpha</i>), and the isosurface of the distance field on which new vertices are created
(offset, also named <i>delta</i>). The parameter alpha can be understood as the size of a spoon carving around the input.
A larger alpha will thus remove small features and fill large gaps, and a small alpha will preserve those features,
and enter the gaps and cavities (see also Section <a href="https://doc.cgal.org/latest/Alpha_wrap_3/index.html#title5">Choosing Parameters</a>
of the documentation). Although the physicality can be understood, it might be that one
is not exactly sure which value should be used; or, one might simply wish to create a wrap that is
as detailed as possible within a fixed amount of time.</p>

<p>This is now possible thanks to the addition of a visitor to the wrapping algorithm, which gives
more information and control to the user during the wrapping process. An example showing how to use
the visitor to pause and resume a wrapping process has been added:
<a href="https://github.com/CGAL/cgal/blob/master/Alpha_wrap_3/examples/Alpha_wrap_3/pause_and_resume_wrapping.cpp">pause_and_resume_wrapping.cpp</a>.</p>

<p>Another closely related feature being added is the possibility of generating multiple wraps for different
values of alpha for the same input, for example to generate different levels of detail (LODs).
One could of course simply launch the wrapping process from scratch as many times as needed, but
the resuming functionality improves greatly on this: by sorting the value of alpha in decreasing order
(coarse to fine), we can restart from a previous result to generate the next version.
By avoiding a recomputation from scratch, a lot of time is saved. Here is a new example
illustrating the process: <a href="https://github.com/CGAL/cgal/blob/master/Alpha_wrap_3/examples/Alpha_wrap_3/successive_wraps.cpp">successive_wraps.cpp</a>.</p>

<div style="text-align:center;">
<a href="../../../../images/alpha_wrap.png"><img src="../../../../images/alpha_wrap.png" style="max-width:95%"/></a><br>
<br><small>Wrapping of an engine piece with complex interior (left) for different values of alpha.</small>
</div>

<br>
<h3>Volumetric Meshing</h3>

<p>The wrapping algorithm constructs an underlying 3D triangulation of which the final wrap is a selected
set of faces. Thus, at the end of the algorithm, we have a tetrahedrization of the volume bounded
by the wrap. This tetrahedral mesh was totally unused so far, but a getter has been added.
By combining this with the recent package <a href="https://doc.cgal.org/latest/Manual/packages.html#PkgTetrahedralRemeshing" Text="Tetrahedral Remeshing">Tetrahedral Remeshing</a>,
one can generate high-quality volumetric tetrahedral meshes of the space enclosed by the wrap.</p>

<div style="text-align:center;">
<a href="../../../../images/volumetric_wrap.png"><img src="../../../../images/volumetric_wrap.png" style="max-width:95%"/></a><br>
<br><small>Volumetric mesh of the notoriously painful input <a href="https://ten-thousand-models.appspot.com/detail.html?file_id=996816">996816.stl</a> (Thingi10k). 380k cells in ~10s.</small>
</div>

<br>
<p>The following example describes this process: <a href="https://github.com/CGAL/cgal/blob/master/Alpha_wrap_3/examples/Alpha_wrap_3/volumetric_wrap.cpp">volumetric_wrap.cpp</a>.</p>

<br>
<h3>Speed-up</h3>

<p>Finally, we always look for improvements while working on code. Various enhancements
to the wrapping algorithms have resulted in a 2x speed-up of the code since CGAL 5.6!</p>

<h3>Status</h3>

<p>All these new improvements are already integrated in CGAL's master branch on the
<a href="https://github.com/CGAL/cgal/">CGAL GitHub repository</a>, and will be officially released
in the upcoming version of CGAL, CGAL 6.0, scheduled for June 2024.</p>

<i class="glyphicon glyphicon-book"></i>
<a href="https://doc.cgal.org/latest/Manual/packages.html#PkgAlphaWrap3">Documentation of the package Alpha_wrap_3</a>
<br>
<i class="glyphicon glyphicon-download"></i>
<a href="https://github.com/CGAL/cgal/tree/master">CGAL master branch on GitHub</a>
Binary file added images/christmas_wrap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/volumetric_wrap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 7 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ <h3 class="slideSubTitle">
<div class="container">
<div class="row">
<div class="blog-post blog-single-post col-md-12">
<p>CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library.
<p>CGAL is an open source software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library.
CGAL is used in various areas needing geometric computation, such as geographic information systems, computer aided design,
molecular biology, medical imaging, computer graphics, and robotics.</p>

Expand All @@ -89,9 +89,13 @@ <h3 class="slideSubTitle">
<a href="https://doc.cgal.org/latest/Manual/packages.html#PkgAlphaShapes2">alpha shapes</a>,
<a href="https://doc.cgal.org/latest/Manual/packages.html#PartConvexHullAlgorithms">convex hull algorithms</a>,
<a href="https://doc.cgal.org/latest/Manual/packages.html#PartReconstruction">shape reconstruction</a>,
<a href="https://doc.cgal.org/latest/Manual/packages.html#PartSearchStructures">AABB and KD trees</a>...</p>
<a href="https://doc.cgal.org/latest/Manual/packages.html#PartSearchStructures">AABB and KD trees</a>...
Explore the complete list of features and capabilities by visiting the CGAL
<a href="https://doc.cgal.org/latest/Manual/packages.html" target="_blank">Package Overview</a>.

<p>Learn more about CGAL by browsing through the <a href="https://doc.cgal.org/latest/Manual/packages.html" target="_blank">Package Overview</a>.</p>
<p>The CGAL data structures and algorithms are distributed under a dual license, namely under
the GPL v3+ and, alternatively, under a commercial license
by <a href="http://geometryfactory.com/">GeometryFactory</a>.</p>
</div>
</div>

Expand Down

0 comments on commit 0827770

Please sign in to comment.