implement @MaelRL review

This commit is contained in:
Sébastien Loriot 2018-06-01 16:09:22 +02:00
parent 94a73232d5
commit b8f058e0d1
2 changed files with 18 additions and 16 deletions

View File

@ -35,16 +35,16 @@ Release date: September 2018
### Polygon Mesh Processing ### Polygon Mesh Processing
- Added a function to apply a transformation to a mesh : - Added a function to apply a transformation to a mesh :
- `CGAL::Polygon_mesh_processing::transform()` - `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 that make it possible to pass a visitor to the function in order to track
the creation of new faces. 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 (that replace the `bool` parameter in `corefine()`) that enables to check for
self-intersections faces involved in the intersection before trying to corefine the self-intersections faces involved in the intersection before trying to corefine the
input meshes. 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. 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. by a plane or a clipping volume.
Release 4.12 Release 4.12

View File

@ -64,7 +64,7 @@ clip_open_impl( TriangleMesh& tm,
// vector of clipper triangles // vector of clipper triangles
Clipper_triangles clipper_triangles; Clipper_triangles clipper_triangles;
clipper_triangles.reserve( num_faces(clipper) ); clipper_triangles.reserve( num_faces(clipper) );
Vpm vpm_c = boost::choose_param(get_param(np_c, internal_np::vertex_point), Vpm vpm_c = boost::choose_param(boost::get_param(np_c, internal_np::vertex_point),
get_property_map(vertex_point, clipper)); get_property_map(vertex_point, clipper));
BOOST_FOREACH(face_descriptor f, faces(clipper)) BOOST_FOREACH(face_descriptor f, faces(clipper))
{ {
@ -90,9 +90,9 @@ clip_open_impl( TriangleMesh& tm,
typedef typename GetFaceIndexMap<TriangleMesh, typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters1>::type Fid_map; NamedParameters1>::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)); 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)); get_property_map(vertex_point, tm));
typedef CGAL::dynamic_vertex_property_t<std::size_t> Vid_tag; typedef CGAL::dynamic_vertex_property_t<std::size_t> Vid_tag;
@ -181,7 +181,7 @@ clip_to_bbox(const Plane_3& plane,
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::type Vpm; NamedParameters>::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)); get_property_map(boost::vertex_point, tm_out));
@ -306,11 +306,12 @@ clip_to_bbox(const Plane_3& plane,
* \cgalParamEnd * \cgalParamEnd
* \cgalParamBegin{throw_on_self_intersection} if `true`, * \cgalParamBegin{throw_on_self_intersection} if `true`,
* the set of triangles closed to the intersection of `tm` and `clipper` will be * 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. * will be thrown if at least one is found.
* \cgalParamEnd * \cgalParamEnd
* \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping considered will be * \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping will be done on
* done on the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface (`tm` will be kept closed). * the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface
* (i.e. `tm` will be kept closed).
* \cgalParamEnd * \cgalParamEnd
* \cgalParamBegin{include_clipper_boundary} if `false` and `close_volumes` is `false` and `tm` is open, the parts of `tm` coplanar with `clipper` * \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. * will not be part of the output.
@ -354,7 +355,7 @@ clip( TriangleMesh& tm,
* @tparam NamedParameters a sequence of \ref pmp_namedparameters "Named Parameters" * @tparam NamedParameters a sequence of \ref pmp_namedparameters "Named Parameters"
* *
* @param tm input triangulated surface mesh * @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`. * `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 * @param np optional sequence of \ref pmp_namedparameters "Named Parameters" among the ones listed below
* *
@ -368,11 +369,12 @@ clip( TriangleMesh& tm,
* \cgalParamEnd * \cgalParamEnd
* \cgalParamBegin{throw_on_self_intersection} if `true`, * \cgalParamBegin{throw_on_self_intersection} if `true`,
* the set of triangles closed to the intersection of `tm` and `plane` will be * 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. * will be thrown if at least one is found.
* \cgalParamEnd * \cgalParamEnd
* \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping considered will be * \cgalParamBegin{close_volumes} if `true` and `tm` is closed, the clipping will be done on
* done on the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface (`tm` will be kept closed). * the volume \link coref_def_subsec bounded \endlink by `tm` rather than on its surface
* (i.e. `tm` will be kept closed).
* \cgalParamEnd * \cgalParamEnd
* \cgalParamBegin{include_clipper_boundary} if `false` and `close_volumes` is `false` and `tm` is open, the parts of `tm` coplanar with `plane` * \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. * will not be part of the output.