Developer Documentation
OpenMesh::TriMeshT< Kernel > Class Template Reference

#include <OpenMesh/Mesh/TriMeshT.hh>

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

Public Types

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

Public Member Functions

 TriMeshT ()
 Default constructor. More...
 
 TriMeshT (PolyMesh rhs)
 
virtual ~TriMeshT ()
 Destructor. More...
 
HalfedgeHandle vertex_split (Point _v0_point, VertexHandle _v1, VertexHandle _vl, VertexHandle _vr)
 Vertex Split: inverse operation to collapse(). More...
 
HalfedgeHandle vertex_split (VertexHandle _v0, VertexHandle _v1, VertexHandle _vl, VertexHandle _vr)
 Vertex Split: inverse operation to collapse(). More...
 
SmartVertexHandle split (EdgeHandle _eh, const Point &_p)
 Edge split (= 2-to-4 split) More...
 
SmartVertexHandle split_copy (EdgeHandle _eh, const Point &_p)
 Edge split (= 2-to-4 split) More...
 
void split (EdgeHandle _eh, VertexHandle _vh)
 Edge split (= 2-to-4 split) More...
 
void split_copy (EdgeHandle _eh, VertexHandle _vh)
 Edge split (= 2-to-4 split) More...
 
SmartVertexHandle split (FaceHandle _fh, const Point &_p)
 Face split (= 1-to-3 split, calls corresponding PolyMeshT function). More...
 
SmartVertexHandle split_copy (FaceHandle _fh, const Point &_p)
 Face split (= 1-to-3 split, calls corresponding PolyMeshT function). More...
 
void split (FaceHandle _fh)
 Face split (= 1-to-4) split, splits edges at midpoints and adds 4 new faces in the interior). More...
 
void split (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-3 split, calls corresponding PolyMeshT function). More...
 
void split_copy (FaceHandle _fh, VertexHandle _vh)
 Face split (= 1-to-3 split, calls corresponding PolyMeshT function). More...
 
Scalar calc_face_area (FaceHandle _fh) const
 Calculates the area of a face. More...
 
Normal vector computation
Normal calc_face_normal (FaceHandle _fh) const
 
- Public Member Functions inherited from OpenMesh::PolyMeshT< Kernel >
 PolyMeshT ()
 Circulator. More...
 
template<typename T >
 PolyMeshT (const T &t)
 Circulator. More...
 
virtual ~PolyMeshT ()
 Circulator. More...
 
template<typename H , typename = SmartHandle<H>>
auto make_smart (H const &h) const -> typename SmartHandle< H >::type const
 Create a smart handle from a regular handle. More...
 
template<typename SH , typename = typename std::enable_if<std::is_base_of<SmartBaseHandle, SH>::value>::type>
SH make_smart (SH const &sh) const
 Return the passed smart handle. This allows for code using make_smart(h) to keep compiling when h's type is changed to a smart handle. More...
 
SmartVertexHandle new_vertex ()
 Adds a new default-initialized vertex. More...
 
SmartVertexHandle new_vertex (const Point _p)
 Adds a new vertex initialized to a custom position. More...
 
SmartVertexHandle new_vertex_dirty (const Point _p)
 
SmartVertexHandle add_vertex (const Point _p)
 
SmartVertexHandle add_vertex_dirty (const Point _p)
 Alias for new_vertex_dirty(). More...
 
void update_normals ()
 Compute normals for all primitives. More...
 
void update_normal (FaceHandle _fh)
 Update normal for face _fh. More...
 
void update_face_normals ()
 Update normal vectors for all faces. More...
 
Normal calc_face_normal (const Point &_p0, const Point &_p1, const Point &_p2) const
 
Normal calc_normal (FaceHandle _fh) const
 same as calc_face_normal More...
 
void calc_face_centroid (FaceHandle _fh, Point &_pt) const
 calculates the average of the vertices defining _fh More...
 
Point calc_face_centroid (FaceHandle _fh) const
 Computes and returns the average of the vertices defining _fh. More...
 
Point calc_centroid (FaceHandle _fh) const
 Computes and returns the average of the vertices defining _fh (same as calc_face_centroid) More...
 
