CGAL 6.1 - Triangulated Surface Mesh Simplification
|
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h>
The class Edge_profile
regroups useful information about an edge, such as its incident vertices and faces.
Its purpose is to pass this information onto the chosen models of GetCost
and GetPlacement
, and as such an object of this type appears as a parameter in the operator()
of both concepts.
The template parameters of this class must be consistent with the types used in the main call to edge_collapse()
: if you have specified a vertex point map or a geometric traits (via CGAL::parameters::vertex_point_map()
and CGAL::parameters::geom_traits()
respectively), then the template parameters must be identical.
Note however that if you wish to define your own models of the GetCost
or GetPlacement
concepts, you can simply template the call to operator()
by an "EdgeProfile" template parameter, which will avoid having to explicit the template parameters of the Edge_profile
class: indeed, the profile appears as an argument of the operator()
functions of these two concepts and automatic template deduction can therefore be used.
TriangleMesh | is the type of surface mesh being simplified |
VertexPointMap | is the type of the map that associates geometric positions to vertices of the mesh. If you have specified a vertex point map in the named parameters in the call to edge_collapse() , it must the same map type. Otherwise, you need not specify this template parameter and it will be automatically deduced. |
GeomTraits | is the type of the kernel that is used to perform predicates and constructions on geometric objects. If you have specified a traits class in the named parameters in the call to edge_collapse() , it must be the same traits class type. Otherwise, you need not specify this template parameter and it will be automatically deduced. |
GetCost
GetPlacement
Types | |
typedef TriangleMesh | Triangle_mesh |
The type of the surface mesh to simplify. | |
typedef VertexPointMap | Vertex_point_map |
The type of a property map that maps vertices on points. | |
typedef GeomTraits | Geom_traits |
The type of a kernel-like objects used for predicates and constructions. | |
typedef boost::graph_traits< TriangleMesh >::vertex_descriptor | vertex_descriptor |
A BGL vertex descriptor representing a vertex of the surface mesh. | |
typedef boost::graph_traits< TriangleMesh >::halfedge_descriptor | halfedge_descriptor |
A BGL halfedge descriptor representing a halfedge of the surface mesh. | |
typedef boost::graph_traits< TriangleMesh >::edge_descriptor | edge_descriptor |
A BGL edge descriptor representing an edge of the surface mesh. | |
typedef boost::graph_traits< TriangleMesh >::edges_size_type | edges_size_type |
The unsigned integer type used for representing the number of edges in the graph. | |
typedef boost::property_traits< VertexPointMap >::value_type | Point |
The point type for the surface mesh vertex. | |
typedef GeomTraits::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. | |
const Point & | p0 () const |
The point of vertex v0 . | |
const Point & | 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_descriptor > | 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). | |
std::vector< halfedge_descriptor > | border_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 Triangle_mesh & | surface_mesh () const |
Returns the surface mesh the edge belongs to. | |
const Vertex_point_map & | vertex_point_map () const |
Returns the vertex point property map. | |
const Geom_traits & | geom_traits () const |
Returns the geometric traits class. | |
typedef boost::graph_traits<TriangleMesh>::edge_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::edge_descriptor |
A BGL edge descriptor representing an edge of the surface mesh.
typedef boost::graph_traits<TriangleMesh>::edges_size_type CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::edges_size_type |
The unsigned integer type used for representing the number of edges in the graph.
typedef GeomTraits::FT CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::FT |
The coordinate type of points.
typedef GeomTraits CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::Geom_traits |
The type of a kernel-like objects used for predicates and constructions.
typedef boost::graph_traits<TriangleMesh>::halfedge_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::halfedge_descriptor |
A BGL halfedge descriptor representing a halfedge of the surface mesh.
typedef boost::property_traits<VertexPointMap>::value_type CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::Point |
The point type for the surface mesh vertex.
typedef TriangleMesh CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::Triangle_mesh |
The type of the surface mesh to simplify.
typedef boost::graph_traits<TriangleMesh>::vertex_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::vertex_descriptor |
A BGL vertex descriptor representing a vertex of the surface mesh.
typedef VertexPointMap CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::Vertex_point_map |
The type of a property map that maps vertices on points.
std::vector< halfedge_descriptor > CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::border_edges | ( | ) | const |
The unique collection of the border directed edges incident upon v0
and v1
.
const Geom_traits & CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::geom_traits | ( | ) | const |
Returns the geometric traits class.
bool CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::left_face_exists | ( | ) | const |
Indicates if v0v1
belongs to a finite face of the surface mesh (i.e, v0v1
is not a border edge).
std::vector< vertex_descriptor > CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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.
const Point & CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::p0 | ( | ) | const |
The point of vertex v0
.
const Point & CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::p1 | ( | ) | const |
The point of vertex v1
.
bool CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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 Triangle_mesh & CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::surface_mesh | ( | ) | const |
Returns the surface mesh the edge belongs to.
vertex_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::v0 | ( | ) | const |
One of vertices of the edge to be collapsed.
halfedge_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::v0_v1 | ( | ) | const |
One of the directed edges corresponding to the halfedge being collapsed.
halfedge_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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.
vertex_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::v1 | ( | ) | const |
The other vertex of the edge to be collapsed.
halfedge_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::v1_v0 | ( | ) | const |
The other directed edge corresponding to the halfedge being collapsed.
halfedge_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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.
const Vertex_point_map & CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::vertex_point_map | ( | ) | const |
Returns the vertex point property map.
vertex_descriptor CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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 CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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 CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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 CGAL::Surface_mesh_simplification::Edge_profile< TriangleMesh, VertexPointMap, GeomTraits >::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.