1D Arrangement on curve - #9608
Conversation
|
/build:v0 |
|
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/9608/v0/Manual/index.html |
| /*! | ||
| \addtogroup PkgArrangementOnCurve1Ref | ||
| \cgalPkgDescriptionBegin{1D Arrangements,PkgArrangementOnCurve1} | ||
| \cgalPkgPicture{semicircle.png} |
There was a problem hiding this comment.
Also I find it surprising to see a circular arc, while this seems not to be provided as functionality.
There was a problem hiding this comment.
- Can you suggest how ot shorten it?
- 1D arrangements on circular arcs are supported. As a matter of fact, the example arr_on_circle_segment.cpp demonstrates this. I added "; see Arrangement_on_curve_1/arr_on_circle_segment.cpp" near the figure.
|
|
||
| Given a set \f$\mathcal{P}\f$ of points on a curve, the <I>arrangement</I> \f$ {\mathcal A}({\mathcal P})\f$ is the subdivision of the curve induced by the points in \f$\mathcal{P}\f$ into maximally connected cells. The cells can be \f$0\f$-dimensional (<I>vertices</I>) or \f$1\f$-dimensional (<I>edges</I>). | ||
|
|
||
| The class `Arrangement_on_curve_1<Traits>` encapsulates a data structure that maintains arrangements of points. It comes with a variety of algorithms that operate on 1D arrangements, such as point-location queries and overlay computations, which are implemented as peripheral classes or as free (global) functions. |
There was a problem hiding this comment.
| The class `Arrangement_on_curve_1<Traits>` encapsulates a data structure that maintains arrangements of points. It comes with a variety of algorithms that operate on 1D arrangements, such as point-location queries and overlay computations, which are implemented as peripheral classes or as free (global) functions. | |
| The class `CGAL::Arrangement_on_curve_1<Traits>` encapsulates a data structure that maintains arrangements of points. It comes with a variety of algorithms that operate on 1D arrangements, such as point-location queries and overlay computations, which are implemented as peripheral classes or as free (global) functions. |
There was a problem hiding this comment.
All free functions and types are defined under the namespace CGAL::Arrangement_on_curve_1. I added an explicit sentence to the User Manual stating this.
| - `CGAL::insert()` | ||
| - `CGAL::locate()` | ||
| - `CGAL::overlay()` | ||
| - `CGAL::IO::read()` |
There was a problem hiding this comment.
The link goes to Arrangement_on_surface.
There was a problem hiding this comment.
By the way there seem to be mistakes in the documentation of the concept AosInputFormatter. The default constructor does not have the right name.
There was a problem hiding this comment.
I fixed the links (I think).
Regarding the mistakes in osInputFormatter, you are correct. As a matter of fact, the default constructor should not be listed. Instead, the page should include the statement:
\cgalRefines{DefaultConstructible}
The second constructor name should be fixed.
I'll fix it in a separate PR.
|
Andreas, thanks for reviewing it. |
|
These pictures are all 120x120 I think |
|
oh, it's the image size...right---I fixed it.
____ _ ____ _
/_____/_) o /__________ __ //
(____ ( ( ( (_/ (_/-(-'_(/
_/
…On Tue, 25 Aug 2026 at 12:32, Andreas Fabri ***@***.***> wrote:
*afabri* left a comment (CGAL/cgal#9608)
<#9608 (comment)>
These pictures are all 120x120 I think
—
Reply to this email directly, view it on GitHub
<#9608?email_source=notifications&email_token=ABVBNOCWIQ6DAU4QATTYW6T5LVMLPA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKNBQHAZTSMZUGAY2M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L#issuecomment-5408393401>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABVBNOEPNRQFAFCVT2RSYHT5LVMLPAVCNFSNUABEKJSXA33TNF2G64TZHMZDINRXG4ZTSMR3JFZXG5LFHM2TEMJUGUYDQNBUHCQXMAQ>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/ABVBNOBSD4FRF5W55SXUHZ35LVMLPA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKNBQHAZTSMZUGAY2M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KUZTPN52GK4S7NFXXG>
and Android
<https://github.com/notifications/mobile/android/ABVBNOH4GULQYRV63DTFALL5LVMLPA5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKNBQHAZTSMZUGAY2M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2K4ZTPN52GK4S7MFXGI4TPNFSA>.
Download it today!
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
/force-build:v0 |
|
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/9608/v0/Manual/index.html |
| @@ -0,0 +1,124 @@ | |||
| // Copyright (c) 2026 Tel-Aviv University (Israel). | |||
| // All rights reserved. | |||
| // This file is part of CGAL (www.cgal.org). | |||
There was a problem hiding this comment.
| // This file is part of CGAL (www.cgal.org). | |
| // This file is part of CGAL (www.cgal.org). | |
| // $URL$ | |
| // $Id$ |
There was a problem hiding this comment.
Must be added in several other header files as reported by the CI
There was a problem hiding this comment.
These tags are historical artifacts left over from the SVN days.
I don't mind adding them, but it would be better to remove them from all files instead.
There was a problem hiding this comment.
They get filled by scripts for the released tar balls, so they are used and useful.
Summary of Changes
This new package is designed to construct, manipulate, and query one-dimensional arrangements embedded along continuous curves. While it recycles some old code, it uses newer idioms, such as property maps and C++17-style metaprogramming. The main class template is called
Arrangement_on_curve_1. I also have 2 use cases:cin 3D, find the maximal arcs that overlap withc, such that each arc does not intersect any mesh in its interior.We have a package called "2D Envelopes", already in CGAL, which computes the lower or upper envelopes of 2D curves. I've reimplemented the code of this package using the new data structure
Arrangement_on_curve_1. I also created a benchmark to ensure that there is no performance degradation. The branch, at this point, contains the new code. However, I may move it to a separate branch and introduce it in a separate PR after this one is fully merged.The development is complete (code, tests, examples, and documentation).
Release Management