Point calc_centroid (EdgeHandle _eh) const
 Computes and returns the average of the vertices defining _eh (same as calc_edge_midpoint) More...
 
Point calc_centroid (HalfedgeHandle _heh) const
 Computes and returns the average of the vertices defining _heh (same as calc_edge_midpoint for edge of halfedge) More...
 
Point calc_centroid (VertexHandle _vh) const
 Returns the point of _vh. More...
 
Point calc_centroid (MeshHandle _mh) const
 Computes and returns the average of the vertices defining the mesh. More...
 
void update_normal (HalfedgeHandle _heh, const double _feature_angle=0.8)
 Update normal for halfedge _heh. More...
 
void update_halfedge_normals (const double _feature_angle=0.8)
 Update normal vectors for all halfedges. More...
 
virtual Normal calc_halfedge_normal (HalfedgeHandle _heh, const double _feature_angle=0.8) const
 Calculate halfedge normal for one specific halfedge. More...
 
Normal calc_normal (HalfedgeHandle, const double _feature_angle=0.8) const
 same as calc_halfedge_normal More...
 
bool is_estimated_feature_edge (HalfedgeHandle _heh, const double _feature_angle) const
 
void update_normal (VertexHandle _vh)
 Update normal for vertex _vh. More...
 
void update_vertex_normals ()
 Update normal vectors for all vertices. More...
 
Normal calc_vertex_normal (VertexHandle _vh) const
 Calculate vertex normal for one specific vertex. More...
 
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. More...
 
void calc_vertex_normal_loop (VertexHandle _vh, Normal &_n) const
 Compute normals for all primitives. More...
 
Normal calc_normal (VertexHandle _vh) const
 same as calc_vertex_normal_correct More...
 
void calc_edge_vector (EdgeHandle _eh, Normal &_edge_vec) const
 
Normal calc_edge_vector (EdgeHandle _eh) const
 
void calc_edge_vector (HalfedgeHandle _heh, Normal &_edge_vec) const
 
Normal calc_edge_vector (HalfedgeHandle _heh) const
 
Scalar calc_edge_length (EdgeHandle _eh) const
 Compute normals for all primitives. More...
 
Scalar calc_edge_length (HalfedgeHandle _heh) const
 
Scalar calc_edge_sqr_length (EdgeHandle _eh) const
 Compute normals for all primitives. More...
 
Scalar calc_edge_sqr_length (HalfedgeHandle _heh) const
 Compute normals for all primitives. More...
 
Point calc_edge_midpoint (HalfedgeHandle _heh) const
 
Point calc_edge_midpoint (EdgeHandle _eh) const
 
Normal calc_normal (EdgeHandle _eh) const
 calculated and returns the average of the two vertex normals More...
 
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
 Compute normals for all primitives. More...
 
Scalar calc_dihedral_angle (EdgeHandle _eh) const
 Compute normals for all primitives. More...
 
unsigned int find_feature_edges (Scalar _angle_tresh=OpenMesh::deg_to_rad(44.0))
 
void split (FaceHandle _fh, const Point &_p)
 Face split (= 1-to-n split) More...
 
void split (FaceHandle _fh, VertexHandle _vh)
 Compute normals for all primitives. More...
 
void split (EdgeHandle _eh, const Point &_p)
 Compute normals for all primitives. More...
 
void split (EdgeHandle _eh, VertexHandle _vh)
 Compute normals for all primitives. More...
 

Static Public Member Functions

static constexpr 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) More...
 
static constexpr bool is_trimesh ()
 
- Static Public Member Functions inherited from OpenMesh::PolyMeshT< Kernel >
static constexpr 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) More...
 
static constexpr bool is_trimesh ()
 

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
Kerneltemplate 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 91 of file TriMeshT.hh.

Member Typedef Documentation

◆ Color

template<class Kernel >
typedef PolyMesh::Color OpenMesh::TriMeshT< Kernel >::Color

Definition at line 115 of file TriMeshT.hh.

◆ ConnectivityTag

