mirror of https://github.com/CGAL/cgal
minor doc fixes and renaming
This commit is contained in:
parent
e302b02f76
commit
f35faf60e1
|
|
@ -200,12 +200,12 @@ The page \ref bgl_namedparameters "Named Parameters" describes their usage.
|
|||
- \link PMP_locate_grp Nearest Face Location Queries \endlink
|
||||
- \link PMP_locate_grp Random Location Generation \endlink
|
||||
|
||||
\cgalCRPSection{Corrected Curvature Functions}
|
||||
\cgalCRPSection{Corrected Curvatures}
|
||||
- `CGAL::Polygon_mesh_processing::interpolated_corrected_mean_curvature()`
|
||||
- `CGAL::Polygon_mesh_processing::interpolated_corrected_gaussian_curvature()`
|
||||
- `CGAL::Polygon_mesh_processing::interpolated_corrected_principal_curvatures_and_directions()`
|
||||
- `CGAL::Polygon_mesh_processing::interpolated_corrected_curvatures()`
|
||||
- `CGAL::Polygon_mesh_processing::Principal_curvature`
|
||||
- `CGAL::Polygon_mesh_processing::Principal_curvatures_and_directions`
|
||||
|
||||
\cgalCRPSection{Normal Computation Functions}
|
||||
- `CGAL::Polygon_mesh_processing::compute_face_normal()`
|
||||
|
|
|
|||
|
|
@ -879,11 +879,11 @@ not provide storage for the normals.
|
|||
****************************************
|
||||
\section PMPICC Computing Curvatures
|
||||
|
||||
This package provides methods to compute curvatures on polygonal meshes based on \cgalCite{lachaud2020}
|
||||
This includes mean curvature, gaussian curvature, principal curvatures and directions.
|
||||
These can be computed on triangle meshes, quad meshes, and meshes with n-gon faces.
|
||||
The algorithms used prove to work well in general. Also, on meshes with noise
|
||||
on vertex positions, they give accurate results, on the condition that the
|
||||
This package provides methods to compute curvatures on polygonal meshes based on Interpolated Corrected Curvatures
|
||||
on Polyhedral Surfaces \cgalCite{lachaud2020}. This includes mean curvature, gaussian curvature,
|
||||
principal curvatures and directions. These can be computed on triangle meshes, quad meshes,
|
||||
and meshes with n-gon faces. The algorithms used prove to work well in general. Also, on meshes
|
||||
with noise on vertex positions, they give accurate results, on the condition that the
|
||||
correct vertex normals are provided.
|
||||
|
||||
The implementation is generic in terms of mesh data structure. It can be used on Surface_mesh,
|
||||
|
|
@ -912,13 +912,12 @@ The mean curvature distribution on a bear mesh with different values for the exp
|
|||
|
||||
Property maps are used to record the computed curvatures as shown in examples.
|
||||
|
||||
\subsection ICCExample Interpolated Corrected Curvature Examples
|
||||
|
||||
Property maps are an API introduced in the boost library that allows associating
|
||||
values to keys. In the following examples, for each property map, we associate
|
||||
a curvature value to each vertex.
|
||||
|
||||
\subsubsection ICCExampleSM Interpolated Corrected Curvature on a Surface Mesh.
|
||||
\subsection ICCExampleSM Interpolated Corrected Curvature on a Surface Mesh Example
|
||||
|
||||
The following example illustrates how to
|
||||
compute the curvatures on vertices
|
||||
|
|
@ -926,7 +925,7 @@ and store them in property maps provided by the class `Surface_mesh`.
|
|||
|
||||
\cgalExample{Polygon_mesh_processing/interpolated_corrected_curvatures_example.cpp}
|
||||
|
||||
\subsubsection ICCExamplePH Interpolated Corrected Curvature on a Polyhedron
|
||||
\subsection ICCExamplePH Interpolated Corrected Curvature on a Polyhedron Example
|
||||
|
||||
The following example illustrates how to
|
||||
compute the curvatures on vertices
|
||||
|
|
@ -1143,7 +1142,7 @@ is covered by a set of prisms, where each prism is an offset for an input triang
|
|||
That is, the implementation in \cgal does not use indirect predicates.
|
||||
|
||||
The interpolated corrected curvatures were implemented during GSoC 2022. This was implemented by Hossam Saeed and under
|
||||
supervision of Sebastien Loriot, Jaques-Olivier Lachaud and David Coeurjolly. The implementation is based \cgalCite{lachaud2020}.
|
||||
supervision of Sebastien Loriot, Jaques-Olivier Lachaud and David Coeurjolly. The implementation is based on \cgalCite{lachaud2020}.
|
||||
<a href="https://dgtal-team.github.io/doc-nightly/moduleCurvatureMeasures.html">DGtal's implementation</a> was also
|
||||
used as a reference during the project.
|
||||
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ int main(int argc, char* argv[])
|
|||
assert(created);
|
||||
|
||||
// we use a tuple of 2 scalar values and 2 vectors for principal curvatures and directions
|
||||
Surface_Mesh::Property_map<vertex_descriptor, PMP::Principal_curvature<Epic_kernel>> principal_curvatures_and_directions_map;
|
||||
Surface_Mesh::Property_map<vertex_descriptor, PMP::Principal_curvatures_and_directions<Epic_kernel>> principal_curvatures_and_directions_map;
|
||||
|
||||
boost::tie(principal_curvatures_and_directions_map, created) = smesh.add_property_map<vertex_descriptor, PMP::Principal_curvature<Epic_kernel>>
|
||||
boost::tie(principal_curvatures_and_directions_map, created) = smesh.add_property_map<vertex_descriptor, PMP::Principal_curvatures_and_directions<Epic_kernel>>
|
||||
("v:principal_curvatures_and_directions_map", { 0, 0,
|
||||
Epic_kernel::Vector_3(0,0,0),
|
||||
Epic_kernel::Vector_3(0,0,0) });
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ int main(int argc, char *argv[])
|
|||
boost::property_map<Polyhedron, CGAL::dynamic_vertex_property_t<Epic_kernel::FT>>::type
|
||||
mean_curvature_map = get(CGAL::dynamic_vertex_property_t<Epic_kernel::FT>(), polyhedron),
|
||||
gaussian_curvature_map = get(CGAL::dynamic_vertex_property_t<Epic_kernel::FT>(), polyhedron);
|
||||
boost::property_map<Polyhedron, CGAL::dynamic_vertex_property_t<PMP::Principal_curvature<Epic_kernel>>>::type
|
||||
principal_curvatures_and_directions_map = get(CGAL::dynamic_vertex_property_t<PMP::Principal_curvature<Epic_kernel>>(), polyhedron);
|
||||
boost::property_map<Polyhedron, CGAL::dynamic_vertex_property_t<PMP::Principal_curvatures_and_directions<Epic_kernel>>>::type
|
||||
principal_curvatures_and_directions_map = get(CGAL::dynamic_vertex_property_t<PMP::Principal_curvatures_and_directions<Epic_kernel>>(), polyhedron);
|
||||
|
||||
PMP::interpolated_corrected_mean_curvature(
|
||||
polyhedron,
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace Polygon_mesh_processing {
|
|||
* @tparam GT is the geometric traits class.
|
||||
*/
|
||||
template<typename GT>
|
||||
struct Principal_curvature {
|
||||
struct Principal_curvatures_and_directions {
|
||||
|
||||
/// min curvature magnitude
|
||||
typename GT::FT min_curvature;
|
||||
|
|
@ -57,14 +57,14 @@ struct Principal_curvature {
|
|||
/// max curvature direction vector
|
||||
typename GT::Vector_3 max_direction;
|
||||
|
||||
Principal_curvature() {
|
||||
Principal_curvatures_and_directions() {
|
||||
min_curvature = 0;
|
||||
max_curvature = 0;
|
||||
min_direction = typename GT::Vector_3(0, 0, 0);
|
||||
max_direction = typename GT::Vector_3(0, 0, 0);
|
||||
}
|
||||
|
||||
Principal_curvature(
|
||||
Principal_curvatures_and_directions(
|
||||
typename GT::FT min_curvature,
|
||||
typename GT::FT max_curvature,
|
||||
typename GT::Vector_3 min_direction,
|
||||
|
|
@ -440,7 +440,7 @@ namespace internal {
|
|||
}
|
||||
|
||||
template<typename GT>
|
||||
Principal_curvature<GT> principal_curvatures_and_directions_from_anisotropic_measures(
|
||||
Principal_curvatures_and_directions<GT> principal_curvatures_and_directions_from_anisotropic_measures(
|
||||
const std::array<typename GT::FT, 3 * 3> anisotropic_measure,
|
||||
const typename GT::FT v_mu0,
|
||||
const typename GT::Vector_3 u_GT
|
||||
|
|
@ -462,7 +462,7 @@ namespace internal {
|
|||
eigensolver.computeDirect(v_muXY);
|
||||
|
||||
if (eigensolver.info() != Eigen::Success)
|
||||
return Principal_curvature<GT>();
|
||||
return Principal_curvatures_and_directions<GT>();
|
||||
|
||||
const Eigen::Matrix<typename GT::FT, 3, 1> eig_vals = eigensolver.eigenvalues();
|
||||
const Eigen::Matrix<typename GT::FT, 3, 3> eig_vecs = eigensolver.eigenvectors();
|
||||
|
|
@ -470,7 +470,7 @@ namespace internal {
|
|||
const typename GT::Vector_3 min_eig_vec(eig_vecs(0, 1), eig_vecs(1, 1), eig_vecs(2, 1));
|
||||
const typename GT::Vector_3 max_eig_vec(eig_vecs(0, 0), eig_vecs(1, 0), eig_vecs(2, 0));
|
||||
|
||||
return Principal_curvature<GT>(
|
||||
return Principal_curvatures_and_directions<GT>(
|
||||
(v_mu0 != 0.0) ? -eig_vals[1] / v_mu0 : 0.0,
|
||||
(v_mu0 != 0.0) ? -eig_vals[0] / v_mu0 : 0.0,
|
||||
min_eig_vec,
|
||||
|
|
@ -509,7 +509,7 @@ namespace internal {
|
|||
NamedParameters,
|
||||
Default_scalar_map>::type Vertex_gaussian_curvature_map;
|
||||
|
||||
typedef Constant_property_map<Vertex_descriptor, Principal_curvature<GT>> Default_principal_map;
|
||||
typedef Constant_property_map<Vertex_descriptor, Principal_curvatures_and_directions<GT>> Default_principal_map;
|
||||
typedef typename internal_np::Lookup_named_param_def<internal_np::vertex_principal_curvatures_and_directions_map_t,
|
||||
NamedParameters,
|
||||
Default_principal_map>::type Vertex_principal_curvatures_and_directions_map;
|
||||
|
|
@ -735,7 +735,7 @@ namespace internal {
|
|||
|
||||
if (is_principal_curvatures_and_directions_selected) {
|
||||
const Vector_3 v_normal = get(vnm, v);
|
||||
const Principal_curvature<GT> principal_curvatures_and_directions = principal_curvatures_and_directions_from_anisotropic_measures<GT>(
|
||||
const Principal_curvatures_and_directions<GT> principal_curvatures_and_directions = principal_curvatures_and_directions_from_anisotropic_measures<GT>(
|
||||
vertex_measures.anisotropic_measure,
|
||||
vertex_measures.area_measure,
|
||||
v_normal
|
||||
|
|
@ -997,8 +997,8 @@ template<typename PolygonMesh, typename VertexCurvatureMap,
|
|||
* \cgalParamDescription{a property map associating mean curvatures to the vertices of `pmesh`}
|
||||
* \cgalParamType{a class model of `WritablePropertyMap` with
|
||||
* `boost::graph_traits<PolygonMesh>::%Vertex_descriptor`
|
||||
* as key type and `%Principal_curvature` as value type}
|
||||
* \cgalParamDefault{`get(dynamic_vertex_property_t<Principal_curvature<GT>>(), pmesh)`}
|
||||
* as key type and `%Principal_curvatures_and_directions` as value type}
|
||||
* \cgalParamDefault{`get(dynamic_vertex_property_t<Principal_curvatures_and_directions<GT>>(), pmesh)`}
|
||||
* \cgalParamExtra{If this parameter is omitted, mean principal won't be computed}
|
||||
* \cgalParamNEnd
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue