mirror of https://github.com/CGAL/cgal
parent
20f9ae4ee2
commit
c6839a6aea
|
|
@ -52,7 +52,7 @@ There are two slightly different "edge" collapse operations. One is known as
|
||||||
<I>edge-collapse</I> while the other is known as <I>halfedge-collapse</I>.
|
<I>edge-collapse</I> while the other is known as <I>halfedge-collapse</I>.
|
||||||
Given an edge `e` joining vertices `w` and `v`, the edge-collapse operation replaces
|
Given an edge `e` joining vertices `w` and `v`, the edge-collapse operation replaces
|
||||||
`e`,`w` and `v` for a new vertex `r`, while the halfedge-collapse operation
|
`e`,`w` and `v` for a new vertex `r`, while the halfedge-collapse operation
|
||||||
pulls `v` into `w`, dissapearing `e` and leaving `w` in place.
|
pulls `v` into `w`, eliminating `e` and leaving `w` in place.
|
||||||
In both cases the operation removes the edge `e` along with the 2 triangles
|
In both cases the operation removes the edge `e` along with the 2 triangles
|
||||||
adjacent to it.
|
adjacent to it.
|
||||||
|
|
||||||
|
|
@ -173,7 +173,7 @@ simplifying a surface mesh of 1 million edges (a normal size) requires 1 million
|
||||||
of additional storage. Thus, to minimize the amount of additional memory required to
|
of additional storage. Thus, to minimize the amount of additional memory required to
|
||||||
simplify a surface mesh only the cost is attached to each edge and nothing else.
|
simplify a surface mesh only the cost is attached to each edge and nothing else.
|
||||||
|
|
||||||
But this is a tradeoff: the cost of a collapse is a function of the placement
|
But this is a trade-off: the cost of a collapse is a function of the placement
|
||||||
(the new position chosen for the remaining vertex) so before `GetCost`
|
(the new position chosen for the remaining vertex) so before `GetCost`
|
||||||
is called for each and every edge, `GetPlacement` must also be called to obtain
|
is called for each and every edge, `GetPlacement` must also be called to obtain
|
||||||
the placement parameter to the cost function.
|
the placement parameter to the cost function.
|
||||||
|
|
@ -234,7 +234,7 @@ surface_mesh : the surface_mesh to simplify
|
||||||
stop_predicate : policy indicating when the simplification must finish
|
stop_predicate : policy indicating when the simplification must finish
|
||||||
vertex_index_map(vimap) : property-map giving each vertex a unique integer index
|
vertex_index_map(vimap) : property-map giving each vertex a unique integer index
|
||||||
edge_index_map(eimap) : property-map giving each edge a unique integer index
|
edge_index_map(eimap) : property-map giving each edge a unique integer index
|
||||||
edge_is_border_map(ebmap): property-map specifying whether an edge is a border edge or not
|
edge_is_constrained_map(ebmap): property-map specifying whether an edge is a constrained edge or not
|
||||||
get_cost(cf) : function object computing the cost of a collapse
|
get_cost(cf) : function object computing the cost of a collapse
|
||||||
get_placement(pf) : function object computing the placement for the remaining vertex
|
get_placement(pf) : function object computing the placement for the remaining vertex
|
||||||
visitor(vis) : function object tracking the simplification process
|
visitor(vis) : function object tracking the simplification process
|
||||||
|
|
@ -285,14 +285,14 @@ What is particular in this example is the property map that allows to associate
|
||||||
\subsection Surface_mesh_simplificationExamplewithedges Example with Edges Marked as Non-Removable
|
\subsection Surface_mesh_simplificationExamplewithedges Example with Edges Marked as Non-Removable
|
||||||
|
|
||||||
The following example shows how to use the optional named parameter `edge_is_constrained_map` to prevent
|
The following example shows how to use the optional named parameter `edge_is_constrained_map` to prevent
|
||||||
edges from being removed. Edges marked as contrained are guaranteed to be in the final surface mesh. However,
|
edges from being removed. Edges marked as constrained are guaranteed to be in the final surface mesh. However,
|
||||||
the vertices of the constrained edges may change and the placement may change the points.
|
the vertices of the constrained edges may change and the placement may change the points.
|
||||||
The wrapper `CGAL::Surface_mesh_simplification::Constrained_placement` guarantees that these points are not changed.
|
The wrapper `CGAL::Surface_mesh_simplification::Constrained_placement` guarantees that these points are not changed.
|
||||||
|
|
||||||
\cgalExample{Surface_mesh_simplification/edge_collapse_constrained_border_polyhedron.cpp}
|
\cgalExample{Surface_mesh_simplification/edge_collapse_constrained_border_polyhedron.cpp}
|
||||||
|
|
||||||
|
|
||||||
\subsection Surface_mesh_simplificationExamplewithBoundedNormal Example with Bounded Changement of Face Normals
|
\subsection Surface_mesh_simplificationExamplewithBoundedNormal Example with Bounded Change of Face Normals
|
||||||
|
|
||||||
The surface mesh simplification does not guarantee that the resulting surface
|
The surface mesh simplification does not guarantee that the resulting surface
|
||||||
has no self intersections. Even the rather trivial mesh shown in \cgalFigureRef{SMS-selfintersection}
|
has no self intersections. Even the rather trivial mesh shown in \cgalFigureRef{SMS-selfintersection}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue