## Summary of Changes
The conversion from a CDT3 triangulation to a tetrahedral remeshing
triangulation labels cells with a subdomain index that is either 0 if
the cell is in the (constrained) connected component of the infinite
vertex, and 1 otherwise.
But face constraints can also reflect multiple subdomains, and possibly
nested subdomains, which we might want to remesh differently.
The following PR modifies the labeling during conversion such that a
flood algorithm is used to mark constrained connected components.
- The connected component containing the infinite vertex is marked with
index 0.
- Nested components are marked with increasing indices.
- Disconnected components that have the same nesting level get the same
index parity: for example two cubes within a larger bounding box will be
index 2 and 4.
TODO:
- Should there be a strategy tag? Similar to
https://doc.cgal.org/latest/Polygon_repair/index.html#Chapter_2D_Polygon_repair
- This is somewhat related to `CGAL::mark_domain_in_triangulation` (by
the way, here is a 3D version for CDT3:
https://gist.github.com/MaelRL/9076cc491cd24b7a9c6f6e317263bdfe which
could be part of this PR).
- Modified example:
https://gist.github.com/MaelRL/d10daf116f562b87bc9fb854f5eeff23
## Release Management
* Affected package(s): `Constrained_triangulation_3`
* Issue(s) solved (if any): -
* Feature/Small Feature (if any): WIP
* Link to compiled documentation (obligatory for small feature) [*wrong
link name to be changed*](httpssss://wrong_URL_to_be_changed/Manual/Pkg)
* License and copyright ownership: no change
Replaces the `FetchContent` mechanism with a vendored copy of
`tl/expected.hpp` (v1.1.0).
The header is placed in `CGAL/tl/expected.hpp` to avoid namespace
pollution.
This also removes the CMake module `CGAL_setup_tl-excepted.cmake`.
## Release Management
* Affected package(s): Constrained_triangulation_3
* Issue(s) solved (if any): #9145
* License and copyright ownership: CC0 1.0 Universal (tl/expected.hpp)
**detect again when the result of the conforming has self-intersections**
The regression was in the following commit:
> commit 5d1f3306a6
> Author: Laurent Rineau <laurent.rineau@cgal.org>
> Date: Thu Dec 4 11:14:00 2025 +0100
>
> WIP: new way to construct the cavity
from the current PR (#9123).
Replaces the FetchContent mechanism with a vendored copy of tl/expected.hpp (v1.1.0).
The header is placed in CGAL/tl/expected.hpp to avoid namespace pollution.
This also removes the CMake module CGAL_setup_tl-excepted.cmake.
## Release Management
* Affected package(s): Constrained_triangulation_3
* Issue(s) solved (if any): #9145
* License and copyright ownership: CC0 1.0 Universal (tl/expected.hpp)