Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
OpenMesh::TriMeshT< Kernel > Class Template Reference

#include <OpenMesh/Mesh/TriMeshT.hh>

Inheritance diagram for OpenMesh::TriMeshT< Kernel >:
OpenMesh::PolyMeshT< Kernel > OpenMesh::Kernel_OSG::TriMesh_OSGArrayKernelT< Traits > OpenMesh::TriMesh_ArrayKernelT< Traits >

Public Types

typedef TriMeshT< Kernel > This
typedef PolyMeshT< Kernel > PolyMesh
typedef PolyMesh::Scalar Scalar
typedef PolyMesh::Point Point
typedef PolyMesh::Normal Normal
typedef PolyMesh::Color Color
typedef PolyMesh::TexCoord1D TexCoord1D
typedef PolyMesh::TexCoord2D TexCoord2D
typedef PolyMesh::TexCoord3D TexCoord3D
typedef PolyMesh::Vertex Vertex
typedef PolyMesh::Halfedge Halfedge
typedef PolyMesh::Edge Edge
typedef PolyMesh::Face Face
typedef PolyMesh::VertexHandle VertexHandle
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
typedef
PolyMesh::VertexOHalfedgeIter 
VertexOHalfedgeIter
typedef
PolyMesh::VertexIHalfedgeIter 
VertexIHalfedgeIter
typedef PolyMesh::VertexEdgeIter VertexEdgeIter
typedef PolyMesh::VertexFaceIter VertexFaceIter
typedef PolyMesh::FaceVertexIter FaceVertexIter
typedef PolyMesh::FaceHalfedgeIter FaceHalfedgeIter
typedef PolyMesh::FaceEdgeIter FaceEdgeIter
typedef PolyMesh::FaceFaceIter FaceFaceIter
typedef
PolyMesh::ConstVertexVertexIter 
ConstVertexVertexIter
typedef
PolyMesh::ConstVertexOHalfedgeIter 
ConstVertexOHalfedgeIter
typedef
PolyMesh::ConstVertexIHalfedgeIter 
ConstVertexIHalfedgeIter
typedef
PolyMesh::ConstVertexEdgeIter 
ConstVertexEdgeIter
typedef
PolyMesh::ConstVertexFaceIter 
ConstVertexFaceIter
typedef
PolyMesh::ConstFaceVertexIter 
ConstFaceVertexIter
typedef
PolyMesh::ConstFaceHalfedgeIter 
ConstFaceHalfedgeIter
typedef PolyMesh::ConstFaceEdgeIter ConstFaceEdgeIter
typedef PolyMesh::ConstFaceFaceIter ConstFaceFaceIter
- Public Types inherited from OpenMesh::PolyMeshT< Kernel >
typedef PolyMeshT< Kernel > This
 Self type. Used to specify iterators/circulators.
typedef Kernel::VertexHandle VertexHandle
 Handle for referencing the corresponding item.
typedef Kernel::HalfedgeHandle HalfedgeHandle
typedef Kernel::EdgeHandle EdgeHandle
typedef Kernel::FaceHandle FaceHandle
typedef Kernel::VertexIter VertexIter
typedef Kernel::HalfedgeIter HalfedgeIter
typedef Kernel::EdgeIter EdgeIter
typedef Kernel::FaceIter FaceIter
typedef Kernel::ConstVertexIter ConstVertexIter
typedef Kernel::ConstHalfedgeIter ConstHalfedgeIter
typedef Kernel::ConstEdgeIter ConstEdgeIter
typedef Kernel::ConstFaceIter ConstFaceIter
typedef Kernel::Scalar Scalar
 Scalar type.
typedef Kernel::Point Point
 Coordinate type.
typedef Kernel::Normal Normal
 Normal type.
typedef Kernel::Color Color
 Color type.
typedef Kernel::TexCoord1D TexCoord1D
 TexCoord1D type.
typedef Kernel::TexCoord2D TexCoord2D
 TexCoord2D type.
typedef Kernel::TexCoord3D TexCoord3D
 TexCoord3D type.
typedef Kernel::Vertex Vertex
 Vertex type.
typedef Kernel::Halfedge Halfedge
 Halfedge type.
typedef Kernel::Edge Edge
 Edge type.
typedef Kernel::Face Face
 Face type.
typedef Kernel::VertexVertexIter VertexVertexIter
 Circulator.