template<class Kernel >
using OpenMesh::TriMeshT< Kernel >::ConnectivityTag = TriConnectivityTag

Definition at line 105 of file TriMeshT.hh.

◆ ConstEdgeIter

template<class Kernel >
typedef PolyMesh::ConstEdgeIter OpenMesh::TriMeshT< Kernel >::ConstEdgeIter

Definition at line 138 of file TriMeshT.hh.

◆ ConstFaceEdgeIter

template<class Kernel >
typedef PolyMesh::ConstFaceEdgeIter OpenMesh::TriMeshT< Kernel >::ConstFaceEdgeIter

Definition at line 162 of file TriMeshT.hh.

◆ ConstFaceFaceIter

template<class Kernel >
typedef PolyMesh::ConstFaceFaceIter OpenMesh::TriMeshT< Kernel >::ConstFaceFaceIter

Definition at line 163 of file TriMeshT.hh.

◆ ConstFaceHalfedgeIter

template<class Kernel >
typedef PolyMesh::ConstFaceHalfedgeIter OpenMesh::TriMeshT< Kernel >::ConstFaceHalfedgeIter

Definition at line 161 of file TriMeshT.hh.

◆ ConstFaceIter

template<class Kernel >
typedef PolyMesh::ConstFaceIter OpenMesh::TriMeshT< Kernel >::ConstFaceIter

Definition at line 140 of file TriMeshT.hh.

◆ ConstFaceVertexIter

template<class Kernel >
typedef PolyMesh::ConstFaceVertexIter OpenMesh::TriMeshT< Kernel >::ConstFaceVertexIter

Definition at line 160 of file TriMeshT.hh.

◆ ConstVertexEdgeIter

template<class Kernel >
typedef PolyMesh::ConstVertexEdgeIter OpenMesh::TriMeshT< Kernel >::ConstVertexEdgeIter

Definition at line 158 of file TriMeshT.hh.

◆ ConstVertexFaceIter

template<class Kernel >
typedef PolyMesh::ConstVertexFaceIter OpenMesh::TriMeshT< Kernel >::ConstVertexFaceIter

Definition at line 159 of file TriMeshT.hh.

◆ ConstVertexIHalfedgeIter

template<class Kernel >
typedef PolyMesh::ConstVertexIHalfedgeIter OpenMesh::TriMeshT< Kernel >::ConstVertexIHalfedgeIter

Definition at line 157 of file TriMeshT.hh.

◆ ConstVertexIter

template<class Kernel >
typedef PolyMesh::ConstVertexIter OpenMesh::TriMeshT< Kernel >::ConstVertexIter

Definition at line 136 of file TriMeshT.hh.

◆ ConstVertexOHalfedgeIter

template<class Kernel >
typedef PolyMesh::ConstVertexOHalfedgeIter OpenMesh::TriMeshT< Kernel >::ConstVertexOHalfedgeIter

Definition at line 156 of file TriMeshT.hh.

◆ ConstVertexVertexIter

template<class Kernel >
typedef PolyMesh::ConstVertexVertexIter OpenMesh::TriMeshT< Kernel >::ConstVertexVertexIter

Definition at line 155 of file TriMeshT.hh.

◆ Edge

template<class Kernel >
typedef PolyMesh::Edge OpenMesh::TriMeshT< Kernel >::Edge

Definition at line 121 of file TriMeshT.hh.

◆ EdgeHandle

template<class Kernel >
typedef PolyMesh::EdgeHandle OpenMesh::TriMeshT< Kernel >::EdgeHandle

Definition at line 129 of file TriMeshT.hh.

◆ EdgeIter

template<class Kernel >
typedef PolyMesh::EdgeIter OpenMesh::TriMeshT< Kernel >::EdgeIter

Definition at line 137 of file TriMeshT.hh.

◆ Face

template<class Kernel >
typedef PolyMesh::Face OpenMesh::TriMeshT< Kernel >::Face

Definition at line 122 of file TriMeshT.hh.

◆ FaceEdgeIter

template<class Kernel >
typedef PolyMesh::FaceEdgeIter OpenMesh::TriMeshT< Kernel >::FaceEdgeIter

