OpenMesh
|
Base type for a triangle mesh. More...
#include <OpenMesh/Mesh/TriMeshT.hh>
Public Types | |
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. | |
![]() | |
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 | |
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 vector computation | |
Normal | calc_face_normal (FaceHandle _fh) const |
Calculate normal vector for face _fh (specialized for TriMesh). | |
![]() | |
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. | |
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 |
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.
Kernel,: | template argument for the mesh kernel |
|
virtual |
Calculate normal vector for face _fh (specialized for TriMesh).
Reimplemented from OpenMesh::PolyMeshT< Kernel >.