typedef Kernel::VertexOHalfedgeIter VertexOHalfedgeIter
 Circulator.
typedef Kernel::VertexIHalfedgeIter VertexIHalfedgeIter
 Circulator.
typedef Kernel::VertexEdgeIter VertexEdgeIter
 Circulator.
typedef Kernel::VertexFaceIter VertexFaceIter
 Circulator.
typedef Kernel::FaceVertexIter FaceVertexIter
 Circulator.
typedef Kernel::FaceHalfedgeIter FaceHalfedgeIter
 Circulator.
typedef Kernel::FaceEdgeIter FaceEdgeIter
 Circulator.
typedef Kernel::FaceFaceIter FaceFaceIter
 Circulator.
typedef
Kernel::ConstVertexVertexIter 
ConstVertexVertexIter
 Circulator.
typedef
Kernel::ConstVertexOHalfedgeIter 
ConstVertexOHalfedgeIter
 Circulator.
typedef
Kernel::ConstVertexIHalfedgeIter 
ConstVertexIHalfedgeIter
 Circulator.
typedef Kernel::ConstVertexEdgeIter ConstVertexEdgeIter
 Circulator.
typedef Kernel::ConstVertexFaceIter ConstVertexFaceIter
 Circulator.
typedef Kernel::ConstFaceVertexIter ConstFaceVertexIter
 Circulator.
typedef
Kernel::ConstFaceHalfedgeIter 
ConstFaceHalfedgeIter
 Circulator.
typedef Kernel::ConstFaceEdgeIter ConstFaceEdgeIter
 Circulator.
typedef Kernel::ConstFaceFaceIter ConstFaceFaceIter
 Circulator.
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

 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)
VertexHandle split (EdgeHandle _eh, const Point &_p)
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 vector computation
Normal calc_face_normal (FaceHandle _fh) const
- Public Member Functions inherited from OpenMesh::PolyMeshT< Kernel >
VertexHandle new_vertex ()
VertexHandle new_vertex (const Point &_p)
VertexHandle add_vertex (const Point &_p)
void calc_edge_vector (EdgeHandle _eh, Normal &_edge_vec) const
void calc_edge_vector (HalfedgeHandle _heh, Normal &_edge_vec) const
Scalar calc_edge_length (EdgeHandle _eh) const
Scalar calc_edge_length (HalfedgeHandle _heh) const
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
Scalar calc_sector_angle (HalfedgeHandle _in_heh) const
void calc_sector_normal (HalfedgeHandle _in_heh, Normal &_sector_normal) const
Scalar calc_sector_area (HalfedgeHandle _in_heh) const
Scalar calc_dihedral_angle_fast (HalfedgeHandle _heh) const
Scalar calc_dihedral_angle_fast (EdgeHandle _eh) const
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))
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
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
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
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.
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 )
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 )

Additional Inherited Members

- Static Public Member Functions inherited from OpenMesh::PolyMeshT< Kernel >

Detailed Description

template<class Kernel>
class OpenMesh::TriMeshT< Kernel >

Base type for a triangle mesh.

Base type for a triangle mesh, parameterized by a mesh kernel. The mesh inherits all methods from the kernel class and the more general polygonal mesh PolyMeshT. Therefore it provides the same types for items, handles, iterators and so on.

Parameters
Kernel,:template argument for the mesh kernel
Note
You should use the predefined mesh-kernel combinations in Predefined Mesh Types
See Also
Specifying your MyMesh
OpenMesh::PolyMeshT

Definition at line 88 of file TriMeshT.hh.

Member Function Documentation

template<class Kernel >
TriMeshT< Kernel >::Normal OpenMesh::TriMeshT< Kernel >::calc_face_normal ( FaceHandle  _fh) const
virtual

Calculate normal vector for face _fh (specialized for TriMesh).

Reimplemented from OpenMesh::PolyMeshT< Kernel >.

Definition at line 72 of file TriMeshT.cc.

template<class Kernel>
VertexHandle OpenMesh::TriMeshT< Kernel >::split ( EdgeHandle  _eh,
const Point _p 
)
inline

Edge split (= 2-to-4 split) Do not call PolyMeshT function below as this does the wrong operation

Reimplemented from OpenMesh::PolyMeshT< Kernel >.

Definition at line 181 of file TriMeshT.hh.


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