Misc minor changes

Some doc, some typos, some indentation...
This commit is contained in:
Mael Rouxel-Labbé 2016-11-09 14:11:30 +01:00
parent b17c60f4d8
commit 8da6683ef0
11 changed files with 68 additions and 56 deletions

View File

@ -486,7 +486,7 @@ to the real border, and switch back on the "other side" of the seam.
in <em>(c)</em> the seam forms a closed polyline. While the first two define a single border, a cycle defines two borders in <em>(c)</em> the seam forms a closed polyline. While the first two define a single border, a cycle defines two borders
and splits the set of faces in two connected components. Something similar happens when the seam touches the same border and splits the set of faces in two connected components. Something similar happens when the seam touches the same border
more than once. A seam can also connect different borders what changes the genus of the mesh. more than once. A seam can also connect different borders what changes the genus of the mesh.
Finally, a seam may have more than one connected components. Finally, a seam may have more than one connected component.
\cgalFigureBegin{fig_Seam_mesh_2, Seam_mesh_2.png} \cgalFigureBegin{fig_Seam_mesh_2, Seam_mesh_2.png}
Walking around a seam <em>(a)</em> with no seam vertex on the real border, Walking around a seam <em>(a)</em> with no seam vertex on the real border,
@ -495,7 +495,7 @@ Walking around a seam <em>(a)</em> with no seam vertex on the real border,
Seam meshes are used in the Chapter \ref PkgSurfaceParameterizationSummary. Seam meshes are used in the Chapter \ref PkgSurfaceParameterizationSummary.
subsection BGLExamples Examples \subsection BGLExamples Examples
\subsubsection BGLExampleIncidentVertices Example: Finding Incident Vertices in a HalfedgeGraph \subsubsection BGLExampleIncidentVertices Example: Finding Incident Vertices in a HalfedgeGraph

View File