Definition at line 153 of file TriMeshT.hh.

◆ FaceFaceIter

template<class Kernel >
typedef PolyMesh::FaceFaceIter OpenMesh::TriMeshT< Kernel >::FaceFaceIter

Definition at line 154 of file TriMeshT.hh.

◆ FaceHalfedgeIter

template<class Kernel >
typedef PolyMesh::FaceHalfedgeIter OpenMesh::TriMeshT< Kernel >::FaceHalfedgeIter

Definition at line 152 of file TriMeshT.hh.

◆ FaceHandle

template<class Kernel >
typedef PolyMesh::FaceHandle OpenMesh::TriMeshT< Kernel >::FaceHandle

Definition at line 130 of file TriMeshT.hh.

◆ FaceIter

template<class Kernel >
typedef PolyMesh::FaceIter OpenMesh::TriMeshT< Kernel >::FaceIter

Definition at line 139 of file TriMeshT.hh.

◆ FaceVertexIter

template<class Kernel >
typedef PolyMesh::FaceVertexIter OpenMesh::TriMeshT< Kernel >::FaceVertexIter

Definition at line 151 of file TriMeshT.hh.

◆ Halfedge

template<class Kernel >
typedef PolyMesh::Halfedge OpenMesh::TriMeshT< Kernel >::Halfedge

Definition at line 120 of file TriMeshT.hh.

◆ HalfedgeHandle

template<class Kernel >
typedef PolyMesh::HalfedgeHandle OpenMesh::TriMeshT< Kernel >::HalfedgeHandle

Definition at line 128 of file TriMeshT.hh.

◆ Normal

template<class Kernel >
typedef PolyMesh::Normal OpenMesh::TriMeshT< Kernel >::Normal

Definition at line 114 of file TriMeshT.hh.

◆ Point

template<class Kernel >
typedef PolyMesh::Point OpenMesh::TriMeshT< Kernel >::Point

Definition at line 113 of file TriMeshT.hh.

◆ PolyMesh

template<class Kernel >
typedef PolyMeshT<Kernel> OpenMesh::TriMeshT< Kernel >::PolyMesh

Definition at line 99 of file TriMeshT.hh.

◆ Scalar

template<class Kernel >
typedef PolyMesh::Scalar OpenMesh::TriMeshT< Kernel >::Scalar

Definition at line 112 of file TriMeshT.hh.

◆ TexCoord1D

template<class Kernel >
typedef PolyMesh::TexCoord1D OpenMesh::TriMeshT< Kernel >::TexCoord1D

Definition at line 116 of file TriMeshT.hh.

◆ TexCoord2D

template<class Kernel >
typedef PolyMesh::TexCoord2D OpenMesh::TriMeshT< Kernel >::TexCoord2D

Definition at line 117 of file TriMeshT.hh.

◆ TexCoord3D

template<class Kernel >
typedef PolyMesh::TexCoord3D OpenMesh::TriMeshT< Kernel >::TexCoord3D

Definition at line 118 of file TriMeshT.hh.

◆ This

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

Definition at line 98 of file TriMeshT.hh.

◆ Vertex

template<class Kernel >
typedef PolyMesh::Vertex OpenMesh::TriMeshT< Kernel >::Vertex

Definition at line 119 of file TriMeshT.hh.

◆ VertexEdgeIter

template<class Kernel >
typedef PolyMesh::VertexEdgeIter OpenMesh::TriMeshT< Kernel >::VertexEdgeIter

Definition at line 149 of file TriMeshT.hh.

◆ VertexFaceIter

template<class Kernel >
typedef PolyMesh::VertexFaceIter OpenMesh::TriMeshT< Kernel >::VertexFaceIter

Definition at line 150 of file TriMeshT.hh.

◆ VertexHandle

template<class Kernel >
typedef PolyMesh::VertexHandle OpenMesh::TriMeshT< Kernel >::VertexHandle

Definition at line 127 of file TriMeshT.hh.

◆ VertexIHalfedgeIter

template<class Kernel >
typedef PolyMesh::VertexIHalfedgeIter OpenMesh::TriMeshT< Kernel >::VertexIHalfedgeIter

