cgal
cgal copied to clipboard
[Small Feature] Region growing revision soesau
This PR is a revision of the Region_growing component from the Shape_detection package. It includes multiple small and big changes (including a few breaking changes!):
- added named parameters (that changed the APIs of many class constructors)
- now the update function from the RegionType concept returns a boolean flag that enables to detect if the input conditions for the new region are satisfied (it is also a breaking change)
- old fitting classes are now using better versions of the region conditions, more precise and faster, including the correct normal orientations
- added new classes for getting linear regions in a set of 2D and 3D segments
- added the Polyline_graph class for extracting a set of polylines from a face graph, which splits this graph into a set of user-defined regions (this is necessary for the decimation algorithm in the PMP)
- added new classes for getting linear regions on 2D and 3D polylines
- added several internal functions, which are not yet public, since I am not sure whether we really want to document them
- extended docs with new examples
- better and stricter tests for the test suite
- a few other fixes and internal changes
- fixed the Polyhedron demo using new API
To be yet done:
- this version should be later merged with the PR https://github.com/CGAL/cgal/pull/5808 that extends the region growing algorithm with detecting circles, spheres, and cylinders
The doc files changed:
- the concept RegionType.h and NeighborQuery.h
- Shape_detection.txt (sections Segment Set, Polyline, Deprecated)
- named parameters descriptions for all headers in the ref manual for Region Growing
- Segment Set and Polyline classes
TODO:
- [x]
shall Polygon_mesh sub-namespace/headers be renamed Triangle_mesh?is not a good name -> renamed back to Polygon_mesh - [x] Region growing using planes on mesh is not using a property map (example is not generic at all)
- [x] Remove Item_to_region_index_map?
- [x] Replace DOXYGEN_NS by DOXYGEN_RUNNING?
- [x] Clean and properly document CGAL/Shape_detection/Region_growing/internal/free_functions.h
Release Management
- Affected package(s): Shape_detection
- Issue(s) solved (if any): no issues
- Feature/Small Feature (if any): Small Feature
- Link to compiled documentation (obligatory for small feature): docs
- License and copyright ownership: Inria and GF
Tasks:
- [x] Remove tmp modif in the docs
/build:v0
There was an error while building the doc:
/build:v0
/build:v1
/build:v0
/build:v1
/build:v0
There was an error while building the doc: /home/runner/work/cgal/cgal/Shape_detection/include/CGAL/Shape_detection/Region_growing/Point_set.h:23: warning: the name `CGAL/Shape_detection/Region_growing/Region_growing_on_point_set.h' supplied as the second argument in the ile statement is not an input file
/build:v0
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v0/Manual/index.html
The documentation is built. It will be available, after a few minutes, here: cgal.github.io/6702/v0/Manual/index.html
The documentation seems fine, now. The bug with the Documentation action was twofold:
- Sven membership to the CGAL org was private. I have added a piece of documentation in the wiki page for new developers, and there was already a mention of that in the documentation of the
/build:xx
action, - and then our action was not working correctly because of the upgrade of the
actions/github-script
in PR https://github.com/CGAL/cgal/pull/6708. It fixed that in https://github.com/CGAL/cgal/commit/386811cb7cbd04e6bd95e0cd58971746acd79b8c.
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/xx/Manual/index.html
The max size of the github.io repo was reached, I cleaned it manually again today (the action was broken months before Maxime left)
/build:v1
There was an error while building the doc: /home/runner/work/cgal/cgal/Shape_detection/include/CGAL/Shape_detection/Region_growing/Polygon_mesh/Least_squares_plane_fit_region.h:105: warning: argument 'tmesh' of command @param is not found in the argument list of CGAL::Shape_detection::Polygon_mesh::Least_squares_plane_fit_region< GeomTraits, PolygonMesh, FaceRange, VertexToPointMap >::Least_squares_plane_fit_region(const PolygonMesh &pmesh, const CGAL_NP_CLASS &np=parameters::default_values())
/build:v1
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v1/Manual/index.html
@sloriot I documented the functions in freefunctions.h, but I can't find them in the generated documentation. However, those function are still in the namespace CGAL::ShapeDetection::internal. I should move them out of it as we want to expose and document them for the user?
Besides that, I think I am finished.
@sloriot I documented the functions in freefunctions.h, but I can't find them in the generated documentation. However, those function are still in the namespace CGAL::ShapeDetection::internal. I should move them out of it as we want to expose and document them for the user?
Besides that, I think I am finished.
Yes, they should be out of the internal namespace. Note that ShapeDetection
is not a valid namespace to be documented. It should be something like Shape_detection
to match naming conventions.
The namespace actually is Shape_detection
. I will move the free_functions.h one folder up and remove the internal
namespace and adapt the examples/tests.
/build:v2
There was an error while building the doc: /home/runner/work/cgal/cgal/Shape_detection/include/CGAL/Shape_detection/Region_growing/free_functions.h:29: warning: argument 'a' of command @param is not found in the argument list of CGAL::Shape_detection::region_growing_lines(const InputRange &points, OutputIterator regions, const CGAL_NP_CLASS &np=parameters::default_values())
/build:v2
There was an error while building the doc: /home/runner/work/cgal/cgal/Shape_detection/include/CGAL/Shape_detection/Region_growing/free_functions.h:207: warning: explicit link request to 'face_iterator' could not be resolved
/build:v2
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v2/Manual/index.html
/build:v3
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v3/Manual/index.html
/force-build:v3
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v3/Manual/index.html