\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.14.2 - Triangulated Surface Mesh Simplification

Definition

The concept EdgeProfile describes the requirements for a data structure that caches the local topology and geometry in the surroundings of a halfedge.

This profile is used by the stop, cost and placement policies.

Has Models:
CGAL::Surface_mesh_simplification::Edge_profile<TriangleMesh>

Types

typedef unspecified_type TriangleMesh
 The type of the surface mesh to simplify. More...
 
typedef unspecified_type VertexPointMap
 The type of a property map that maps vertices on points.
 
boost::graph_traits< TriangleMesh >::vertex_descriptor vertex_descriptor
 A Bgl vertex descriptor representing a vertex of the surface mesh.
 
boost::graph_traits< TriangleMesh >::halfedge_descriptor halfedge_descriptor
 A Bgl halfedge descriptor representing a haledge of the surface mesh.
 
boost::property_traits< VertexPointMap >::value_type Point
 The point type for the surface mesh vertex. More...
 
CGAL::Kernel_traits< Point >::Kernel::FT FT
 The coordinate type of points.
 

Access Functions

vertex_descriptor v0 () const
 One of vertices of the edge to be collapsed.
 
vertex_descriptor v1 () const
 The other vertex of the edge to be collapsed.
 
halfedge_descriptor v0_v1 () const
 One of the directed edges corresponding to the halfedge being collapsed.
 
halfedge_descriptor v1_v0 () const
 The other directed edge corresponding to the halfedge being collapsed.
 
Point const & p0 () const
 The point of vertex v0.
 
Point const & p1 () const
 The point of vertex v1.
 
vertex_descriptor vL () const
 If v0v1 belongs to a finite face (is not a border edge) the third vertex of that triangular face, a null descriptor otherwise.
 
halfedge_descriptor v1_vL () const
 If v0v1 belongs to a finite face (is not a border edge) the directed edge from v1 to vL, a null descriptor otherwise.
 
halfedge_descriptor vL_v0 () const
 If v0v1 belongs to a finite face (is not a border edge) the directed edge from vL to v0, a null descriptor otherwise.
 
vertex_descriptor vR () const
 If v1v0 belongs to a finite face (is not a border edge) the third vertex of that triangular face, a null descriptor otherwise.
 
halfedge_descriptor v0_vR () const
 If v1v0 belongs to a finite face (is not a border edge) the directed edge from v0 to vR, a null descriptor otherwise.
 
halfedge_descriptor vR_v1 () const
 If v1v0 belongs to a finite face (is not a border edge) the directed edge from vR to v1, a null descriptor otherwise.
 
std::vector< vertex_descriptorlink () const
 The unique sequence of the vertices around v0v1 in topological order (ccw or cw depending on the relative ordering of v0 and v1 in the profile). More...
 
std::vector< halfedge_descriptorborder_edges () const
 The unique collection of the border directed edges incident upon v0 and v1.
 
bool left_face_exists () const
 Indicates if v0v1 belongs to a finite face of the surface mesh (i.e, v0v1 is not a border edge).
 
bool right_face_exists () const
 Indicates if v0v1 belongs to a finite face of the surface mesh (i.e, v1v0 is not a border edge).
 
const TriangleMeshsurface_mesh () const
 Returns the surface mesh the edge belongs to.
 
VertexPointMap vertex_point_map () const
 Returns the vertex point property map.
 

Member Typedef Documentation

◆ TriangleMesh

The type of the surface mesh to simplify.

Must be a model of the MutableFaceGraph and HalfedgeListGraph concepts.

Member Function Documentation

◆ link()

std::vector<vertex_descriptor> EdgeProfile::link ( ) const

The unique sequence of the vertices around v0v1 in topological order (ccw or cw depending on the relative ordering of v0 and v1 in the profile).

The sequence may have duplicates, but when this happens the edge is not collapsible.

Member Data Documentation

◆ Point

boost::property_traits<VertexPointMap>::value_type EdgeProfile::Point

The point type for the surface mesh vertex.

Must be a model of Point_3.