@ -144,6 +144,7 @@ private:
mutable vertices_size_type number_of_vertices; mutable vertices_size_type number_of_vertices;
public: public:
/// Return the underlying mesh.
const TM& mesh() const const TM& mesh() const
{ {
return tm; return tm;
@ -754,12 +755,27 @@ public:
/// @endcond /// @endcond
/// Return the number of seam edges in the seam mesh.
edges_size_type number_of_seam_edges() const edges_size_type number_of_seam_edges() const
{ {
return number_of_seams; return number_of_seams;
} }
/// Add seams to the mesh's property maps. /// Set the number of seam edges.
void set_seam_edges_number(const edges_size_type sn) const
{
number_of_seams = sn;
}
/// Add seams to the property maps of the seam mesh.
///
/// In input, a seam edge is described by the pair of integers that correspond
/// to the indices of the extremeties (vertices) of the edge that one wishes
/// to mark as seam edge.
///
/// @pre filename should be the name of a CGAL selection file: seam edges
/// are given as pairs of integers, on the third line of the file
/// @pre A seam edge must be an edge of the graph
TM_halfedge_descriptor add_seams(const char* filename) TM_halfedge_descriptor add_seams(const char* filename)
{ {
TM_halfedge_descriptor tmhd; TM_halfedge_descriptor tmhd;
@ -828,16 +844,12 @@ public:
return tmhd; return tmhd;
} }
void set_seam_number(const edges_size_type sn) const
{
number_of_seams = sn;
}
/// Constructs a seam mesh for a triangle mesh and an edge and vertex property map /// Constructs a seam mesh for a triangle mesh and an edge and vertex property map
///
/// \param tm the adapted mesh /// \param tm the adapted mesh
/// \param sem the edge property map with value `true` for seam edges /// \param sem the edge property map with value `true` for seam edges
/// \param svm the vertex property map with value `true` for seam vertices /// \param svm the vertex property map with value `true` for seam vertices
///
/// @note the vertices must be exactly the vertices on the seam edges. Maybe a bad design. /// @note the vertices must be exactly the vertices on the seam edges. Maybe a bad design.
Seam_mesh(const TM& tm_, const SEM& sem_, const SVM svm_) Seam_mesh(const TM& tm_, const SEM& sem_, const SVM svm_)
: tm(tm_), : tm(tm_),

View File

@ -636,7 +636,7 @@ note = {\url{ttp://hal.inria.fr/inria-00090522}}
,year = 1995 ,year = 1995
,pages = {173--182} ,pages = {173--182}
,note = {Examples in ,note = {Examples in
\url{tp://ftp.cs.washington.edu/pub/graphics}} \url{ftp://ftp.cs.washington.edu/pub/graphics}}
,update = "97.08 kettner" ,update = "97.08 kettner"
} }

View File

@ -157,8 +157,8 @@ Left: Tutte barycentric mapping parameterization (the red line depicts the cut g
`Discrete_conformal_map_parameterizer_3<TriangleMesh, BorderParameterizer_3, SparseLinearAlgebraTraits_d>` `Discrete_conformal_map_parameterizer_3<TriangleMesh, BorderParameterizer_3, SparseLinearAlgebraTraits_d>`
Discrete conformal map parameterization has been introduced by Eck et Discrete conformal map parameterization has been introduced to the graphics community
al. to the graphics community \cgalCite{cgal:eddhls-maam-95}. It attempts to by Eck et al. \cgalCite{cgal:eddhls-maam-95}. It attempts to
lower angle deformation by minimizing a discrete version of the lower angle deformation by minimizing a discrete version of the
Dirichlet energy as derived by Pinkall and Dirichlet energy as derived by Pinkall and
Polthier \cgalCite{cgal:pp-cdmsc-93}. A one-to-one mapping is guaranteed Polthier \cgalCite{cgal:pp-cdmsc-93}. A one-to-one mapping is guaranteed

View File

@ -282,9 +282,9 @@ private:
Vertex_set& vertices, Vertex_set& vertices,
Faces_vector& faces) const Faces_vector& faces) const
{ {
CGAL::internal::Parameterization::Containers_filler<TriangleMesh> internal::Parameterization::Containers_filler<TriangleMesh>
fc(mesh, vertices, &faces); fc(mesh, vertices, &faces);
CGAL::Polygon_mesh_processing::connected_component( Polygon_mesh_processing::connected_component(
face(opposite(bhd, mesh), mesh), face(opposite(bhd, mesh), mesh),
mesh, mesh,
boost::make_function_output_iterator(fc)); boost::make_function_output_iterator(fc));
@ -1361,7 +1361,7 @@ public:
output_uvmap("ARAP_final_pre_processing.off", mesh, vertices, faces, uvmap, vimap); output_uvmap("ARAP_final_pre_processing.off", mesh, vertices, faces, uvmap, vimap);
if(!internal::Parameterization::is_one_to_one_mapping(mesh, uvmap)){ if(!is_one_to_one_mapping(mesh, uvmap)) {
// Use post processing to handle flipped elements // Use post processing to handle flipped elements
std::cout << "Parameterization is not valid; calling post processor" << std::endl; std::cout << "Parameterization is not valid; calling post processor" << std::endl;
status = post_process(mesh, vertices, faces, bhd, uvmap, vimap); status = post_process(mesh, vertices, faces, bhd, uvmap, vimap);

View File

@ -332,8 +332,8 @@ parameterize(TriangleMesh& mesh,
typedef boost::unordered_set<vertex_descriptor> Vertex_set; typedef boost::unordered_set<vertex_descriptor> Vertex_set;
Vertex_set vertices; Vertex_set vertices;
CGAL::internal::Parameterization::Containers_filler<TriangleMesh> fc(mesh, vertices); internal::Parameterization::Containers_filler<TriangleMesh> fc(mesh, vertices);
CGAL::Polygon_mesh_processing::connected_component( Polygon_mesh_processing::connected_component(
face(opposite(bhd, mesh), mesh), face(opposite(bhd, mesh), mesh),
mesh, mesh,
boost::make_function_output_iterator(fc)); boost::make_function_output_iterator(fc));

View File

@ -108,8 +108,8 @@ void output_uvmap_to_off(const TriangleMesh& mesh,
boost::unordered_set<vertex_descriptor> vertices; boost::unordered_set<vertex_descriptor> vertices;
std::vector<face_descriptor> faces; std::vector<face_descriptor> faces;
CGAL::internal::Parameterization::Containers_filler<TriangleMesh> fc(mesh, vertices, &faces); internal::Parameterization::Containers_filler<TriangleMesh> fc(mesh, vertices, &faces);
CGAL::Polygon_mesh_processing::connected_component( Polygon_mesh_processing::connected_component(
face(opposite(bhd, mesh), mesh), face(opposite(bhd, mesh), mesh),
mesh, mesh,
boost::make_function_output_iterator(fc)); boost::make_function_output_iterator(fc));

View File

@ -181,9 +181,9 @@ public:
boost::unordered_set<vertex_descriptor> ccvertices; boost::unordered_set<vertex_descriptor> ccvertices;
std::vector<face_descriptor> ccfaces; std::vector<face_descriptor> ccfaces;
CGAL::internal::Parameterization::Containers_filler<TriangleMesh> internal::Parameterization::Containers_filler<TriangleMesh>
fc(mesh, ccvertices, &ccfaces); fc(mesh, ccvertices, &ccfaces);
CGAL::Polygon_mesh_processing::connected_component( Polygon_mesh_processing::connected_component(
face(opposite(bhd, mesh), mesh), face(opposite(bhd, mesh), mesh),
mesh, mesh,
boost::make_function_output_iterator(fc)); boost::make_function_output_iterator(fc));

View File

@ -172,7 +172,7 @@ private:
const Vector& Xv, const Vector& Xv,
const Vertex_set& vertices, const Vertex_set& vertices,
VertexUVMap uvmap, VertexUVMap uvmap,
const VertexIndexMap vimap) const VertexIndexMap vimap) const
{ {
BOOST_FOREACH(vertex_descriptor vd, vertices){ BOOST_FOREACH(vertex_descriptor vd, vertices){
int index = get(vimap, vd); int index = get(vimap, vd);