Definition at line 148 of file TriMeshT.hh.

◆ VertexIter

template<class Kernel >
typedef PolyMesh::VertexIter OpenMesh::TriMeshT< Kernel >::VertexIter

Definition at line 135 of file TriMeshT.hh.

◆ VertexOHalfedgeIter

template<class Kernel >
typedef PolyMesh::VertexOHalfedgeIter OpenMesh::TriMeshT< Kernel >::VertexOHalfedgeIter

Definition at line 147 of file TriMeshT.hh.

◆ VertexVertexIter

template<class Kernel >
typedef PolyMesh::VertexVertexIter OpenMesh::TriMeshT< Kernel >::VertexVertexIter

Definition at line 146 of file TriMeshT.hh.

Member Enumeration Documentation

◆ anonymous enum

template<class Kernel >
anonymous enum

Definition at line 106 of file TriMeshT.hh.

◆ anonymous enum

template<class Kernel >
anonymous enum

Definition at line 107 of file TriMeshT.hh.

Constructor & Destructor Documentation

◆ TriMeshT() [1/2]

template<class Kernel >
OpenMesh::TriMeshT< Kernel >::TriMeshT ( )
inline

Default constructor.

Definition at line 168 of file TriMeshT.hh.

◆ TriMeshT() [2/2]

template<class Kernel >
OpenMesh::TriMeshT< Kernel >::TriMeshT ( PolyMesh  rhs)
inlineexplicit

Definition at line 169 of file TriMeshT.hh.

◆ ~TriMeshT()

template<class Kernel >
virtual OpenMesh::TriMeshT< Kernel >::~TriMeshT ( )
inlinevirtual

Destructor.

Definition at line 174 of file TriMeshT.hh.

Member Function Documentation

◆ calc_face_area()

template<class Kernel >
Scalar OpenMesh::TriMeshT< Kernel >::calc_face_area ( FaceHandle  _fh) const
inline

Calculates the area of a face.

Parameters
_fhHandle of the face to calculate the area of

Definition at line 427 of file TriMeshT.hh.

◆ calc_face_normal()

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 73 of file TriMeshT_impl.hh.

◆ is_polymesh()

template<class Kernel >
static constexpr bool OpenMesh::TriMeshT< Kernel >::is_polymesh ( )
inlinestaticconstexpr

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)

Definition at line 103 of file TriMeshT.hh.

◆ is_trimesh()

template<class Kernel >
static constexpr bool OpenMesh::TriMeshT< Kernel >::is_trimesh ( )
inlinestaticconstexpr

Definition at line 104 of file TriMeshT.hh.

◆ split() [1/5]

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

Edge split (= 2-to-4 split)

The properties of the new edges will be undefined!

Parameters
_ehEdge handle that should be splitted
_pNew point position that will be inserted at the edge
Returns
Vertex handle of the newly added vertex

Definition at line 275 of file TriMeshT.hh.

◆ split() [2/5]

template<class Kernel >
void OpenMesh::TriMeshT< Kernel >::split ( EdgeHandle  _eh,
VertexHandle  _vh 
)
inline

Edge split (= 2-to-4 split)

The properties of the new edges will be undefined!

Parameters
_ehEdge handle that should be splitted
_vhVertex handle that will be inserted at the edge

Definition at line 302 of file TriMeshT.hh.

◆ split() [3/5]

template<class Kernel >
void OpenMesh::TriMeshT< Kernel >::split ( FaceHandle  _fh)
inline

Face split (= 1-to-4) split, splits edges at midpoints and adds 4 new faces in the interior).

Parameters
_fhFace handle that should be splitted

Definition at line 350 of file TriMeshT.hh.

◆ split() [4/5]

template<class Kernel >
SmartVertexHandle OpenMesh::TriMeshT< Kernel >::split ( FaceHandle  _fh,
const Point _p 
)
inline

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

The properties of the new faces will be undefined!

Parameters
_fhFace handle that should be splitted
_pNew point position that will be inserted in the face
Returns
Vertex handle of the new vertex

Definition at line 330 of file TriMeshT.hh.

