This commit is contained in:
Jane Tournois 2023-03-02 15:04:41 +01:00
parent d79493bd62
commit e34cd8d938
3 changed files with 23 additions and 10 deletions

View File

@ -622,7 +622,12 @@ public:
* The weights image can be generated with `CGAL::Mesh_3::generate_label_weights()`. * The weights image can be generated with `CGAL::Mesh_3::generate_label_weights()`.
* Its dimensions must be the same as the dimensions of `parameters::image`.} * Its dimensions must be the same as the dimensions of `parameters::image`.}
* \cgalParamDefault{CGAL::Image_3()} * \cgalParamDefault{CGAL::Image_3()}
* \cgalParamExtra{if `features_detector` is provided, `weights` should be modified accordingly} * \cgalParamType{CGAL::Image_3&}
* \cgalParamExtra{if `features_detector` is provided, `weights` should be modified accordingly.
* The available functors described in See \ref PkgMesh3FeatureDetection
* implement the necessary modifications.}
* \cgalParamExtra{if `input_features` is provided, `weights` should be modified accordingly
* to keep consistency of the output `MeshDomainWithFeatures_3`}
* \cgalParamNEnd * \cgalParamNEnd
* \cgalParamNBegin{value_outside} * \cgalParamNBegin{value_outside}
* \cgalParamDescription{the value attached to voxels * \cgalParamDescription{the value attached to voxels
@ -640,14 +645,20 @@ public:
* \cgalParamNBegin{features_detector} * \cgalParamNBegin{features_detector}
* \cgalParamDescription{ a functor that implements * \cgalParamDescription{ a functor that implements
* `std::vector<std::vector<Point>> operator()(const Image_3& img) const`, * `std::vector<std::vector<Point>> operator()(const Image_3& img) const`,
* and `std::vector<std::vector<Point>> operator()(const Image_3& img, Image_3& weights) const`,
* where `%Point` matches the mesh domain point type, * where `%Point` matches the mesh domain point type,
* that returns a range of detected polyline features for feature protection. * that both return a range of detected polyline features for feature protection.
* Only one implementation is used, depending on whether the named parameter `weights`
* is provided or not.
* Polyline features are added to the domain for further feature protection. * Polyline features are added to the domain for further feature protection.
* See \ref PkgMesh3FeatureDetection for available functors.} * See \ref PkgMesh3FeatureDetection for available functors.}
* \cgalParamDefault{CGAL::Null_functor()} * \cgalParamDefault{CGAL::Null_functor()}
* \cgalParamExtra{The return type of the function depends on whether this parameter * \cgalParamExtra{The return type of the function depends on whether this parameter
or `input_features` are provided or not.} * or `input_features` are provided or not.}
* \cgalParamExtra{TODO} * \cgalParamExtra{If `weights` is provided, it must either be adapted to the detected features,
* or post-processed during feature detection to keep consistency
* of the output `MeshDomainWithFeatures_3`.
* Available functors implement the necessary modifications.}
* \cgalParamNEnd * \cgalParamNEnd
* *
* \cgalParamNBegin{input_features} * \cgalParamNBegin{input_features}
@ -661,13 +672,12 @@ public:
or `input_features` are provided or not.} or `input_features` are provided or not.}
* \cgalParamExtra{It is recommended to pass a const-reference for this parameter, * \cgalParamExtra{It is recommended to pass a const-reference for this parameter,
* possibly using `std::cref(polylines_range)` to avoid useless copies.} * possibly using `std::cref(polylines_range)` to avoid useless copies.}
* \cgalParamExtra{If `weights` is provided, this parameter is ignored} * \cgalParamExtra{If `weights` is provided, it must be adapted to the input features,
* to keep consistency of the output `MeshDomainWithFeatures_3`}
* \cgalParamNEnd * \cgalParamNEnd
* *
* \cgalNamedParamsEnd * \cgalNamedParamsEnd
* *
* \todo{Add warning about using weights and feature detection together}
*
* \cgalHeading{Example} * \cgalHeading{Example}
* *
* From the example (\ref Mesh_3/mesh_3D_image.cpp): * From the example (\ref Mesh_3/mesh_3D_image.cpp):
@ -689,7 +699,6 @@ public:
* *
* \snippet Mesh_3/mesh_3D_image_with_input_features.cpp Domain creation * \snippet Mesh_3/mesh_3D_image_with_input_features.cpp Domain creation
* *
* \todo what if `input_features` and `weights` are both provided?
*/ */
template<typename CGAL_NP_TEMPLATE_PARAMETERS> template<typename CGAL_NP_TEMPLATE_PARAMETERS>
static auto static auto

View File

@ -298,7 +298,9 @@ public:
} }
/*! /*!
* @todo documentation * Similar to the above function,
* but modifies `weights` to set the voxels that are
* part of a polyline feature to 0.
*/ */
template<typename Point> template<typename Point>
std::vector<std::vector<Point>> std::vector<std::vector<Point>>

View File

@ -106,7 +106,9 @@ public:
} }
/*! /*!
* @todo documentation * Similar to the above function,
* but modifies `weights` to set the voxels that are
* part of a polyline feature to 0.
*/ */
template<typename Point> template<typename Point>
std::vector<std::vector<Point>> std::vector<std::vector<Point>>