The class provides methods for detecting doublets and singlets and removing them. More...
#include <halfedge_quad_clean.h>
Static Public Member Functions | |
template<class PriorityType > | |
static void | flip_edges (MeshType &m, vector< HEdgePointer > &hedges, set< FacePointer > &faces) |
template<class PriorityType > | |
static int | flip_edges (MeshType &m) |
static bool | has_doublets (MeshType &m) |
static bool | has_singlets (MeshType &m) |
static void | remove_doublets (MeshType &m, set< FacePointer > &faces, vector< VertexPointer > vertices) |
static void | remove_doublets (MeshType &m, vector< VertexPointer > vertices) |
static void | remove_doublets (MeshType &m, set< FacePointer > &faces) |
static int | remove_doublets (MeshType &m) |
static int | remove_singlets (MeshType &m) |
Protected Types | |
typedef MeshType::EdgeIterator | EdgeIterator |
typedef MeshType::EdgePointer | EdgePointer |
typedef MeshType::FaceIterator | FaceIterator |
typedef MeshType::FacePointer | FacePointer |
typedef MeshType::HEdgeIterator | HEdgeIterator |
typedef MeshType::HEdgePointer | HEdgePointer |
typedef MeshType::VertexIterator | VertexIterator |
typedef MeshType::VertexPointer | VertexPointer |
Static Protected Member Functions | |
static void | add_faces (queue< FacePointer > &q, VertexPointer vp) |
static FacePointer | remove_doublet (MeshType &m, FacePointer fp, queue< FacePointer > *q=NULL) |
static void | remove_doublets (MeshType &m, set< FacePointer > &faces, queue< FacePointer > &q) |
The class provides methods for detecting doublets and singlets and removing them.
Definition at line 21 of file halfedge_quad_clean.h.
typedef MeshType::EdgeIterator vcg::tri::HalfedgeQuadClean< MeshType >::EdgeIterator [protected] |
Definition at line 32 of file halfedge_quad_clean.h.
typedef MeshType::EdgePointer vcg::tri::HalfedgeQuadClean< MeshType >::EdgePointer [protected] |
Definition at line 27 of file halfedge_quad_clean.h.
typedef MeshType::FaceIterator vcg::tri::HalfedgeQuadClean< MeshType >::FaceIterator [protected] |
Definition at line 34 of file halfedge_quad_clean.h.
typedef MeshType::FacePointer vcg::tri::HalfedgeQuadClean< MeshType >::FacePointer [protected] |
Definition at line 29 of file halfedge_quad_clean.h.
typedef MeshType::HEdgeIterator vcg::tri::HalfedgeQuadClean< MeshType >::HEdgeIterator [protected] |
Definition at line 33 of file halfedge_quad_clean.h.
typedef MeshType::HEdgePointer vcg::tri::HalfedgeQuadClean< MeshType >::HEdgePointer [protected] |
Definition at line 28 of file halfedge_quad_clean.h.
typedef MeshType::VertexIterator vcg::tri::HalfedgeQuadClean< MeshType >::VertexIterator [protected] |
Definition at line 31 of file halfedge_quad_clean.h.
typedef MeshType::VertexPointer vcg::tri::HalfedgeQuadClean< MeshType >::VertexPointer [protected] |
Definition at line 26 of file halfedge_quad_clean.h.
static void vcg::tri::HalfedgeQuadClean< MeshType >::add_faces | ( | queue< FacePointer > & | q, |
VertexPointer | vp | ||
) | [inline, static, protected] |
Adds to a queue all faces on the 1-ring of a given vertex
q | Queue of faces |
vp | Pointer to the vertex |
Definition at line 42 of file halfedge_quad_clean.h.
static void vcg::tri::HalfedgeQuadClean< MeshType >::flip_edges | ( | MeshType & | m, |
vector< HEdgePointer > & | hedges, | ||
set< FacePointer > & | faces | ||
) | [inline, static] |
Performs rotation of selected edges computing the best rotation
m | Mesh |
hedges | Vector of halfedges representing the edges to rotate |
faces | Set of modified faces (every modified face will be inserted into this set) |
Definition at line 365 of file halfedge_quad_clean.h.
static int vcg::tri::HalfedgeQuadClean< MeshType >::flip_edges | ( | MeshType & | m | ) | [inline, static] |
Performs edge rotations on the entire mesh computing the best rotation for each edge
m | Mesh |
Definition at line 409 of file halfedge_quad_clean.h.
static bool vcg::tri::HalfedgeQuadClean< MeshType >::has_doublets | ( | MeshType & | m | ) | [inline, static] |
Checks if a mesh has doublets
m | Mesh |
Definition at line 341 of file halfedge_quad_clean.h.
static bool vcg::tri::HalfedgeQuadClean< MeshType >::has_singlets | ( | MeshType & | m | ) | [inline, static] |
Checks if a mesh has singlets
m | Mesh |
Definition at line 320 of file halfedge_quad_clean.h.
static FacePointer vcg::tri::HalfedgeQuadClean< MeshType >::remove_doublet | ( | MeshType & | m, |
FacePointer | fp, | ||
queue< FacePointer > * | q = NULL |
||
) | [inline, static, protected] |
Removes a doublet and all the other ones that the removal may have generated
m | Mesh |
fp | Pointer to the face to clean from doublets |
Queue | of faces to check for new doublets |
Definition at line 83 of file halfedge_quad_clean.h.
static void vcg::tri::HalfedgeQuadClean< MeshType >::remove_doublets | ( | MeshType & | m, |
set< FacePointer > & | faces, | ||
queue< FacePointer > & | q | ||
) | [inline, static, protected] |
Removes doublets from all the faces into a queue until the queue empties
m | Mesh |
faces | Set of all faces modified by the removals |
q | Queue of faces to clean |
Definition at line 60 of file halfedge_quad_clean.h.
static void vcg::tri::HalfedgeQuadClean< MeshType >::remove_doublets | ( | MeshType & | m, |
set< FacePointer > & | faces, | ||
vector< VertexPointer > | vertices | ||
) | [inline, static] |
Removes doublets from all the faces on the 1-ring of the given vertices
m | Mesh |
Set | of all faces modified by the removals |
vertices | Vector of vertices that will be |
Definition at line 198 of file halfedge_quad_clean.h.
static void vcg::tri::HalfedgeQuadClean< MeshType >::remove_doublets | ( | MeshType & | m, |
vector< VertexPointer > | vertices | ||
) | [inline, static] |
Removes doublets from all the faces on the 1-ring of the given vertices
m | Mesh |
vertices | Vector of vertices that will be |
Definition at line 223 of file halfedge_quad_clean.h.
static void vcg::tri::HalfedgeQuadClean< MeshType >::remove_doublets | ( | MeshType & | m, |
set< FacePointer > & | faces | ||
) | [inline, static] |
Removes doublets from a set of faces
m | Mesh |
set | of faces to clean |
Definition at line 236 of file halfedge_quad_clean.h.
static int vcg::tri::HalfedgeQuadClean< MeshType >::remove_doublets | ( | MeshType & | m | ) | [inline, static] |
Removes all doublets from a mesh
m | Mesh |
Definition at line 259 of file halfedge_quad_clean.h.
static int vcg::tri::HalfedgeQuadClean< MeshType >::remove_singlets | ( | MeshType & | m | ) | [inline, static] |
Removes all singlets from a mesh
m | Mesh |
Definition at line 288 of file halfedge_quad_clean.h.