CGAL 4.12 - Triangulated Surface Mesh Simplification
EdgeProfile Concept Reference

## 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<ECM>

## Types

typedef unspecified_type ECM
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< ECM >::vertex_descriptor vertex_descriptor
A Bgl vertex descriptor representing a vertex of the surface mesh.

boost::graph_traits< ECM >::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.

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 ECMsurface_mesh () const
Returns the surface mesh the edge belongs to.

VertexPointMap vertex_point_map () const
Returns the vertex point property map.

## ◆ ECM

 typedef unspecified_type EdgeProfile::ECM

The type of the surface mesh to simplify.

Must be a model of the EdgeCollapsableSurfaceMesh concept.

## Member Function Documentation

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.

## ◆ Point

 boost::property_traits::value_type EdgeProfile::Point

The point type for the surface mesh vertex.

Must be a model of Point_3.