This class is used to build edge based data structure from indexed data structure and viceversa. More...
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 46 of file halfedge_indexed.h.
typedef std::vector<bool> vcg::tri::UpdateHalfEdges< MeshType >::BitVector |
Definition at line 74 of file halfedge_indexed.h.
typedef MeshType::EdgeIterator vcg::tri::UpdateHalfEdges< MeshType >::EdgeIterator |
Definition at line 55 of file halfedge_indexed.h.
typedef MeshType::EdgePointer vcg::tri::UpdateHalfEdges< MeshType >::EdgePointer |
Definition at line 53 of file halfedge_indexed.h.
typedef MeshType::EdgeType vcg::tri::UpdateHalfEdges< MeshType >::EdgeType |
Definition at line 54 of file halfedge_indexed.h.
typedef MeshType::FaceIterator vcg::tri::UpdateHalfEdges< MeshType >::FaceIterator |
Definition at line 57 of file halfedge_indexed.h.
typedef MeshType::FaceType vcg::tri::UpdateHalfEdges< MeshType >::FaceType |
Definition at line 58 of file halfedge_indexed.h.
typedef MeshType::HEdgeIterator vcg::tri::UpdateHalfEdges< MeshType >::HEdgeIterator |
Definition at line 56 of file halfedge_indexed.h.
typedef MeshType::HEdgePointer vcg::tri::UpdateHalfEdges< MeshType >::HEdgePointer |
Definition at line 51 of file halfedge_indexed.h.
typedef MeshType::HEdgeType vcg::tri::UpdateHalfEdges< MeshType >::HEdgeType |
Definition at line 52 of file halfedge_indexed.h.
typedef MeshType::VertexIterator vcg::tri::UpdateHalfEdges< MeshType >::VertexIterator |
Definition at line 50 of file halfedge_indexed.h.
typedef MeshType::VertexPointer vcg::tri::UpdateHalfEdges< MeshType >::VertexPointer |
Definition at line 49 of file halfedge_indexed.h.
typedef MeshType::VertexType vcg::tri::UpdateHalfEdges< MeshType >::VertexType |
Definition at line 48 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 472 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 259 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 245 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 81 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 446 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 451 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 433 of file halfedge_indexed.h.