◆ split() [5/5]

template<class Kernel >
void OpenMesh::TriMeshT< Kernel >::split ( FaceHandle  _fh,
VertexHandle  _vh 
)
inline

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

The properties of the new faces will be undefined!

Parameters
_fhFace handle that should be splitted
_vhVertex handle that will be inserted at the face

Definition at line 410 of file TriMeshT.hh.

◆ split_copy() [1/4]

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

Edge split (= 2-to-4 split)

The properties of the new edges will be adjusted to the properties of the original edge

Parameters
_ehEdge handle that should be splitted
_pNew point position that will be inserted at the edge
Returns
Vertex handle of the newly added vertex

Definition at line 289 of file TriMeshT.hh.

◆ split_copy() [2/4]

template<class Kernel >
void OpenMesh::TriMeshT< Kernel >::split_copy ( EdgeHandle  _eh,
VertexHandle  _vh 
)
inline

Edge split (= 2-to-4 split)

The properties of the new edges will be adjusted to the properties of the original edge

Parameters
_ehEdge handle that should be splitted
_vhVertex handle that will be inserted at the edge

Definition at line 315 of file TriMeshT.hh.

◆ split_copy() [3/4]

template<class Kernel >
SmartVertexHandle OpenMesh::TriMeshT< Kernel >::split_copy ( FaceHandle  _fh,
const Point _p 
)
inline

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

The properties of the new faces will be adjusted to the properties of the original face

Parameters
_fhFace handle that should be splitted
_pNew point position that will be inserted in the face
Returns
Vertex handle of the new vertex

Definition at line 342 of file TriMeshT.hh.

◆ split_copy() [4/4]

template<class Kernel >
void OpenMesh::TriMeshT< Kernel >::split_copy ( FaceHandle  _fh,
VertexHandle  _vh 
)
inline

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

The properties of the new faces will be adjusted to the properties of the original face

Parameters
_fhFace handle that should be splitted
_vhVertex handle that will be inserted at the face

Definition at line 420 of file TriMeshT.hh.

◆ vertex_split() [1/2]

template<class Kernel >
HalfedgeHandle OpenMesh::TriMeshT< Kernel >::vertex_split ( Point  _v0_point,
VertexHandle  _v1,
VertexHandle  _vl,
VertexHandle  _vr 
)
inline

Vertex Split: inverse operation to collapse().

Insert the new vertex at position v0. The vertex will be added as the inverse of the edge collapse. The faces above the split will be correctly attached to the two new edges

Before:
v_l     v0     v_r
 x      x      x
  \           /
   \         /
    \       /
     \     /
      \   /
       \ /
        x
        v1

After:
v_l    v0      v_r
 x------x------x
  \     |     /
   \    |    /
    \   |   /
     \  |  /
      \ | /
       |/
        x
        v1

Parameters
_v0_pointPoint position for the new point
_v1Vertex that will be split
_vlLeft vertex handle
_vrRight vertex handle
Returns
Newly inserted halfedge

Definition at line 218 of file TriMeshT.hh.

◆ vertex_split() [2/2]

template<class Kernel >
HalfedgeHandle OpenMesh::TriMeshT< Kernel >::vertex_split ( VertexHandle  _v0,
VertexHandle  _v1,
VertexHandle  _vl,
VertexHandle  _vr 
)
inline

Vertex Split: inverse operation to collapse().

Insert the new vertex at position v0. The vertex will be added as the inverse of the edge collapse. The faces above the split will be correctly attached to the two new edges

Before:
v_l     v0     v_r
 x      x      x
  \           /
   \         /
    \       /
     \     /
      \   /
       \ /
        x
        v1

After:
v_l    v0      v_r
 x------x------x
  \     |     /
   \    |    /
    \   |   /
     \  |  /
      \ | /
       |/
        x
        v1

Parameters
_v0Vertex handle for the newly inserted point (Input has to be unconnected!)
_v1Vertex that will be split
_vlLeft vertex handle
_vrRight vertex handle
Returns
Newly inserted halfedge

Definition at line 262 of file TriMeshT.hh.


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