mirror of https://github.com/CGAL/cgal
extra run of the script to remove tabs and trailing whitespaces
This commit is contained in:
parent
df0e632c65
commit
1cfd991f4b
|
|
@ -5,7 +5,7 @@
|
|||
// $URL$
|
||||
// $Id$
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
|
||||
//
|
||||
//
|
||||
//
|
||||
// Author(s) : Philipp Moeller
|
||||
|
||||
|
|
@ -53,13 +53,13 @@ join_face(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
}
|
||||
bool fnull = is_border(h,g);
|
||||
|
||||
|
||||
|
||||
halfedge_descriptor hprev2 = hprev;
|
||||
while(hprev2 != gprev) {
|
||||
hprev2 = next(hprev2, g);
|
||||
set_face(hprev2, f, g);
|
||||
}
|
||||
|
||||
|
||||
if (! fnull)
|
||||
set_halfedge(f, hprev, g);
|
||||
set_halfedge(target(hprev,g), hprev, g);
|
||||
|
|
@ -80,7 +80,7 @@ join_face(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
/// @{
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* joins the two vertices incident to `h`, (that is `source(h, g)` and
|
||||
* `target(h, g)`) and removes `source(h,g)`. Returns the predecessor
|
||||
* of `h` around the vertex, i.e., `prev(opposite(h,g))`. The
|
||||
|
|
@ -99,8 +99,8 @@ join_face(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
* \pre The size of the faces incident to `h` and `opposite(h,g)` is at least 4.
|
||||
*
|
||||
* \post `source(h, g)` is invalidated
|
||||
* \post `h` is invalidated
|
||||
*
|
||||
* \post `h` is invalidated
|
||||
*
|
||||
* \sa `split_vertex()`
|
||||
*/
|
||||
template<typename Graph>
|
||||
|
|
@ -153,7 +153,7 @@ join_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* splits the target vertex `v` of `h1` and `h2`, and connects the new vertex
|
||||
* and `v` with a new edge. Let `hnew` be `opposite(next(h1, g), g)` after the
|
||||
* split. The split regroups the halfedges around the two vertices. The
|
||||
|
|
@ -190,7 +190,7 @@ split_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
|||
CGAL_assertion(h1 != h2);
|
||||
CGAL_assertion(target(h1, g) == target(h2, g));
|
||||
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
hnew = halfedge(add_edge(g), g),
|
||||
hnewopp = opposite(hnew, g);
|
||||
typename boost::graph_traits<Graph>::vertex_descriptor
|
||||
|
|
@ -198,8 +198,8 @@ split_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
|||
internal::insert_halfedge(hnew, h2, g);
|
||||
internal::insert_halfedge(hnewopp, h1, g);
|
||||
set_target(hnew, target(h1, g), g);
|
||||
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
end = hnewopp;
|
||||
do
|
||||
{
|
||||
|
|
@ -226,7 +226,7 @@ split_edge(typename boost::graph_traits<Graph>::halfedge_descriptor h, Graph& g)
|
|||
|
||||
|
||||
/**
|
||||
* joins the two faces incident to `h` and `opposite(h,g)`.
|
||||
* joins the two faces incident to `h` and `opposite(h,g)`.
|
||||
* The faces may be holes.
|
||||
*
|
||||
* If `Graph` is a model of `MutableFaceGraph`
|
||||
|
|
@ -261,10 +261,10 @@ join_face(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
/**
|
||||
* splits the face incident to `h1` and `h2`. Creates the opposite
|
||||
* halfedges `h3` and `h4`, such that `next(h1,g) == h3` and `next(h2,g) == h4`.
|
||||
* Performs the inverse operation to `join_face()`.
|
||||
* Performs the inverse operation to `join_face()`.
|
||||
*
|
||||
* If `Graph` is a model of `MutableFaceGraph` and if the update of faces is not disabled
|
||||
* a new face incident to `h4` is added.
|
||||
* a new face incident to `h4` is added.
|
||||
*
|
||||
* \image html split_face.svg
|
||||
*
|
||||
|
|
@ -285,7 +285,7 @@ typename boost::graph_traits<Graph>::halfedge_descriptor
|
|||
split_face(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor h2,
|
||||
Graph& g)
|
||||
{
|
||||
{
|
||||
typedef typename boost::graph_traits<Graph> Traits;
|
||||
typedef typename Traits::halfedge_descriptor halfedge_descriptor;
|
||||
typedef typename Traits::face_descriptor face_descriptor;
|
||||
|
|
@ -297,23 +297,23 @@ split_face(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
|||
internal::set_face_in_face_loop(opposite(hnew,g), fnew, g);
|
||||
set_halfedge(face(hnew,g), hnew, g);
|
||||
set_halfedge(face(opposite(hnew,g),g), opposite(hnew,g), g);
|
||||
return hnew;
|
||||
return hnew;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* glues the cycle of halfedges of `h1` and `h2` together.
|
||||
* The vertices in the cycle of `h2` get removed.
|
||||
* If `h1` or `h2` are not border halfedges their faces get removed.
|
||||
* The vertices on the face cycle of `h1` get removed.
|
||||
* The invariant `join_loop(h1, split_loop(h1,h2,h3,g), g)` returns `h1` and keeps
|
||||
* The invariant `join_loop(h1, split_loop(h1,h2,h3,g), g)` returns `h1` and keeps
|
||||
* the graph unchanged.
|
||||
*
|
||||
*
|
||||
* \image html join_loop.svg
|
||||
*
|
||||
* \tparam Graph must be a `MutableFaceGraph`
|
||||
*
|
||||
* \returns `h1`.
|
||||
* \returns `h1`.
|
||||
*
|
||||
* \pre The faces incident to `h` and `g` are different and have equal number of edges.
|
||||
*/
|
||||
|
|
@ -369,24 +369,24 @@ join_loop(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
|||
|
||||
|
||||
/**
|
||||
* cuts the graph along the cycle `(h1,h2,h3)` changing the genus
|
||||
* cuts the graph along the cycle `(h1,h2,h3)` changing the genus
|
||||
* (halfedge `h3` runs on the backside of the three dimensional figure below).
|
||||
* Three new vertices, three new pairs of halfedges,
|
||||
* and two new triangular faces are created.
|
||||
*
|
||||
* `h1`, `h2`, and `h3` will be incident to the first new face.
|
||||
* `h1`, `h2`, and `h3` will be incident to the first new face.
|
||||
*
|
||||
* Note that `split_loop()` does not deal with properties of new vertices, halfedges, and faces.
|
||||
*
|
||||
* \image html split_loop.svg
|
||||
*
|
||||
*
|
||||
* \tparam Graph must be a `MutableFaceGraph`
|
||||
*
|
||||
* \returns the halfedge incident to the second new face.
|
||||
*
|
||||
* \pre `h1`, `h2`, and `h3` denote distinct, consecutive halfedges of the graph
|
||||
* and form a cycle: i.e., `target(h1) == target(opposite(h2,g),g)`, … ,
|
||||
* `target(h3,g) == target(opposite(h1,g),g)`.
|
||||
* \pre `h1`, `h2`, and `h3` denote distinct, consecutive halfedges of the graph
|
||||
* and form a cycle: i.e., `target(h1) == target(opposite(h2,g),g)`, … ,
|
||||
* `target(h3,g) == target(opposite(h1,g),g)`.
|
||||
* \pre The six faces incident to `h1`, `h2`, and `h3` are all distinct.
|
||||
*/
|
||||
template<typename Graph>
|
||||
|
|
@ -482,10 +482,10 @@ split_loop(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
|||
|
||||
|
||||
/**
|
||||
* removes the incident face of `h` and changes all halfedges incident to the face into border halfedges
|
||||
* removes the incident face of `h` and changes all halfedges incident to the face into border halfedges
|
||||
* or removes them from the graph if they were already border halfedges.
|
||||
*
|
||||
* If this creates isolated vertices they get removed as well.
|
||||
* If this creates isolated vertices they get removed as well.
|
||||
*
|
||||
* \image html remove_face.svg
|
||||
* \image html remove_face_and_vertex.svg
|
||||
|
|
@ -663,7 +663,7 @@ add_face(const VertexRange& vr, Graph& g)
|
|||
halfedges[i] = halfedge(ne, g);
|
||||
CGAL_assertion(halfedges[i] != boost::graph_traits<Graph>::null_halfedge());
|
||||
|
||||
set_face(opposite(halfedges[i], g), boost::graph_traits<Graph>::null_face(), g); // as it may be recycled we have to reset it
|
||||
set_face(opposite(halfedges[i], g), boost::graph_traits<Graph>::null_face(), g); // as it may be recycled we have to reset it
|
||||
CGAL_assertion(source(halfedges[i], g) == vertices[i]);
|
||||
}
|
||||
}
|
||||
|
|
@ -998,13 +998,13 @@ void make_hole(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
CGAL_precondition(! is_border(h,g));
|
||||
face_descriptor fd = face(h, g);
|
||||
halfedge_around_face_iterator hafib, hafie;
|
||||
for(boost::tie(hafib, hafie) = halfedges_around_face(h, g);
|
||||
hafib != hafie;
|
||||
for(boost::tie(hafib, hafie) = halfedges_around_face(h, g);
|
||||
hafib != hafie;
|
||||
++hafib){
|
||||
CGAL_assertion(! is_border(opposite(*hafib,g),g));
|
||||
internal::set_border(*hafib, g);
|
||||
}
|
||||
remove_face(fd,g);
|
||||
remove_face(fd,g);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1027,9 +1027,9 @@ void fill_hole(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* creates a barycentric triangulation of the face incident to `h`. Creates a new
|
||||
* vertex and connects it to each vertex incident to `h` and splits `face(h, g)`
|
||||
* vertex and connects it to each vertex incident to `h` and splits `face(h, g)`
|
||||
* into triangular faces.
|
||||
* `h` remains incident to
|
||||
* the original face. The time complexity is linear in the size of the face.
|
||||
|
|
@ -1037,10 +1037,10 @@ void fill_hole(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
* \image html add_center_vertex.svg
|
||||
*
|
||||
* \returns the halfedge `next(h, g)` after the
|
||||
* operation, i.e., a halfedge pointing to the new vertex.
|
||||
* operation, i.e., a halfedge pointing to the new vertex.
|
||||
*
|
||||
* Note that `add_center_vertex()` does not deal with properties of new vertices,
|
||||
* halfedges, and faces.
|
||||
* Note that `add_center_vertex()` does not deal with properties of new vertices,
|
||||
* halfedges, and faces.
|
||||
* \pre `h` is not a border halfedge.
|
||||
*
|
||||
* \param g the graph
|
||||
|
|
@ -1052,7 +1052,7 @@ void fill_hole(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
template<typename Graph>
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
add_center_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
||||
Graph& g)
|
||||
Graph& g)
|
||||
{
|
||||
typedef typename boost::graph_traits<Graph> Traits;
|
||||
typedef typename Traits::vertex_descriptor vertex_descriptor;
|
||||
|
|
@ -1084,10 +1084,10 @@ add_center_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
|
||||
/**
|
||||
* removes the vertex `target(h, g)` and all incident halfedges thereby merging all
|
||||
* incident faces. The resulting face may not be triangulated.
|
||||
* This function is the inverse operation of `add_center_vertex()`.
|
||||
* The invariant `h == remove_center_vertex(add_center_vertex(h,g),g)`
|
||||
* holds, if `h` is not a border halfedge.
|
||||
* incident faces. The resulting face may not be triangulated.
|
||||
* This function is the inverse operation of `add_center_vertex()`.
|
||||
* The invariant `h == remove_center_vertex(add_center_vertex(h,g),g)`
|
||||
* holds, if `h` is not a border halfedge.
|
||||
*
|
||||
* \image html remove_center_vertex.svg
|
||||
*
|
||||
|
|
@ -1111,7 +1111,7 @@ add_center_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
template<typename Graph>
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
remove_center_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
||||
Graph& g)
|
||||
Graph& g)
|
||||
{
|
||||
typedef typename boost::graph_traits<Graph> Traits;
|
||||
typedef typename Traits::halfedge_descriptor halfedge_descriptor;
|
||||
|
|
@ -1140,12 +1140,12 @@ remove_center_vertex(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
}
|
||||
|
||||
/**
|
||||
* appends a new face to the border halfedge `h2` by connecting
|
||||
* the tip of `h2` with the tip of `h1` with two new halfedges and a new vertex
|
||||
* and creating a new face that is incident to `h2`.
|
||||
* Note that `add_vertex_and_face_to_border()` does not deal with properties of new
|
||||
* appends a new face to the border halfedge `h2` by connecting
|
||||
* the tip of `h2` with the tip of `h1` with two new halfedges and a new vertex
|
||||
* and creating a new face that is incident to `h2`.
|
||||
* Note that `add_vertex_and_face_to_border()` does not deal with properties of new
|
||||
* vertices, halfedges, and faces.
|
||||
*
|
||||
*
|
||||
* \image html add_vertex_and_face_to_border.svg
|
||||
*
|
||||
* \tparam Graph must be a model of `MutableFaceGraph`
|
||||
|
|
@ -1186,7 +1186,7 @@ add_vertex_and_face_to_border(typename boost::graph_traits<Graph>::halfedge_desc
|
|||
set_next(h2,ohe2,g);
|
||||
internal::set_border(he1,g);
|
||||
internal::set_border(he2,g);
|
||||
|
||||
|
||||
CGAL::Halfedge_around_face_iterator<Graph> hafib,hafie;
|
||||
for(boost::tie(hafib, hafie) = halfedges_around_face(ohe1, g);
|
||||
hafib != hafie;
|
||||
|
|
@ -1199,9 +1199,9 @@ add_vertex_and_face_to_border(typename boost::graph_traits<Graph>::halfedge_desc
|
|||
|
||||
|
||||
/**
|
||||
* appends a new face incident to the border halfedge `h1` and `h2` by connecting the vertex `target(h2,g)`
|
||||
* and the vertex `target(h1,g)` with a new halfedge, and filling this separated part of the hole
|
||||
* with a new face, such that the new face is incident to `h2`.
|
||||
* appends a new face incident to the border halfedge `h1` and `h2` by connecting the vertex `target(h2,g)`
|
||||
* and the vertex `target(h1,g)` with a new halfedge, and filling this separated part of the hole
|
||||
* with a new face, such that the new face is incident to `h2`.
|
||||
*
|
||||
* \image html add_face_to_border.svg
|
||||
*
|
||||
|
|
@ -1209,8 +1209,8 @@ add_vertex_and_face_to_border(typename boost::graph_traits<Graph>::halfedge_desc
|
|||
*
|
||||
* \returns the halfedge of the new edge that is incident to the new face.
|
||||
*
|
||||
* \pre `h1` and `h2` are border halfedges,
|
||||
* \pre `h1 != h2`,
|
||||
* \pre `h1` and `h2` are border halfedges,
|
||||
* \pre `h1 != h2`,
|
||||
* \pre `next(h1,g) != h2`,
|
||||
* \pre `h1` and `h2` are on the same border.
|
||||
*/
|
||||
|
|
@ -1227,18 +1227,18 @@ add_face_to_border(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
|||
|
||||
typename boost::graph_traits<Graph>::face_descriptor f = add_face(g);
|
||||
typename boost::graph_traits<Graph>::edge_descriptor e = add_edge(g);
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
typename boost::graph_traits<Graph>::halfedge_descriptor
|
||||
newh= halfedge(e, g)
|
||||
, newhop = opposite(newh, g);
|
||||
|
||||
set_next(newhop, next(h2, g), g);
|
||||
|
||||
set_next(h2, newh, g);
|
||||
|
||||
|
||||
set_next(newh, next(h1, g), g);
|
||||
|
||||
set_next(h1, newhop, g);
|
||||
|
||||
|
||||
set_target(newh, target(h1, g), g);
|
||||
set_target(newhop, target(h2, g), g);
|
||||
|
||||
|
|
@ -1247,8 +1247,8 @@ add_face_to_border(typename boost::graph_traits<Graph>::halfedge_descriptor h1,
|
|||
internal::set_border(newhop, g);
|
||||
|
||||
CGAL::Halfedge_around_face_iterator<Graph> hafib,hafie;
|
||||
for(boost::tie(hafib, hafie) = halfedges_around_face(newh, g);
|
||||
hafib != hafie;
|
||||
for(boost::tie(hafib, hafie) = halfedges_around_face(newh, g);
|
||||
hafib != hafie;
|
||||
++hafib){
|
||||
set_face(*hafib, f, g);
|
||||
}
|
||||
|
|
@ -1293,7 +1293,7 @@ collapse_edge(typename boost::graph_traits<Graph>::edge_descriptor e,
|
|||
halfedge_descriptor qp = opposite(pq, g);
|
||||
halfedge_descriptor pt = opposite(prev(pq, g), g);
|
||||
halfedge_descriptor qb = opposite(prev(qp, g), g);
|
||||
|
||||
|
||||
bool lTopFaceExists = ! is_border(pq,g);
|
||||
bool lBottomFaceExists = ! is_border(qp,g);
|
||||
bool lTopLeftFaceExists = lTopFaceExists && ! is_border(pt,g);
|
||||
|
|
@ -1309,19 +1309,19 @@ collapse_edge(typename boost::graph_traits<Graph>::edge_descriptor e,
|
|||
bool lP_Erased = false;
|
||||
|
||||
if ( lTopFaceExists )
|
||||
{
|
||||
{
|
||||
CGAL_precondition( ! is_border(opposite(pt, g),g) ) ; // p-q-t is a face of the mesh
|
||||
if ( lTopLeftFaceExists )
|
||||
{
|
||||
//CGAL_ECMS_TRACE(3, "Removing p-t E" << pt.idx() << " (V"
|
||||
// << p.idx() << "->V" << target(pt, g).idx()
|
||||
//CGAL_ECMS_TRACE(3, "Removing p-t E" << pt.idx() << " (V"
|
||||
// << p.idx() << "->V" << target(pt, g).idx()
|
||||
// << ") by joining top-left face" ) ;
|
||||
|
||||
join_face(pt,g);
|
||||
}
|
||||
else
|
||||
{
|
||||
//CGAL_ECMS_TRACE(3, "Removing p-t E" << pt.idx() << " (V" << p.idx()
|
||||
//CGAL_ECMS_TRACE(3, "Removing p-t E" << pt.idx() << " (V" << p.idx()
|
||||
// << "->V" << target(pt, g).idx() << ") by erasing top face" ) ;
|
||||
|
||||
remove_face(opposite(pt, g),g);
|
||||
|
|
@ -1332,24 +1332,24 @@ collapse_edge(typename boost::graph_traits<Graph>::edge_descriptor e,
|
|||
|
||||
lP_Erased = true ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( lBottomFaceExists )
|
||||
{
|
||||
{
|
||||
CGAL_precondition( ! is_border(opposite(qb, g),g) ) ; // p-q-b is a face of the mesh
|
||||
if ( lBottomRightFaceExists )
|
||||
{
|
||||
//CGAL_ECMS_TRACE(3, "Removing q-b E" << qb.idx() << " (V"
|
||||
// << q.idx() << "->V" << target(qb, g).idx()
|
||||
//CGAL_ECMS_TRACE(3, "Removing q-b E" << qb.idx() << " (V"
|
||||
// << q.idx() << "->V" << target(qb, g).idx()
|
||||
// << ") by joining bottom-right face" ) ;
|
||||
|
||||
join_face(qb,g);
|
||||
}
|
||||
else
|
||||
{
|
||||
//CGAL_ECMS_TRACE(3, "Removing q-b E" << qb.idx() << " (V"
|
||||
// << q.idx() << "->V" << target(qb, g).idx()
|
||||
//CGAL_ECMS_TRACE(3, "Removing q-b E" << qb.idx() << " (V"
|
||||
// << q.idx() << "->V" << target(qb, g).idx()
|
||||
// << ") by erasing bottom face" ) ;
|
||||
|
||||
if ( !lTopFaceExists )
|
||||
|
|
@ -1371,7 +1371,7 @@ collapse_edge(typename boost::graph_traits<Graph>::edge_descriptor e,
|
|||
|
||||
join_vertex(pq,g);
|
||||
lP_Erased = true ;
|
||||
}
|
||||
}
|
||||
|
||||
CGAL_expensive_assertion(is_valid_polygon_mesh(g));
|
||||
|
||||
|
|
@ -1383,18 +1383,18 @@ collapse_edge(typename boost::graph_traits<Graph>::edge_descriptor e,
|
|||
*
|
||||
* Let `h` be the halfedge of `e`, and let `v0` and `v1` be the source and target vertices of `h`.
|
||||
* Collapses the edge `e` replacing it with `v1`, as described in the paragraph above
|
||||
* and guarantees that an edge `e2`, for which `get(edge_is_constrained_map, e2)==true`,
|
||||
* and guarantees that an edge `e2`, for which `get(edge_is_constrained_map, e2)==true`,
|
||||
* is not removed after the collapse.
|
||||
*
|
||||
*
|
||||
* \tparam Graph must be a model of `MutableFaceGraph`
|
||||
* \tparam EdgeIsConstrainedMap mut be a model of `ReadablePropertyMap` with the edge descriptor of `Graph`
|
||||
* as key type and a Boolean as value type. It indicates if an edge is constrained or not.
|
||||
* \tparam EdgeIsConstrainedMap mut be a model of `ReadablePropertyMap` with the edge descriptor of `Graph`
|
||||
* as key type and a Boolean as value type. It indicates if an edge is constrained or not.
|
||||
*
|
||||
* \returns vertex `v1`.
|
||||
* \pre This function requires `g` to be an oriented 2-manifold with or without boundaries.
|
||||
* Furthermore, the edge `v0v1` must satisfy the link condition, which guarantees that the surface mesh is also 2-manifold after the edge collapse.
|
||||
* \pre `get(edge_is_constrained_map, v0v1)==false`.
|
||||
* \pre `v0` and `v1` are not both incident to a constrained edge.
|
||||
* \pre This function requires `g` to be an oriented 2-manifold with or without boundaries.
|
||||
* Furthermore, the edge `v0v1` must satisfy the link condition, which guarantees that the surface mesh is also 2-manifold after the edge collapse.
|
||||
* \pre `get(edge_is_constrained_map, v0v1)==false`.
|
||||
* \pre `v0` and `v1` are not both incident to a constrained edge.
|
||||
*/
|
||||
|
||||
template<typename Graph, typename EdgeIsConstrainedMap>
|
||||
|
|
@ -1533,8 +1533,8 @@ flip_edge(typename boost::graph_traits<Graph>::halfedge_descriptor h,
|
|||
typedef typename Traits::halfedge_descriptor halfedge_descriptor;
|
||||
typedef typename Traits::face_descriptor face_descriptor;
|
||||
|
||||
vertex_descriptor s = source(h,g);
|
||||
vertex_descriptor t = target(h,g);
|
||||
vertex_descriptor s = source(h,g);
|
||||
vertex_descriptor t = target(h,g);
|
||||
halfedge_descriptor nh = next(h,g), nnh = next(nh,g), oh = opposite(h,g), noh = next(oh,g), nnoh = next(noh,g);
|
||||
vertex_descriptor s2 = target(nh,g), t2 = target(noh,g);
|
||||
face_descriptor fh = face(h,g), foh = face(oh,g);
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ find_package( CGAL QUIET COMPONENTS )
|
|||
if ( NOT CGAL_FOUND )
|
||||
|
||||
message(STATUS "This project requires the CGAL library, and will not be compiled.")
|
||||
return()
|
||||
return()
|
||||
|
||||
endif()
|
||||
|
||||
|
|
@ -23,7 +23,7 @@ find_package( Boost )
|
|||
|
||||
if ( NOT Boost_FOUND )
|
||||
message(STATUS "This project requires the Boost library, and will not be compiled.")
|
||||
return()
|
||||
return()
|
||||
endif()
|
||||
|
||||
find_package( OpenMesh QUIET )
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#include <CGAL/Polygon_mesh_processing/border.h>
|
||||
|
||||
template <typename T>
|
||||
void
|
||||
void
|
||||
join_face_test()
|
||||
{
|
||||
CGAL_GRAPH_TRAITS_MEMBERS(T);
|
||||
|
|
@ -24,7 +24,7 @@ join_face_test()
|
|||
|
||||
assert(CGAL::internal::exact_num_faces(f.m) == 2);
|
||||
assert(CGAL::internal::exact_num_edges(f.m) == 6);
|
||||
|
||||
|
||||
CGAL::Halfedge_around_face_iterator<T> begin, end;
|
||||
boost::tie(begin, end) = CGAL::halfedges_around_face(halfedge(f.f1, f.m), f.m);
|
||||
assert(std::distance(begin, end) == 4);
|
||||
|
|
@ -40,7 +40,7 @@ join_face_test()
|
|||
for(boost::tie(fit, fend) = faces(f.m); fit != fend; ++fit) {
|
||||
assert(*fit == f.f1 || *fit == f.f3);
|
||||
}
|
||||
|
||||
|
||||
assert(degree(f.w, f.m) == 2);
|
||||
assert(degree(f.v, f.m) == 3);
|
||||
assert(CGAL::is_valid_polygon_mesh(f.m));
|
||||
|
|
@ -50,7 +50,7 @@ join_face_test()
|
|||
|
||||
|
||||
template <typename T>
|
||||
void
|
||||
void
|
||||
remove_face_test_1()
|
||||
{
|
||||
CGAL_GRAPH_TRAITS_MEMBERS(T);
|
||||
|
|
@ -84,13 +84,13 @@ remove_face_test_1()
|
|||
|
||||
|
||||
template <typename T>
|
||||
void
|
||||
void
|
||||
remove_face_test_2()
|
||||
{
|
||||
CGAL_GRAPH_TRAITS_MEMBERS(T);
|
||||
|
||||
Surface_fixture_2<T> f;
|
||||
|
||||
|
||||
// find the edge between x and v
|
||||
bool found;
|
||||
halfedge_descriptor e;
|
||||
|
|
@ -110,22 +110,22 @@ remove_face_test_2()
|
|||
boost::tie(e, found) = halfedge(f.x, f.w, f.m);
|
||||
assert(found);
|
||||
assert(face(e,f.m) == boost::graph_traits<T>::null_face());
|
||||
|
||||
|
||||
// check the boundary
|
||||
|
||||
halfedge_descriptor n = next(e, f.m);
|
||||
while(n != e) {
|
||||
assert(face(n,f.m) == boost::graph_traits<T>::null_face() );
|
||||
n = next(n, f.m);
|
||||
n = next(n, f.m);
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
add_face_to_border_test()
|
||||
{
|
||||
CGAL_GRAPH_TRAITS_MEMBERS(T);
|
||||
|
||||
|
||||
Surface_fixture_5<T> f;
|
||||
|
||||
CGAL::Euler::add_face_to_border(f.h1, f.h2, f.m);
|
||||
|
|
@ -134,12 +134,12 @@ add_face_to_border_test()
|
|||
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
add_vertex_and_face_to_border_test()
|
||||
{
|
||||
CGAL_GRAPH_TRAITS_MEMBERS(T);
|
||||
|
||||
|
||||
Surface_fixture_5<T> f;
|
||||
typedef typename boost::graph_traits<T>::halfedge_descriptor halfedge_descriptor;
|
||||
halfedge_descriptor h1 = f.h1, h2 = f.h2;
|
||||
|
|
@ -161,7 +161,7 @@ add_vertex_and_face_to_border_test()
|
|||
|
||||
halfedge_descriptor res = CGAL::Euler::add_vertex_and_face_to_border(f.h1, f.h2, f.m);
|
||||
assert(CGAL::is_valid_polygon_mesh(f.m));
|
||||
|
||||
|
||||
assert(! CGAL::is_border(res,m));
|
||||
assert(CGAL::is_border(opposite(res,m),m));
|
||||
res = opposite(res,m);
|
||||
|
|
@ -174,7 +174,7 @@ add_vertex_and_face_to_border_test()
|
|||
}
|
||||
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
join_vertex_interior_test()
|
||||
{
|
||||
|
|
@ -196,7 +196,7 @@ join_vertex_interior_test()
|
|||
assert(CGAL::is_valid_polygon_mesh(f.m));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
join_vertex_exterior_test()
|
||||
{
|
||||
|
|
@ -236,7 +236,7 @@ join_vertex_exterior_test()
|
|||
assert(CGAL::internal::exact_num_edges(f.m) == 6);
|
||||
assert(boost::distance(CGAL::halfedges_around_face(halfedge(f.f1, f.m), f.m)) == 4);
|
||||
assert(boost::distance(CGAL::halfedges_around_face(halfedge(f.f2, f.m), f.m)) == 3);
|
||||
|
||||
|
||||
assert(CGAL::is_valid_polygon_mesh(f.m));
|
||||
assert(degree(f.w, f.m) == 3);
|
||||
|
||||
|
|
@ -244,7 +244,7 @@ join_vertex_exterior_test()
|
|||
}
|
||||
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
split_vertex()
|
||||
{
|
||||
|
|
@ -268,7 +268,7 @@ split_vertex()
|
|||
assert(boost::distance(CGAL::halfedges_around_face(h2, f.m)) == 7);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
split_join_vertex_inverse()
|
||||
{
|
||||
|
|
@ -286,7 +286,7 @@ split_join_vertex_inverse()
|
|||
assert(found);
|
||||
CGAL::Euler::join_vertex(CGAL::Euler::split_vertex(h1, h2,f.m),f.m);
|
||||
assert(CGAL::is_valid_polygon_mesh(f.m));
|
||||
|
||||
|
||||
assert(CGAL::internal::exact_num_vertices(f.m)== 5);
|
||||
assert(CGAL::internal::exact_num_faces(f.m) == 2);
|
||||
assert(CGAL::internal::exact_num_edges(f.m) == 6);
|
||||
|
|
@ -296,7 +296,7 @@ split_join_vertex_inverse()
|
|||
}
|
||||
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
join_loop_test()
|
||||
{
|
||||
|
|
@ -304,11 +304,11 @@ join_loop_test()
|
|||
Surface_fixture_4<T> f;
|
||||
|
||||
CGAL::Euler::join_loop(f.h1, f.h2, f.m);
|
||||
|
||||
|
||||
assert(CGAL::is_valid_polygon_mesh(f.m));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
split_loop_test()
|
||||
{
|
||||
|
|
@ -322,7 +322,7 @@ split_loop_test()
|
|||
assert(CGAL::is_valid_polygon_mesh(f.m));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
split_face_test()
|
||||
{
|
||||
|
|
@ -333,7 +333,7 @@ split_face_test()
|
|||
assert(num_halfedges(f.m) == 10);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
make_hole_test()
|
||||
{
|
||||
|
|
@ -349,7 +349,7 @@ void
|
|||
assert(CGAL::internal::exact_num_halfedges(f.m) == nh);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
remove_center_vertex_test()
|
||||
{
|
||||
|
|
@ -366,14 +366,14 @@ remove_center_vertex_test()
|
|||
assert(CGAL::internal::exact_num_halfedges(f.m) == nh-(2*deg));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
join_split_inverse()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
void
|
||||
does_satisfy_link_condition()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ namespace CGAL {
|
|||
vcolors[i] = scanner.get_color_from_line(iss);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!in)
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue