OpenMesh
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
OpenMesh::TriMesh_ArrayKernelT< Traits > Class Template Reference

Triangle mesh based on the ArrayKernel. More...

#include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>

Inheritance diagram for OpenMesh::TriMesh_ArrayKernelT< Traits >:
Collaboration diagram for OpenMesh::TriMesh_ArrayKernelT< Traits >:

List of all members.

Additional Inherited Members

- Public Types inherited from OpenMesh::TriMeshT< Kernel >
typedef TriMeshT< Kernel > This
 Self type. Used to specify iterators/circulators.
typedef PolyMeshT< Kernel > PolyMesh
typedef PolyMesh::Scalar Scalar
 Scalar type.
typedef PolyMesh::Point Point
 Coordinate type.
typedef PolyMesh::Normal Normal
 Normal type.
typedef PolyMesh::Color Color
 Color type.
typedef PolyMesh::TexCoord1D TexCoord1D
 TexCoord1D type.
typedef PolyMesh::TexCoord2D TexCoord2D
 TexCoord2D type.
typedef PolyMesh::TexCoord3D TexCoord3D
 TexCoord3D type.
typedef PolyMesh::Vertex Vertex
 Vertex type.
typedef PolyMesh::Halfedge Halfedge
 Halfedge type.
typedef PolyMesh::Edge Edge
 Edge type.
typedef PolyMesh::Face Face
 Face type.
typedef PolyMesh::VertexHandle VertexHandle
 Handle for referencing the corresponding item.
typedef PolyMesh::HalfedgeHandle HalfedgeHandle
typedef PolyMesh::EdgeHandle EdgeHandle
typedef PolyMesh::FaceHandle FaceHandle
typedef PolyMesh::VertexIter VertexIter
typedef PolyMesh::ConstVertexIter ConstVertexIter
typedef PolyMesh::EdgeIter EdgeIter
typedef PolyMesh::ConstEdgeIter ConstEdgeIter
typedef PolyMesh::FaceIter FaceIter
typedef PolyMesh::ConstFaceIter ConstFaceIter
typedef PolyMesh::VertexVertexIter VertexVertexIter
 Circulator.
typedef
PolyMesh::VertexOHalfedgeIter 
VertexOHalfedgeIter
 Circulator.
typedef
PolyMesh::VertexIHalfedgeIter 
VertexIHalfedgeIter
 Circulator.
typedef PolyMesh::VertexEdgeIter VertexEdgeIter
 Circulator.
typedef PolyMesh::VertexFaceIter VertexFaceIter
 Circulator.
typedef PolyMesh::FaceVertexIter FaceVertexIter
 Circulator.
typedef PolyMesh::FaceHalfedgeIter FaceHalfedgeIter
 Circulator.
typedef PolyMesh::FaceEdgeIter FaceEdgeIter
 Circulator.
typedef PolyMesh::FaceFaceIter FaceFaceIter
 Circulator.
typedef
PolyMesh::ConstVertexVertexIter 
ConstVertexVertexIter
 Circulator.
typedef
PolyMesh::ConstVertexOHalfedgeIter 
ConstVertexOHalfedgeIter
 Circulator.
typedef
PolyMesh::ConstVertexIHalfedgeIter 
ConstVertexIHalfedgeIter
 Circulator.
typedef
PolyMesh::ConstVertexEdgeIter 
ConstVertexEdgeIter
 Circulator.
typedef
PolyMesh::ConstVertexFaceIter 
ConstVertexFaceIter
 Circulator.
typedef
PolyMesh::ConstFaceVertexIter 
ConstFaceVertexIter
 Circulator.
typedef
PolyMesh::ConstFaceHalfedgeIter 
ConstFaceHalfedgeIter
 Circulator.
typedef PolyMesh::ConstFaceEdgeIter ConstFaceEdgeIter
 Circulator.
typedef PolyMesh::ConstFaceFaceIter ConstFaceFaceIter
 Circulator.
enum  { IsPolyMesh = 0 }
 Determine whether this is a PolyMeshT or TriMeshT ( This function does not check the per face vertex count! It only checks if the datatype is PolyMeshT or TriMeshT )
enum  { IsTriMesh = 1 }
 Determine whether this is a PolyMeshT or TriMeshT ( This function does not check the per face vertex count! It only checks if the datatype is PolyMeshT or TriMeshT )
- Public Types inherited from OpenMesh::PolyMeshT< Kernel >
typedef Kernel::HalfedgeIter HalfedgeIter
typedef Kernel::ConstHalfedgeIter ConstHalfedgeIter
enum  { IsPolyMesh = 1 }
 Determine whether this is a PolyMeshT or TriMeshT ( This function does not check the per face vertex count! It only checks if the datatype is PolyMeshT or TriMeshT )
enum  { IsTriMesh = 0 }
 Determine whether this is a PolyMeshT or TriMeshT ( This function does not check the per face vertex count! It only checks if the datatype is PolyMeshT or TriMeshT )
- Public Member Functions inherited from OpenMesh::TriMeshT< Kernel >
 TriMeshT ()
 Default constructor.
virtual ~TriMeshT ()
 Destructor.
HalfedgeHandle vertex_split (Point _v0_point, VertexHandle _v1, VertexHandle _vl, VertexHandle _vr)
 Vertex Split: inverse operation to collapse().
