OpenMesh
Loading...
Searching...
No Matches
OpenMesh::PolyMesh_ArrayKernelT< Traits > Class Template Reference

Polygonal mesh based on the ArrayKernel. More...

#include <OpenMesh/Mesh/Types/PolyMesh_ArrayKernelT.hh>

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

Public Member Functions

template<class OtherTraits>
 PolyMesh_ArrayKernelT (const TriMesh_ArrayKernelT< OtherTraits > &t)
 PolyMeshT (const T &t)
 Circulator.
SmartVertexHandle new_vertex ()
 Uses default copy and assignment operator.
SmartVertexHandle new_vertex (const Point _p)
 Adds a new vertex initialized to a custom position.
SmartVertexHandle new_vertex_dirty (const Point _p)
 Same as new_vertex(const Point&) but never shrinks, only enlarges the vertex property vectors.
SmartVertexHandle add_vertex (const Point _p)
 Alias for new_vertex(const Point&).
SmartVertexHandle add_vertex_dirty (const Point _p)
 Alias for new_vertex_dirty().
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.
virtual Normal calc_face_normal (FaceHandle _fh) const
 Calculate normal vector for face _fh.
Normal calc_face_normal (const Point &_p0, const Point &_p1, const Point &_p2) const
 Calculate normal vector for face (_p0, _p1, _p2).
Normal calc_normal (FaceHandle _fh) const
 same as calc_face_normal
void calc_face_centroid (FaceHandle _fh, Point &_pt) const
 calculates the average of the vertices defining _fh
Point calc_face_centroid (FaceHandle _fh) const
 Computes and returns the average of the vertices defining _fh.
Point calc_centroid (FaceHandle _fh) const
 Computes and returns the average of the vertices defining _fh (same as calc_face_centroid)
Point calc_centroid (EdgeHandle _eh) const
 Computes and returns the average of the vertices defining _eh (same as calc_edge_midpoint)
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)
Point calc_centroid (VertexHandle _vh) const
 Returns the point of _vh.
Point calc_centroid (MeshHandle _mh) const
 Computes and returns the average of the vertices defining the mesh.
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.
Normal calc_normal (HalfedgeHandle, const double _feature_angle=0.8) const
 same as calc_halfedge_normal
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.
Normal calc_normal (VertexHandle _vh) const
 same as calc_vertex_normal_correct
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)
Normal calc_edge_vector (EdgeHandle _eh) 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()
Normal calc_edge_vector (HalfedgeHandle _heh) 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
 Compute normals for all primitives.
Scalar calc_edge_length (HalfedgeHandle _heh) const
 Calculates the length of the edge _heh.
Scalar calc_edge_sqr_length (EdgeHandle _eh) const
 Compute normals for all primitives.
Scalar calc_edge_sqr_length (HalfedgeHandle _heh) const
 Compute normals for all primitives.
Point calc_edge_midpoint (HalfedgeHandle _heh) const
 Calculates the midpoint of the halfedge _heh, defined by the positions of the two incident vertices.
Point calc_edge_midpoint (EdgeHandle _eh) const
 Calculates the midpoint of the edge _eh, defined by the positions of the two incident vertices.
Normal calc_normal (EdgeHandle _eh) const
 calculated and returns the average of the two vertex normals
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
 Compute normals for all primitives.
Scalar calc_dihedral_angle (EdgeHandle _eh) const
 Compute normals for all primitives.
unsigned int 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 split (FaceHandle _fh, const Point &_p)
 Face split (= 1-to-n split)
void split (FaceHandle _fh, VertexHandle _vh)
 Compute normals for all primitives.
void split (EdgeHandle _eh, const Point &_p)
 Compute normals for all primitives.
void split (EdgeHandle _eh, VertexHandle _vh)
 Compute normals for all primitives.

Additional Inherited Members

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

Detailed Description

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

Polygonal mesh based on the ArrayKernel.

See also
OpenMesh::PolyMeshT
OpenMesh::ArrayKernel

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

Project OpenMesh, ©  Visual Computing Institute, RWTH Aachen. Documentation generated using doxygen .