cgal icon indicating copy to clipboard operation
cgal copied to clipboard

[Small Feature] Region growing revision soesau

Open soesau opened this issue 2 years ago • 33 comments

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:

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

soesau avatar Jun 23 '22 14:06 soesau

/build:v0

afabri avatar Jun 24 '22 07:06 afabri

There was an error while building the doc:

github-actions[bot] avatar Jun 24 '22 07:06 github-actions[bot]

/build:v0

soesau avatar Jun 24 '22 15:06 soesau

/build:v1

soesau avatar Jun 27 '22 06:06 soesau

/build:v0

lrineau avatar Jun 27 '22 07:06 lrineau

/build:v1

soesau avatar Jun 27 '22 07:06 soesau

/build:v0

lrineau avatar Jun 27 '22 08:06 lrineau

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

github-actions[bot] avatar Jun 27 '22 08:06 github-actions[bot]

/build:v0

sloriot avatar Jun 27 '22 08:06 sloriot

The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v0/Manual/index.html

github-actions[bot] avatar Jun 27 '22 08:06 github-actions[bot]

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:

lrineau avatar Jun 27 '22 09:06 lrineau

The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/xx/Manual/index.html

github-actions[bot] avatar Jun 27 '22 09:06 github-actions[bot]

The max size of the github.io repo was reached, I cleaned it manually again today (the action was broken months before Maxime left)

sloriot avatar Jun 27 '22 09:06 sloriot

/build:v1

soesau avatar Jul 04 '22 12:07 soesau

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())

github-actions[bot] avatar Jul 04 '22 12:07 github-actions[bot]

/build:v1

soesau avatar Jul 04 '22 13:07 soesau

The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v1/Manual/index.html

github-actions[bot] avatar Jul 04 '22 13:07 github-actions[bot]

@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.

soesau avatar Jul 04 '22 14:07 soesau

@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.

sloriot avatar Jul 05 '22 07:07 sloriot

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.

soesau avatar Jul 05 '22 07:07 soesau

/build:v2

soesau avatar Jul 05 '22 08:07 soesau

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())

github-actions[bot] avatar Jul 05 '22 08:07 github-actions[bot]

/build:v2

soesau avatar Jul 05 '22 08:07 soesau

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

github-actions[bot] avatar Jul 05 '22 09:07 github-actions[bot]

/build:v2

soesau avatar Jul 05 '22 09:07 soesau

The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v2/Manual/index.html

github-actions[bot] avatar Jul 05 '22 09:07 github-actions[bot]

/build:v3

soesau avatar Jul 06 '22 13:07 soesau

The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v3/Manual/index.html

github-actions[bot] avatar Jul 06 '22 13:07 github-actions[bot]

/force-build:v3

sloriot avatar Jul 15 '22 11:07 sloriot

The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/6702/v3/Manual/index.html

github-actions[bot] avatar Jul 15 '22 11:07 github-actions[bot]