-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
issue #7395 Improvement of layout of model relations #7576
Conversation
Consistent implementation for the `AABB_tree` in respect to `Has Model` and `Is Model Of`
/build:v0 |
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/7576/v0/Manual/index.html |
Maybe to be consistent with See also, it should be Has models since we cannot change See also. |
#7576 (comment) There are probably a few, unrelated, others as well like:
|
- Completed the cgalHasModel part - corrected spelling of `Has Model` and `Is Model Of` to `Has model` and `Is model of`
- Completed the cgalModels part
Based on a remark in CGAL#7576 (comment) aslo changed here some names for consistency
# Conflicts: # Polyhedron/doc/Polyhedron/Concepts/PolyhedronItems_3.h
Due to the new pull requests that were integrated into master this PR had a small problem building the documentation as it had merge conflicts (see https://cgal.geometryfactory.com/CGAL/Manual_doxygen_test/ and in particular https://cgal.geometryfactory.com/CGAL/Manual_doxygen_test/CGAL-6.0-Ic-22/logs1/Polyhedron.log). In the build sequence I see there is a "CMake Test Merge Branch / build (pull_request)" and I think during the overnight documentation build this is also run. When there is a merge conflict would it be possible to place a new comment with the PR as the submitter of the PR is normally notified of new comments and can take actions. |
\cgalHasModel `CGAL::Polyhedron_items_3` | ||
\cgalHasModel `CGAL::Polyhedron_min_items_3` | ||
\cgalHasModel `CGAL::Polyhedron_items_with_id_3` | ||
\cgalHasModelsBegin CGAL::Polyhedron_items_3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\cgalHasModelsBegin CGAL::Polyhedron_items_3 | |
\cgalHasModelsBegin | |
\cgalHasModels CGAL::Polyhedron_items_3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(note that there are many such occurrences.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that's what I noticed but then I don't understand these warnings: https://cgal.geometryfactory.com/CGAL/Manual_doxygen_test/CGAL-6.0-Ic-22/logs1/Polyhedron.log
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem noted in the overnight build was due to the fact that there was a merge conflict.
(Note the difference cgalHasModel
versus cgalHasModels
(so with s
).
I think the overnight build error should be gone due to the merge I did.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That was my first idea as well, but I had problems here regarding an extra empty line in the output due to the fact that we get an extra field (and thus extra unwanted empty space):
Here you see my implementation and the suggested change.
With the knowledge I now have, I think it would be possible to define:
"cgalHasModelsBegin=<dl><dt>@cgalHasModelsHeader</dt><dd>" \
"cgalHasModels{1}=<dt></dt><dd>`\1`</dd>" \
"cgalHasModels{2}=<dt></dt><dd>`\1,\2`</dd>" \
"cgalHasModelsEnd=</dl>" \
in case of
CGAL::Surface_mesh_shortest_path_traits<K,P>
this would also give the good results.
There are also some long model names like:
CGAL::Nonnegative_linear_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>
but this would use the cgalHasModels{1}
as fallback.
Actually I'm not a fan of this fallback as it makes things less clear.
The initial idea I had was that the cgalHasModels
would contain all the models for the list (like with cgalModels
) and than the fallback would not work anymore.
In the mean time I also created a proposed pull request in doxygen (doxygen/doxygen#10179) that makes it possible to define a separator, so at that moment the fallback would not even be necessary anymore when we use as separator e.g. ;
.
Conclusion I should probably rework the cgalHasModels
part, using the {1}
construct and the "fallback".
(I, probably, will have a look at it during the weekend).
- based on review
Correcting permissions
Corrected `cgalModels` to `cgalHasModes` inside `cgalHasNodelsBegin` / `cgalHasModelsEnd`
I guess there is an unintended change: |
@sloriot that was indeed an unintended change but has been corrected yesterday as can be seen in https://cgal.geometryfactory.com/CGAL/Manual_doxygen_test/CGAL-6.0-Ic-25/output2/AABB_tree/classAABBPrimitive.html |
@sloriot as the item is still marked with "CI checks failed" and this was, as far as I know, based on CGAL-6.0-Ic-24 but this was already corrected for CGAL-6.0-Ic-25 (see also my comment #7576 (comment)) are there any other issues found so far? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if for non-obvious construction we should not rely on the html code directly rather than tricking the macro.
@@ -21,18 +21,12 @@ constructions or if `K` is a `CGAL::Filtered_kernel` (such as for | |||
`CGAL::Exact_predicates_inexact_constructions_kernel`), this class automatically | |||
provides exact predicates. | |||
|
|||
\cgalModels The class is a model of several 2D triangulation traits class concepts, | |||
\cgalModelsBare{The class is a model of several 2D triangulation traits class concepts\, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any reason why you choose different solutions for Models and HasModels?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand that you usually model only one concept but that a concept have several models.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The situation wit the cgalModels
is that here the models don't have template like constrict when referring to it , whilst cgalHasModels
does have it. For this with cgalHasModels
the choice has been made to use a begin
/ end
construct and with cgalModels
a construct with the multi arguments was made. A few cases there were some "bare" constructs that needed some tricks, sometimes there was a ,
in the field and this could be prevented by means of the \,
construct on other places multiple lines were necessary, hence the \n
. This all could be overcome when the ALIASES
had had the possibility to specify a separator, for this I did recently create the proposed pull request doxygen/doxygen#10179
Maybe we normally should use the cgalModels
construct but in the case off cgalModelsBare
use a begin
/ end
construct as well to make it all more transparent.
\cgalModels `ImplicitInteroperable` with `NT` | ||
\cgalModels `Fraction` if NT is a `Fraction` | ||
\cgalModels `RootOf_2` | ||
\cgalModelsBare{`Assignable`\n |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is strange construction IMO
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comment #7576 (comment)
They can be disables by defining the macro `CGAL_DISABLE_HASH_OPENMESH`. | ||
\cgalHasModelsBegin | ||
\cgalHasModelsBare{All handles and indices of \cgal data structures} | ||
\cgalHasModelsBare{All handles of OpenMesh\, by including the specializations of the `graph_traits` header files provided by \cgal. They can be disables by defining the macro `CGAL_DISABLE_HASH_OPENMESH`.} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
another construction not obvious for the dev (meaning we should add it to the dev doc at least)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comment #7576 (comment)
@@ -7,7 +7,9 @@ | |||
|
|||
\cgalRefines{DefaultConstructible,PolygonTraits_2} | |||
|
|||
\cgalHasModel Any CGAL kernel, e.g., CGAL::Exact_predicates_exact_constructions_kernel. | |||
\cgalHasModelsBegin | |||
\cgalHasModelsBare{Any CGAL kernel, e.g., CGAL::Exact_predicates_exact_constructions_kernel.} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\cgalHasModelsBare{Any CGAL kernel, e.g., CGAL::Exact_predicates_exact_constructions_kernel.} | |
\cgalHasModelsBare{Any \cgal kernel, e.g., CGAL::Exact_predicates_exact_constructions_kernel.} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll correct this on.
I did a quick and dirty grep for CGAL
in combination with cgal
and got:
BGL/doc/BGL/PackageDescription.txt:584:\cgalPkgDescriptionBegin{CGAL and the Boost Graph Library,PkgBGL}
CGAL_ipelets/doc/CGAL_ipelets/PackageDescription.txt:4:\cgalPkgDescriptionBegin{CGAL Ipelets,PkgCGALIpelets}
GraphicsView/doc/GraphicsView/PackageDescription.txt:12:\cgalPkgDescriptionBegin{CGAL and the Qt Graphics View Framework,PkgGraphicsView}
Point_set_processing_3/include/CGAL/pointmatcher/compute_registration_transformation.h:507: \cgalParamExtra{The logs generated by CGAL library does not get effected by this configuration.}
STL_Extension/doc/STL_Extension/PackageDescription.txt:15:\cgalPkgDescriptionBegin{STL Extensions for CGAL,PkgSTLExtension}
Shape_regularization/include/CGAL/Shape_regularization/regularize_contours.h:104: \cgalParamDefault{a CGAL `Kernel` deduced from the point type,
Shape_regularization/include/CGAL/Shape_regularization/regularize_contours.h:227: \cgalParamDefault{a CGAL `Kernel` deduced from the point type,
Shape_regularization/include/CGAL/Shape_regularization/regularize_segments.h:117: \cgalParamDefault{a CGAL `Kernel` deduced from the point type,
Shape_regularization/include/CGAL/Shape_regularization/regularize_segments.h:355: \cgalParamDefault{a CGAL `Kernel` deduced from the point type,
Shape_regularization/include/CGAL/Shape_regularization/regularize_segments.h:448: \cgalParamDefault{a CGAL `Kernel` deduced from the point type,
Shape_regularization/include/CGAL/Shape_regularization/regularize_segments.h:541: \cgalParamDefault{a CGAL `Kernel` deduced from the point type,
Shape_regularization/include/CGAL/Shape_regularization/regularize_segments.h:633: \cgalParamDefault{a CGAL `Kernel` deduced from the point type,
Solver_interface/doc/Solver_interface/PackageDescription.txt:25:\cgalPkgDescriptionBegin{CGAL and Solvers, PkgSolverInterface}
maybe these should be looked at as well.
Spatial_searching/doc/Spatial_searching/CGAL/Search_traits_adapter.h
Outdated
Show resolved
Hide resolved
\cgalModels Because `Triangulation_face_base_with_info_2` derives from the class instantiating its third | ||
parameter, it will be a model of the same face base concept as its parameter: | ||
`TriangulationFaceBase_2`, `ConstrainedTriangulationFaceBase_2`, or `RegularTriangulationFaceBase_2` | ||
\cgalModelsBare{Because `Triangulation_face_base_with_info_2` derives from the class instantiating its third |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
another non obvious
@@ -22,10 +22,10 @@ the triangulation. | |||
this parameter is instantiated by | |||
`Triangulation_vertex_base_2<Traits>`. | |||
|
|||
\cgalModels `TriangulationVertexBaseWithInfo_2` | |||
\cgalModels The parameter `Vb` is a model of some vertex base concept. | |||
\cgalModelsBare{`TriangulationVertexBaseWithInfo_2`, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
another non obvious
Corrections after review.
I corrected the obvious problems. I didn't yet correct / update the I don't think that we should use "I wonder if for non-obvious construction we should not rely on the html code directly rather than tricking the macro." ( as suggested in #7576 (review)) as this might lead to code that is more difficult to understand, is more error prone and might lead to inconsistencies. |
This comment was marked as outdated.
This comment was marked as outdated.
Replacing the `cgalModelsBare` construct with a `begin` / `end` construct so no less understandable constructs with `\,` and `\n` are necessary.
Implemented also the |
/build:v1 |
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/7576/v1/Manual/index.html |
# Conflicts: # Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/ArrangementPointLocation_2.h # Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/ArrangementVerticalRayShoot_2.h
Successfully tested in CGAL-6.0-Ic-56 |
Thanks @albert-github for the huge work! |
Consistent implementation for the
AABB_tree
in respect toHas Model
andIs Model Of