From b8f058e0d114da33f01d0bf153e383e83511cca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Fri, 1 Jun 2018 16:09:22 +0200 Subject: [PATCH] implement @MaelRL review --- Installation/CHANGES.md | 8 +++--- .../CGAL/Polygon_mesh_processing/clip.h | 26 ++++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index 0acd7bfa72f..69a90cf1d32 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -35,16 +35,16 @@ Release date: September 2018 ### Polygon Mesh Processing - Added a function to apply a transformation to a mesh : - `CGAL::Polygon_mesh_processing::transform()` -- Add in corefinement-related functions a new named parameter `new_face_visitor` +- Added in corefinement-related functions a new named parameter `new_face_visitor` that make it possible to pass a visitor to the function in order to track the creation of new faces. -- Add in all corefinement-related functions a named parameter `throw_on_self_intersection` +- Added in all corefinement-related functions a named parameter `throw_on_self_intersection` (that replace the `bool` parameter in `corefine()`) that enables to check for self-intersections faces involved in the intersection before trying to corefine the input meshes. -- Document the function `corefine_and_compute_boolean_operations()` that can be used to +- Added the function `corefine_and_compute_boolean_operations()` that can be used to compute the result of several Boolean operations between 2 volumes at the same time. -- Document the function `clip()` that can be used to clip a triangulated surface mesh +- Added the function `clip()` that can be used to clip a triangulated surface mesh by a plane or a clipping volume. Release 4.12 diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h index 423140e5d12..156f47044f7 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h @@ -64,8 +64,8 @@ clip_open_impl( TriangleMesh& tm, // vector of clipper triangles Clipper_triangles clipper_triangles; clipper_triangles.reserve( num_faces(clipper) ); - Vpm vpm_c = boost::choose_param(get_param(np_c, internal_np::vertex_point), - get_property_map(vertex_point, clipper)); + Vpm vpm_c = boost::choose_param(boost::get_param(np_c, internal_np::vertex_point), + get_property_map(vertex_point, clipper)); BOOST_FOREACH(face_descriptor f, faces(clipper)) { halfedge_descriptor h = halfedge(f, clipper); @@ -90,9 +90,9 @@ clip_open_impl( TriangleMesh& tm, typedef typename GetFaceIndexMap::type Fid_map; - Fid_map fid_map = boost::choose_param(get_param(np_tm, internal_np::face_index), + Fid_map fid_map = boost::choose_param(boost::get_param(np_tm, internal_np::face_index), get_property_map(boost::face_index, tm)); - Vpm vpm1 = boost::choose_param(get_param(np_tm, internal_np::vertex_point), + Vpm vpm1 = boost::choose_param(boost::get_param(np_tm, internal_np::vertex_point), get_property_map(vertex_point, tm)); typedef CGAL::dynamic_vertex_property_t Vid_tag; @@ -181,7 +181,7 @@ clip_to_bbox(const Plane_3& plane, typedef typename GetVertexPointMap::type Vpm; - Vpm vpm_out = boost::choose_param(get_param(np, internal_np::vertex_point), + Vpm vpm_out = boost::choose_param(boost::get_param(np, internal_np::vertex_point), get_property_map(boost::vertex_point, tm_out)); @@ -306,11 +306,12 @@ clip_to_bbox(const Plane_3& plane, * \cgalParamEnd * \cgalParamBegin{throw_on_self_intersection} if `true`, * the set of triangles closed to the intersection of `tm` and `clipper` will be - * checked for self-intersection and `CGAL::Polygon_mesh_processing::Corefinement::Self_intersection_exception` + * checked for self-intersections and `CGAL::Polygon_mesh_processing::Corefinement::Self_intersection_exception` * will be thrown if at least one is found. * \cgalParamEnd - * \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping considered will be - * done on the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface (`tm` will be kept closed). + * \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping will be done on + * the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface + * (i.e. `tm` will be kept closed). * \cgalParamEnd * \cgalParamBegin{include_clipper_boundary} if `false` and `close_volumes` is `false` and `tm` is open, the parts of `tm` coplanar with `clipper` * will not be part of the output. @@ -354,7 +355,7 @@ clip( TriangleMesh& tm, * @tparam NamedParameters a sequence of \ref pmp_namedparameters "Named Parameters" * * @param tm input triangulated surface mesh - * @param plane plane which negative side defines the half-space to intersect `tm` with. + * @param plane plane whose negative side defines the half-space to intersect `tm` with. * `Plane_3` is the plane type for the same CGAL kernel as the point of the vertex point map of `tm`. * @param np optional sequence of \ref pmp_namedparameters "Named Parameters" among the ones listed below * @@ -368,11 +369,12 @@ clip( TriangleMesh& tm, * \cgalParamEnd * \cgalParamBegin{throw_on_self_intersection} if `true`, * the set of triangles closed to the intersection of `tm` and `plane` will be - * checked for self-intersection and `CGAL::Polygon_mesh_processing::Corefinement::Self_intersection_exception` + * checked for self-intersections and `CGAL::Polygon_mesh_processing::Corefinement::Self_intersection_exception` * will be thrown if at least one is found. * \cgalParamEnd - * \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping considered will be - * done on the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface (`tm` will be kept closed). + * \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping will be done on + * the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface + * (i.e. `tm` will be kept closed). * \cgalParamEnd * \cgalParamBegin{include_clipper_boundary} if `false` and `close_volumes` is `false` and `tm` is open, the parts of `tm` coplanar with `plane` * will not be part of the output.