OpenMesh::TriConnectivity Class Reference

Connectifity Class for Triangle Meshes. More...

#include <TriConnectivity.hh>

Inheritance diagram for OpenMesh::TriConnectivity:
Inheritance graph
[legend]

List of all members.

Public Member Functions

void assign_connectivity (const PolyConnectivity &_other)
void assign_connectivity (const TriConnectivity &_other)
VertexHandle opposite_he_opposite_vh (HalfedgeHandle _heh) const
VertexHandle opposite_vh (HalfedgeHandle _heh) const
 TriConnectivity ()
virtual ~TriConnectivity ()
Addding items to a mesh

FaceHandle add_face (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2)
 Add and connect a new face.
FaceHandle add_face (const VertexHandle *_vhandles, uint _vhs_size)
 Add and connect a new face.
FaceHandle add_face (const std::vector< VertexHandle > &_vhandles)
Topology modifying operators

void flip (EdgeHandle _eh)
bool is_collapse_ok (HalfedgeHandle _heh)
bool is_flip_ok (EdgeHandle _eh) const
 Check whether flipping _eh is topologically correct.
void split (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-3 split, calls corresponding PolyMeshT function).
void split (EdgeHandle _eh, VertexHandle _vh)
 Edge split (= 2-to-4 split).
HalfedgeHandle vertex_split (VertexHandle v0, VertexHandle v1, VertexHandle vl, VertexHandle vr)
 Vertex Split: inverse operation to collapse().

Static Public Member Functions

static bool is_triangles ()

Private Member Functions

HalfedgeHandle insert_edge (VertexHandle _vh, HalfedgeHandle _h0, HalfedgeHandle _h1)
 Helper for vertex split.
HalfedgeHandle insert_loop (HalfedgeHandle _hh)
 Helper for vertex split.

Detailed Description

Connectifity Class for Triangle Meshes.

Definition at line 51 of file TriConnectivity.hh.


Constructor & Destructor Documentation

OpenMesh::TriConnectivity::TriConnectivity (  )  [inline]

Definition at line 55 of file TriConnectivity.hh.

virtual OpenMesh::TriConnectivity::~TriConnectivity (  )  [inline, virtual]

Definition at line 56 of file TriConnectivity.hh.


Member Function Documentation

FaceHandle OpenMesh::TriConnectivity::add_face ( VertexHandle  _vh0,
VertexHandle  _vh1,
VertexHandle  _vh2 
) [inline]

Add and connect a new face.

Create a new face consisting of three vertices provided by the handles. (The vertices have to be already added to the mesh by add_vertex)

Parameters:
_vh0 First vertex handle
_vh1 Second vertex handle
_vh2 Third vertex handle

Reimplemented from OpenMesh::PolyConnectivity.

Definition at line 84 of file TriConnectivity.hh.

FaceHandle OpenMesh::TriConnectivity::add_face ( const VertexHandle _vhandles,
uint  _vhs_size 
)

Add and connect a new face.

Create a new face consisting of vertices provided by a handle array. (The vertices have to be already added to the mesh by add_vertex)

Parameters:
_vhandles pointer to a sorted list of vertex handles (also defines order in which the vertices are added to the face)
_vhs_size number of vertex handles in the array

Reimplemented from OpenMesh::PolyConnectivity.

FaceHandle OpenMesh::TriConnectivity::add_face ( const std::vector< VertexHandle > &  _vhandles  )  [inline]

Override OpenMesh::Mesh::PolyMeshT::add_face(). Faces that aren't triangles will be triangulated and added. In this case an invalid face handle will be returned.

Reimplemented from OpenMesh::PolyConnectivity.

Definition at line 79 of file TriConnectivity.hh.

void OpenMesh::TriConnectivity::assign_connectivity ( const PolyConnectivity _other  )  [inline]

assign_connectivity() method. See ArrayKernel::assign_connectivity() for more details.

Reimplemented from OpenMesh::PolyConnectivity.

Definition at line 67 of file TriConnectivity.hh.

void OpenMesh::TriConnectivity::assign_connectivity ( const TriConnectivity _other  )  [inline]

assign_connectivity() methods. See ArrayKernel::assign_connectivity() for more details. When the source connectivity is not triangles, in addition "fan" connectivity triangulation is performed

Definition at line 64 of file TriConnectivity.hh.

void OpenMesh::TriConnectivity::flip ( EdgeHandle  _eh  ) 

Flip edge _eh. Check for topological correctness first using is_flip_ok().

HalfedgeHandle OpenMesh::TriConnectivity::insert_edge ( VertexHandle  _vh,
HalfedgeHandle  _h0,
HalfedgeHandle  _h1 
) [private]

Helper for vertex split.

HalfedgeHandle OpenMesh::TriConnectivity::insert_loop ( HalfedgeHandle  _hh  )  [private]

Helper for vertex split.

bool OpenMesh::TriConnectivity::is_collapse_ok ( HalfedgeHandle  _heh  ) 

Returns whether collapsing halfedge _heh is ok or would lead to topological inconsistencies.

Attention:
This method need the Attributes::Status attribute and changes the tagged bit.
bool OpenMesh::TriConnectivity::is_flip_ok ( EdgeHandle  _eh  )  const

Check whether flipping _eh is topologically correct.

static bool OpenMesh::TriConnectivity::is_triangles (  )  [inline, static]

Reimplemented from OpenMesh::PolyConnectivity.

Definition at line 58 of file TriConnectivity.hh.

VertexHandle OpenMesh::TriConnectivity::opposite_he_opposite_vh ( HalfedgeHandle  _heh  )  const [inline]

Returns the opposite vertex to the opposite halfedge of _heh in the face referenced by it returns InvalidVertexHandle if the opposite halfedge is boundary

Definition at line 104 of file TriConnectivity.hh.

VertexHandle OpenMesh::TriConnectivity::opposite_vh ( HalfedgeHandle  _heh  )  const [inline]

Returns the opposite vertex to the halfedge _heh in the face referenced by _heh returns InvalidVertexHandle if the _heh is boundary

Definition at line 95 of file TriConnectivity.hh.

void OpenMesh::TriConnectivity::split ( FaceHandle  _fh,
VertexHandle  _vh 
) [inline]

Face split (= 1-to-3 split, calls corresponding PolyMeshT function).

Reimplemented from OpenMesh::PolyConnectivity.

Definition at line 133 of file TriConnectivity.hh.

void OpenMesh::TriConnectivity::split ( EdgeHandle  _eh,
VertexHandle  _vh 
)

Edge split (= 2-to-4 split).

HalfedgeHandle OpenMesh::TriConnectivity::vertex_split ( VertexHandle  v0,
VertexHandle  v1,
VertexHandle  vl,
VertexHandle  vr 
)

Vertex Split: inverse operation to collapse().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


openmesh
Author(s): Benjamin Pitzer
autogenerated on Fri Jan 11 12:11:17 2013