This class is used to build edge based data structure from indexed data structure and viceversa. More...
#include <halfedge_indexed.h>
Classes | |
struct | FacePtrInt |
struct | VertexPairEdgePtr |
Public Types | |
typedef std::vector< bool > | BitVector |
typedef MeshType::EdgeIterator | EdgeIterator |
typedef MeshType::EdgePointer | EdgePointer |
typedef MeshType::EdgeType | EdgeType |
typedef MeshType::FaceIterator | FaceIterator |
typedef MeshType::FaceType | FaceType |
typedef MeshType::HEdgeIterator | HEdgeIterator |
typedef MeshType::HEdgePointer | HEdgePointer |
typedef MeshType::HEdgeType | HEdgeType |
typedef MeshType::VertexIterator | VertexIterator |
typedef MeshType::VertexPointer | VertexPointer |
typedef MeshType::VertexType | VertexType |
Static Public Member Functions | |
static void | AddHEdge (MeshType &m, HEdgeType *e0, HEdgeType *e1) |
static bool | CheckConsistency (MeshType &m) |
static bool | CheckConsistency_FHp (MeshType &m) |
static void | FromIndexed (MeshType &m) |
static void | RemoveHEdge (MeshType &m, HEdgeType *e) |
Static Private Member Functions | |
static void | MergeFaces (FaceType *, FaceType *) |
static HEdgeType * | PreviousEdge (HEdgeType *e0) |
static void | SetRelationsLoopFace (HEdgeType *e0, FaceType *f) |
This class is used to build edge based data structure from indexed data structure and viceversa.
Definition at line 40 of file halfedge_indexed.h.
typedef std::vector<bool> vcg::tri::UpdateHalfEdges< MeshType >::BitVector |
Definition at line 68 of file halfedge_indexed.h.
typedef MeshType::EdgeIterator vcg::tri::UpdateHalfEdges< MeshType >::EdgeIterator |
Definition at line 49 of file halfedge_indexed.h.
typedef MeshType::EdgePointer vcg::tri::UpdateHalfEdges< MeshType >::EdgePointer |
Definition at line 47 of file halfedge_indexed.h.
typedef MeshType::EdgeType vcg::tri::UpdateHalfEdges< MeshType >::EdgeType |
Definition at line 48 of file halfedge_indexed.h.
typedef MeshType::FaceIterator vcg::tri::UpdateHalfEdges< MeshType >::FaceIterator |
Definition at line 51 of file halfedge_indexed.h.
typedef MeshType::FaceType vcg::tri::UpdateHalfEdges< MeshType >::FaceType |
Definition at line 52 of file halfedge_indexed.h.
typedef MeshType::HEdgeIterator vcg::tri::UpdateHalfEdges< MeshType >::HEdgeIterator |
Definition at line 50 of file halfedge_indexed.h.
typedef MeshType::HEdgePointer vcg::tri::UpdateHalfEdges< MeshType >::HEdgePointer |
Definition at line 45 of file halfedge_indexed.h.
typedef MeshType::HEdgeType vcg::tri::UpdateHalfEdges< MeshType >::HEdgeType |
Definition at line 46 of file halfedge_indexed.h.
typedef MeshType::VertexIterator vcg::tri::UpdateHalfEdges< MeshType >::VertexIterator |
Definition at line 44 of file halfedge_indexed.h.
typedef MeshType::VertexPointer vcg::tri::UpdateHalfEdges< MeshType >::VertexPointer |
Definition at line 43 of file halfedge_indexed.h.
typedef MeshType::VertexType vcg::tri::UpdateHalfEdges< MeshType >::VertexType |
Definition at line 42 of file halfedge_indexed.h.
static void vcg::tri::UpdateHalfEdges< MeshType >::AddHEdge | ( | MeshType & | m, |
HEdgeType * | e0, | ||
HEdgeType * | e1 | ||
) | [inline, static] |
Adds an edge between the sources of e0 and e1 and set all the topology relations. If the edges store the pointers to the faces then a new face is created. <--- e1 ---- X <------e1_HEPp--- ^ || ei0 || ei1 || v ----e0_HEPp-> X ----- e0 ------>
Definition at line 474 of file halfedge_indexed.h.
static bool vcg::tri::UpdateHalfEdges< MeshType >::CheckConsistency | ( | MeshType & | m | ) | [inline, static] |
Checks that half edges and face relation are consistent
Definition at line 262 of file halfedge_indexed.h.
static bool vcg::tri::UpdateHalfEdges< MeshType >::CheckConsistency_FHp | ( | MeshType & | m | ) | [inline, static] |
Checks pointers FHEp() are valid
Definition at line 248 of file halfedge_indexed.h.
static void vcg::tri::UpdateHalfEdges< MeshType >::FromIndexed | ( | MeshType & | m | ) | [inline, static] |
build a half-edge data structure from an indexed data structure. Note that the half-edges are allocated here for the first time. If you have a mesh where there are already edges, they will be removed and the data lost, so do not use this function to just "update" the topology of half edges.
Definition at line 75 of file halfedge_indexed.h.
static void vcg::tri::UpdateHalfEdges< MeshType >::MergeFaces | ( | FaceType * | , |
FaceType * | |||
) | [inline, static, private] |
Merge the two faces. This will probably become a class template or a functor
Definition at line 448 of file halfedge_indexed.h.
static HEdgeType* vcg::tri::UpdateHalfEdges< MeshType >::PreviousEdge | ( | HEdgeType * | e0 | ) | [inline, static, private] |
Find previous hedge in the loop
Definition at line 453 of file halfedge_indexed.h.
static void vcg::tri::UpdateHalfEdges< MeshType >::RemoveHEdge | ( | MeshType & | m, |
HEdgeType * | e | ||
) | [inline, static] |
Detach the topology relations of a given edge <--- e->HENPp -X --- <---------eO_HEPp--- ^ || e || e->HEOp() || v ----e_HEPp--> X ----- e->HEOp->HENPp() ------>
Definition at line 534 of file halfedge_indexed.h.
static void vcg::tri::UpdateHalfEdges< MeshType >::SetRelationsLoopFace | ( | HEdgeType * | e0, |
FaceType * | f | ||
) | [inline, static, private] |
Set the relations HFp(), FHp() from a loop of edges to a face
Definition at line 435 of file halfedge_indexed.h.