HalfedgeHandle vertex_split (VertexHandle _v0, VertexHandle _v1, VertexHandle _vl, VertexHandle _vr)
void split (EdgeHandle _eh, const Point &_p)
 Edge split (= 2-to-4 split) Do not call PolyMeshT function below as this does the wrong operation.
void split (EdgeHandle _eh, VertexHandle _vh)
void split (FaceHandle _fh, const Point &_p)
 Face split (= 1-to-3 split, calls corresponding PolyMeshT function).
void split (FaceHandle _fh, VertexHandle _vh)
Normal calc_face_normal (FaceHandle _fh) const
 Calculate normal vector for face _fh (specialized for TriMesh).
- Public Member Functions inherited from OpenMesh::PolyMeshT< Kernel >
VertexHandle new_vertex ()
 Uses default copy and assignment operator.
VertexHandle new_vertex (const Point &_p)
VertexHandle add_vertex (const Point &_p)
void calc_edge_vector (EdgeHandle _eh, Normal &_edge_vec) const
 Calculates the edge vector as the vector defined by the halfedge with id #0 (see below)
void calc_edge_vector (HalfedgeHandle _heh, Normal &_edge_vec) const
 Calculates the edge vector as the difference of the the points defined by to_vertex_handle() and from_vertex_handle()
Scalar calc_edge_length (EdgeHandle _eh) const
Scalar calc_edge_length (HalfedgeHandle _heh) const
 Calculates the length of the edge _heh.
Scalar calc_edge_sqr_length (EdgeHandle _eh) const
Scalar calc_edge_sqr_length (HalfedgeHandle _heh) const
void calc_sector_vectors (HalfedgeHandle _in_heh, Normal &_vec0, Normal &_vec1) const
 defines a consistent representation of a sector geometry: the halfedge _in_heh defines the sector orientation the vertex pointed by _in_heh defines the sector center _vec0 and _vec1 are resp.
Scalar calc_sector_angle (HalfedgeHandle _in_heh) const
 calculates the sector angle.
void calc_sector_normal (HalfedgeHandle _in_heh, Normal &_sector_normal) const
 calculates the normal (non-normalized) of the face sector defined by the angle <(_in_heh,next_halfedge(_in_heh))
Scalar calc_sector_area (HalfedgeHandle _in_heh) const
 calculates the area of the face sector defined by the angle <(_in_heh,next_halfedge(_in_heh)) NOTE: special cases (e.g.
Scalar calc_dihedral_angle_fast (HalfedgeHandle _heh) const
 calculates the dihedral angle on the halfedge _heh
Scalar calc_dihedral_angle_fast (EdgeHandle _eh) const
 calculates the dihedral angle on the edge _eh
Scalar calc_dihedral_angle (HalfedgeHandle _heh) const
Scalar calc_dihedral_angle (EdgeHandle _eh) const
uint find_feature_edges (Scalar _angle_tresh=OpenMesh::deg_to_rad(44.0))
 tags an edge as a feature if its dihedral angle is larger than _angle_tresh returns the number of the found feature edges, requires edge_status property
void update_normals ()
 Compute normals for all primitives.
void update_normal (FaceHandle _fh)
 Update normal for face _fh.
void update_face_normals ()
 Update normal vectors for all faces.
Normal calc_face_normal (const Point &_p0, const Point &_p1, const Point &_p2) const
 Calculate normal vector for face (_p0, _p1, _p2).
void calc_face_centroid (FaceHandle _fh, Point &_pt) const
 calculates the average of the vertices defining _fh
void update_normal (HalfedgeHandle _heh, const double _feature_angle=0.8)
 Update normal for halfedge _heh.
void update_halfedge_normals (const double _feature_angle=0.8)
 Update normal vectors for all halfedges.
virtual Normal calc_halfedge_normal (HalfedgeHandle _heh, const double _feature_angle=0.8) const
 Calculate halfedge normal for one specific halfedge.
bool is_estimated_feature_edge (HalfedgeHandle _heh, const double _feature_angle) const
 identifies feature edges w.r.t.
void update_normal (VertexHandle _vh)
 Update normal for vertex _vh.
void update_vertex_normals ()
 Update normal vectors for all vertices.
Normal calc_vertex_normal (VertexHandle _vh) const
 Calculate vertex normal for one specific vertex.
void calc_vertex_normal_fast (VertexHandle _vh, Normal &_n) const
 Different methods for calculation of the normal at _vh:
void calc_vertex_normal_correct (VertexHandle _vh, Normal &_n) const
 Compute normals for all primitives.
void calc_vertex_normal_loop (VertexHandle _vh, Normal &_n) const
 Compute normals for all primitives.
static bool is_polymesh ()
 Determine whether this is a PolyMeshT or TriMeshT ( This function does not check the per face vertex count! It only checks if the datatype is PolyMeshT or TriMeshT )
static bool is_trimesh ()
 Determine whether this is a PolyMeshT or TriMeshT ( This function does not check the per face vertex count! It only checks if the datatype is PolyMeshT or TriMeshT )

Detailed Description

template<class Traits = DefaultTraits>
class OpenMesh::TriMesh_ArrayKernelT< Traits >

Triangle mesh based on the ArrayKernel.

See also:
OpenMesh::TriMeshT
OpenMesh::ArrayKernelT

The documentation for this class was generated from the following file:

acg pic Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .