Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aos 2 fixes efif #8013

Merged
merged 29 commits into from
Feb 16, 2024
Merged

Aos 2 fixes efif #8013

merged 29 commits into from
Feb 16, 2024

Conversation

efifogel
Copy link
Member

@efifogel efifogel commented Jan 31, 2024

Summary of Changes

This PR contains a bunch of changes that address issues found while I worked on the 2nd edition of the "CGAL Arrangement Book". In the Book we offer the code of several programs in Python. The code is based on the recent Python bindings. Several improvements to the code were necessary to support what I refer to "layered extension". For example, Arrangement_on_surface_with_history_2 derives from Arrangement_on_surface_2 and requires extensions to the DCEL records. Envelope_diagram_on_surface_2 also derives from Arrangement_on_surface_2 and requires extensions to the DCEL records. The improvements applied enables having Envelope_diagram_on_surface_with_history_2 (which, naturally, requires both sets of extensions). I also seized the opportunity and made the code look more modern, for example, replaced a bunch of "typedef" statements with "using" statements.

  1. Envelope_2
  • Introduced move constructor and move assignment operator for the main class Envelope_diagram_1.
  1. Arrangement_on_surface_2
  • Introduced Arr_dcel, which essentially replaces the former Arr_default_dcel. Backward compatibility was maintained by the (re) introduction of the alias template Arr_default_dcel. Arr_dcel, as opposed to the former Arr_default_dcel is parameterized by (in addition to the geometry traits) Vertex, Halfedge, and Face template parameters, and they have default type values. All this enables the layered extension of DCEL records; see Arr_dcel
  • Replaced some tex code, which uses pstricks, that is used to generate figures in the manual with code that uses tikz. (All figures in the book use tikz.)
  • Fixed some typos and text in the manual, for example, replaced the phrase "substituted with" with "substituted by" when referring to a template parameter being substituted by a type when the template is instantiated. This matches the text in the book.
  • Made Curve_halfedges nested in Arrangement_on_surface_with_history_2 public, as we enable iterating over such types (so it really makes no sense not to have it public). I haven't reflected it in the manual. Publishing this, I believe, requires a small feature, and I'll do it separately.
  1. Envelope_3
  • Refreshed the example programs, e.g., used 'auto' when it made sense and replaced "typedef" statements with "using" statements.
  • Eliminated the construction of "local" kernel objects and local traits objects in the various trait classes, namely, Env_triangle_traits_3, Env_plane_traits_3, and Env_sphere_traits_3. (Some local objects still remain; however, eliminating them will require breaking backward compatibility, so it is left for a future PR.)
  • Passed the base class of Env_plane_traits_3 as a template parameter with a default value (being the 2D arrangement linear traits); see Env_plane_traits_3. Similarly, passed the base class of Env_triangle_traits_3 as a template parameter with a default value (being the 2D arrangement segment traits); see Env_triangle_traits_3. See also EnvelopeTraits_3 concept . This chanhes is required for "layered extension".
  • Made all members of the cell-extension records of the DCEL used by the envelope diagram unique (in particular, added ' env_'); this avoids name-collisions with other extensions required by other packages.
  • Added template parameters Vertex, Halfedge, and Face with default values to Envelope_pm_dcel. This is similar to Arr_dcel; see above. BW, Envelope_pm_dcel is not published, so there is no change to the manual. In fact, I don't see a reason not to publish it, but this will come in a future PR.
  • Added missing 'const' in some signatures

Release Management

  • Affected package(s): Arrangement_on_surface_2, Envelope_2, and Envelope_3
  • Issue(s) solved (if any): NA
  • Feature/Small Feature (if any): NA
  • Link to compiled documentation (obligatory for small feature) new doc
  • License and copyright ownership: TAU

…ram_on_surface_2::Arrangement, which is now obsolete
…ta() to avoid clashes with other extensions of the Dcel; Added template parameters (vertex-base, halfedge-base, and face-base) with default values to Envelope_pm_dcel
…ta() to avoid clashes with other extensions of the Dcel;
…nv_'); this enables the simultaneous extensions required by other packages; for example, having a lower envelope diagram with history.
…ith a default value (being the 2D arrangement linear traits). Similarly, passed the base class of Env_triangle_traits_3 as a template parameter with a default value (being the 2D arrangement segment traits).
@efifogel
Copy link
Member Author

efifogel commented Feb 14, 2024 via email

@sloriot sloriot added Batch_1 First Batch of PRs under testing and removed Tests failing (warning) Under Testing labels Feb 14, 2024
@sloriot
Copy link
Member

sloriot commented Feb 16, 2024

Successfully tested in CGA-6.0-Ic-173

@sloriot sloriot added Tested and removed Batch_1 First Batch of PRs under testing labels Feb 16, 2024
@lrineau lrineau self-assigned this Feb 16, 2024
@lrineau lrineau added the rm only: ready for master For the release team only: that indicates that a PR is about to be merged in 'master' label Feb 16, 2024
@lrineau lrineau merged commit 7a06175 into CGAL:master Feb 16, 2024
9 checks passed
@lrineau lrineau removed the rm only: ready for master For the release team only: that indicates that a PR is about to be merged in 'master' label Feb 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants