|
Developer Documentation
|
#include <OpenMesh/Mesh/PolyMeshT.hh>
Classes | |
| struct | PointIs3DTag |
| struct | PointIsNot3DTag |
Public Types | |
| enum | { IsPolyMesh = 1 } |
| enum | { IsTriMesh = 0 } |
| typedef PolyMeshT< Kernel > | This |
| Self type. Used to specify iterators/circulators. | |
| using | ConnectivityTag = PolyConnectivityTag |
Mesh Items | |
| 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::VertexHandle | VertexHandle |
| Handle for referencing the corresponding item. | |
| typedef Kernel::HalfedgeHandle | HalfedgeHandle |
| Scalar type. | |
| typedef Kernel::EdgeHandle | EdgeHandle |
| Scalar type. | |
| typedef Kernel::FaceHandle | FaceHandle |
| Scalar type. | |
| typedef Kernel::VertexIter | VertexIter |
| Scalar type. | |
| typedef Kernel::HalfedgeIter | HalfedgeIter |
| Scalar type. | |
| typedef Kernel::EdgeIter | EdgeIter |
| Scalar type. | |
| typedef Kernel::FaceIter | FaceIter |
| Scalar type. | |
| typedef Kernel::ConstVertexIter | ConstVertexIter |
| Scalar type. | |
| typedef Kernel::ConstHalfedgeIter | ConstHalfedgeIter |
| Scalar type. | |
| typedef Kernel::ConstEdgeIter | ConstEdgeIter |
| Scalar type. | |
| typedef Kernel::ConstFaceIter | ConstFaceIter |
| Scalar type. | |
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) | |
| static constexpr bool | is_trimesh () |
Mesh Circulators | |
Refer to OpenMesh::Mesh::Iterators or Mesh Iterators and Circulators for documentation. | |
| 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. | |
| PolyMeshT () | |
| Circulator. | |
| template<typename T > | |
| PolyMeshT (const T &t) | |
| Circulator. | |
| virtual | ~PolyMeshT () |
| Circulator. | |
| 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. | |
| 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. | |
| SmartVertexHandle | new_vertex () |
| Adds a new default-initialized vertex. | |
| SmartVertexHandle | new_vertex (const Point _p) |
| Adds a new vertex initialized to a custom position. | |
| 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(). | |
Normal vector computation | |
| 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 |
| 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 | |
| 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 |
| 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. | |
| Normal | calc_normal (VertexHandle _vh) const |
| same as calc_vertex_normal_correct | |
| 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. | |
| Scalar | calc_edge_length (HalfedgeHandle _heh) const |
| 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 |
| Point | calc_edge_midpoint (EdgeHandle _eh) const |
| 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 |
| 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. | |
| 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)) |
| 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. | |
| Normal | calc_face_normal_impl (FaceHandle, PointIs3DTag) const |
| Compute normals for all primitives. | |
| Normal | calc_face_normal_impl (FaceHandle, PointIsNot3DTag) const |
| Compute normals for all primitives. | |
| Normal | calc_face_normal_impl (const Point &, const Point &, const Point &, PointIs3DTag) const |
| Compute normals for all primitives. | |
| Normal | calc_face_normal_impl (const Point &, const Point &, const Point &, PointIsNot3DTag) const |
| Compute normals for all primitives. | |
Base type for a polygonal mesh.
This is the base class for a polygonal mesh. It is parameterized by a mesh kernel that is given as a template argument. This class inherits all methods from its mesh kernel.
| Kernel | template argument for the mesh kernel |
Definition at line 90 of file PolyMeshT.hh.
| typedef Kernel::Color OpenMesh::PolyMeshT< Kernel >::Color |
Color type.
Definition at line 116 of file PolyMeshT.hh.
| using OpenMesh::PolyMeshT< Kernel >::ConnectivityTag = PolyConnectivityTag |
Definition at line 102 of file PolyMeshT.hh.
| typedef Kernel::ConstEdgeIter OpenMesh::PolyMeshT< Kernel >::ConstEdgeIter |
Scalar type.
Definition at line 150 of file PolyMeshT.hh.
| typedef Kernel::ConstFaceEdgeIter OpenMesh::PolyMeshT< Kernel >::ConstFaceEdgeIter |
Circulator.
Definition at line 179 of file PolyMeshT.hh.
| typedef Kernel::ConstFaceFaceIter OpenMesh::PolyMeshT< Kernel >::ConstFaceFaceIter |
Circulator.
Definition at line 180 of file PolyMeshT.hh.
| typedef Kernel::ConstFaceHalfedgeIter OpenMesh::PolyMeshT< Kernel >::ConstFaceHalfedgeIter |
Circulator.
Definition at line 178 of file PolyMeshT.hh.
| typedef Kernel::ConstFaceIter OpenMesh::PolyMeshT< Kernel >::ConstFaceIter |
Scalar type.
Definition at line 151 of file PolyMeshT.hh.
| typedef Kernel::ConstFaceVertexIter OpenMesh::PolyMeshT< Kernel >::ConstFaceVertexIter |
Circulator.
Definition at line 177 of file PolyMeshT.hh.
| typedef Kernel::ConstHalfedgeIter OpenMesh::PolyMeshT< Kernel >::ConstHalfedgeIter |
Scalar type.
Definition at line 149 of file PolyMeshT.hh.
| typedef Kernel::ConstVertexEdgeIter OpenMesh::PolyMeshT< Kernel >::ConstVertexEdgeIter |
Circulator.
Definition at line 175 of file PolyMeshT.hh.
| typedef Kernel::ConstVertexFaceIter OpenMesh::PolyMeshT< Kernel >::ConstVertexFaceIter |
Circulator.
Definition at line 176 of file PolyMeshT.hh.
| typedef Kernel::ConstVertexIHalfedgeIter OpenMesh::PolyMeshT< Kernel >::ConstVertexIHalfedgeIter |
Circulator.
Definition at line 174 of file PolyMeshT.hh.
| typedef Kernel::ConstVertexIter OpenMesh::PolyMeshT< Kernel >::ConstVertexIter |
Scalar type.
Definition at line 148 of file PolyMeshT.hh.
| typedef Kernel::ConstVertexOHalfedgeIter OpenMesh::PolyMeshT< Kernel >::ConstVertexOHalfedgeIter |
Circulator.
Definition at line 173 of file PolyMeshT.hh.
| typedef Kernel::ConstVertexVertexIter OpenMesh::PolyMeshT< Kernel >::ConstVertexVertexIter |
Circulator.
Definition at line 172 of file PolyMeshT.hh.
| typedef Kernel::Edge OpenMesh::PolyMeshT< Kernel >::Edge |
Edge type.
Definition at line 128 of file PolyMeshT.hh.
| typedef Kernel::EdgeHandle OpenMesh::PolyMeshT< Kernel >::EdgeHandle |
Scalar type.
Definition at line 138 of file PolyMeshT.hh.
| typedef Kernel::EdgeIter OpenMesh::PolyMeshT< Kernel >::EdgeIter |
Scalar type.
Definition at line 145 of file PolyMeshT.hh.
| typedef Kernel::Face OpenMesh::PolyMeshT< Kernel >::Face |
Face type.
Definition at line 130 of file PolyMeshT.hh.
| typedef Kernel::FaceEdgeIter OpenMesh::PolyMeshT< Kernel >::FaceEdgeIter |
Circulator.
Definition at line 169 of file PolyMeshT.hh.
| typedef Kernel::FaceFaceIter OpenMesh::PolyMeshT< Kernel >::FaceFaceIter |
Circulator.
Definition at line 170 of file PolyMeshT.hh.
| typedef Kernel::FaceHalfedgeIter OpenMesh::PolyMeshT< Kernel >::FaceHalfedgeIter |
Circulator.
Definition at line 168 of file PolyMeshT.hh.
| typedef Kernel::FaceHandle OpenMesh::PolyMeshT< Kernel >::FaceHandle |
Scalar type.
Definition at line 139 of file PolyMeshT.hh.
| typedef Kernel::FaceIter OpenMesh::PolyMeshT< Kernel >::FaceIter |
Scalar type.
Definition at line 146 of file PolyMeshT.hh.
| typedef Kernel::FaceVertexIter OpenMesh::PolyMeshT< Kernel >::FaceVertexIter |
Circulator.
Definition at line 167 of file PolyMeshT.hh.
| typedef Kernel::Halfedge OpenMesh::PolyMeshT< Kernel >::Halfedge |
Halfedge type.
Definition at line 126 of file PolyMeshT.hh.
| typedef Kernel::HalfedgeHandle OpenMesh::PolyMeshT< Kernel >::HalfedgeHandle |
Scalar type.
Definition at line 137 of file PolyMeshT.hh.
| typedef Kernel::HalfedgeIter OpenMesh::PolyMeshT< Kernel >::HalfedgeIter |
Scalar type.
Definition at line 144 of file PolyMeshT.hh.
| typedef Kernel::Normal OpenMesh::PolyMeshT< Kernel >::Normal |
Normal type.
Definition at line 114 of file PolyMeshT.hh.
| typedef Kernel::Point OpenMesh::PolyMeshT< Kernel >::Point |
Coordinate type.
Definition at line 112 of file PolyMeshT.hh.
| typedef Kernel::Scalar OpenMesh::PolyMeshT< Kernel >::Scalar |
Scalar type.
Definition at line 110 of file PolyMeshT.hh.
| typedef Kernel::TexCoord1D OpenMesh::PolyMeshT< Kernel >::TexCoord1D |
TexCoord1D type.
Definition at line 118 of file PolyMeshT.hh.
| typedef Kernel::TexCoord2D OpenMesh::PolyMeshT< Kernel >::TexCoord2D |
TexCoord2D type.
Definition at line 120 of file PolyMeshT.hh.
| typedef Kernel::TexCoord3D OpenMesh::PolyMeshT< Kernel >::TexCoord3D |
TexCoord3D type.
Definition at line 122 of file PolyMeshT.hh.
| typedef PolyMeshT<Kernel> OpenMesh::PolyMeshT< Kernel >::This |
Self type. Used to specify iterators/circulators.
Definition at line 95 of file PolyMeshT.hh.
| typedef Kernel::Vertex OpenMesh::PolyMeshT< Kernel >::Vertex |
Vertex type.
Definition at line 124 of file PolyMeshT.hh.
| typedef Kernel::VertexEdgeIter OpenMesh::PolyMeshT< Kernel >::VertexEdgeIter |
Circulator.
Definition at line 165 of file PolyMeshT.hh.
| typedef Kernel::VertexFaceIter OpenMesh::PolyMeshT< Kernel >::VertexFaceIter |
Circulator.
Definition at line 166 of file PolyMeshT.hh.
| typedef Kernel::VertexHandle OpenMesh::PolyMeshT< Kernel >::VertexHandle |
Handle for referencing the corresponding item.
Definition at line 136 of file PolyMeshT.hh.
| typedef Kernel::VertexIHalfedgeIter OpenMesh::PolyMeshT< Kernel >::VertexIHalfedgeIter |
Circulator.
Definition at line 164 of file PolyMeshT.hh.
| typedef Kernel::VertexIter OpenMesh::PolyMeshT< Kernel >::VertexIter |
Scalar type.
Definition at line 143 of file PolyMeshT.hh.
| typedef Kernel::VertexOHalfedgeIter OpenMesh::PolyMeshT< Kernel >::VertexOHalfedgeIter |
Circulator.
Definition at line 163 of file PolyMeshT.hh.
| typedef Kernel::VertexVertexIter OpenMesh::PolyMeshT< Kernel >::VertexVertexIter |
Circulator.
Definition at line 162 of file PolyMeshT.hh.
| anonymous enum |
Definition at line 103 of file PolyMeshT.hh.
| anonymous enum |
Definition at line 104 of file PolyMeshT.hh.
|
inline |
Circulator.
Definition at line 185 of file PolyMeshT.hh.
|
inlineexplicit |
Circulator.
Definition at line 187 of file PolyMeshT.hh.
|
inlinevirtual |
Circulator.
Definition at line 188 of file PolyMeshT.hh.
|
inline |
Alias for new_vertex(const Point&).
Definition at line 255 of file PolyMeshT.hh.
|
inline |
Alias for new_vertex_dirty().
Definition at line 259 of file PolyMeshT.hh.
| PolyMeshT< Kernel >::Point OpenMesh::PolyMeshT< Kernel >::calc_centroid | ( | EdgeHandle | _eh | ) | const |
Computes and returns the average of the vertices defining _eh (same as calc_edge_midpoint)
Definition at line 276 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Point OpenMesh::PolyMeshT< Kernel >::calc_centroid | ( | FaceHandle | _fh | ) | const |
Computes and returns the average of the vertices defining _fh (same as calc_face_centroid)
Definition at line 266 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Point OpenMesh::PolyMeshT< Kernel >::calc_centroid | ( | HalfedgeHandle | _heh | ) | const |
Computes and returns the average of the vertices defining _heh (same as calc_edge_midpoint for edge of halfedge)
Definition at line 286 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Point OpenMesh::PolyMeshT< Kernel >::calc_centroid | ( | MeshHandle | _mh | ) | const |
Computes and returns the average of the vertices defining the mesh.
Definition at line 306 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Point OpenMesh::PolyMeshT< Kernel >::calc_centroid | ( | VertexHandle | _vh | ) | const |
Returns the point of _vh.
Definition at line 296 of file PolyMeshT_impl.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 597 of file PolyMeshT.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 575 of file PolyMeshT.hh.
|
inline |
calculates the dihedral angle on the edge _eh
Definition at line 571 of file PolyMeshT.hh.
|
inline |
calculates the dihedral angle on the halfedge _heh
Definition at line 550 of file PolyMeshT.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 434 of file PolyMeshT.hh.
|
inline |
Calculates the length of the edge _heh
Definition at line 439 of file PolyMeshT.hh.
|
inline |
Calculates the midpoint of the edge _eh, defined by the positions of the two incident vertices
Definition at line 463 of file PolyMeshT.hh.
|
inline |
Calculates the midpoint of the halfedge _heh, defined by the positions of the two incident vertices
Definition at line 454 of file PolyMeshT.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 442 of file PolyMeshT.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 445 of file PolyMeshT.hh.
|
inline |
Calculates the edge vector as the vector defined by the halfedge with id #0 (see below)
Definition at line 413 of file PolyMeshT.hh.
|
inline |
Calculates the edge vector as the vector defined by the halfedge with id #0 (see below)
Definition at line 406 of file PolyMeshT.hh.
|
inline |
Calculates the edge vector as the difference of the the points defined by to_vertex_handle() and from_vertex_handle()
Definition at line 427 of file PolyMeshT.hh.
|
inline |
Calculates the edge vector as the difference of the the points defined by to_vertex_handle() and from_vertex_handle()
Definition at line 420 of file PolyMeshT.hh.
| PolyMeshT< Kernel >::Point OpenMesh::PolyMeshT< Kernel >::calc_face_centroid | ( | FaceHandle | _fh | ) | const |
Computes and returns the average of the vertices defining _fh.
Definition at line 248 of file PolyMeshT_impl.hh.
|
inline |
calculates the average of the vertices defining _fh
Definition at line 299 of file PolyMeshT.hh.
| PolyMeshT< Kernel >::Normal OpenMesh::PolyMeshT< Kernel >::calc_face_normal | ( | const Point & | _p0, |
| const Point & | _p1, | ||
| const Point & | _p2 | ||
| ) | const |
Calculate normal vector for face (_p0, _p1, _p2).
Definition at line 172 of file PolyMeshT_impl.hh.
|
virtual |
Calculate normal vector for face _fh.
Reimplemented in OpenMesh::TriMeshT< Kernel >.
Definition at line 97 of file PolyMeshT_impl.hh.
|
private |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 194 of file PolyMeshT_impl.hh.
|
private |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 229 of file PolyMeshT_impl.hh.
|
private |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 108 of file PolyMeshT_impl.hh.
|
private |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 154 of file PolyMeshT_impl.hh.
|
virtual |
Calculate halfedge normal for one specific halfedge.
Calculate normal vector for halfedge _heh.
| _heh | Handle of the halfedge |
| _feature_angle | If the dihedral angle across this edge is greater than this value, the edge is considered as a feature edge (angle in radians) |
Definition at line 364 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Normal OpenMesh::PolyMeshT< Kernel >::calc_normal | ( | EdgeHandle | _eh | ) | const |
calculated and returns the average of the two vertex normals
Definition at line 429 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Normal OpenMesh::PolyMeshT< Kernel >::calc_normal | ( | FaceHandle | _fh | ) | const |
same as calc_face_normal
Definition at line 186 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Normal OpenMesh::PolyMeshT< Kernel >::calc_normal | ( | HalfedgeHandle | _heh, |
| const double | _feature_angle = 0.8 |
||
| ) | const |
same as calc_halfedge_normal
Definition at line 417 of file PolyMeshT_impl.hh.
| PolyMeshT< Kernel >::Normal OpenMesh::PolyMeshT< Kernel >::calc_normal | ( | VertexHandle | _vh | ) | const |
same as calc_vertex_normal_correct
Definition at line 559 of file PolyMeshT_impl.hh.
|
inline |
calculates the sector angle.
The vertex pointed by _in_heh defines the sector center The angle will be calculated between the given halfedge and the next halfedge.
Seen from the center vertex this will be the next halfedge in clockwise direction.
NOTE: only boundary concave sectors are treated correctly
Definition at line 486 of file PolyMeshT.hh.
|
inline |
calculates the area of the face sector defined by the angle <(_in_heh,next_halfedge(_in_heh)) NOTE: special cases (e.g. concave sectors) are not handled correctly
Definition at line 541 of file PolyMeshT.hh.
|
inline |
calculates the normal (non-normalized) of the face sector defined by the angle <(_in_heh,next_halfedge(_in_heh))
Definition at line 531 of file PolyMeshT.hh.
|
inline |
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. the first and the second vectors defining the sector
Definition at line 475 of file PolyMeshT.hh.
| PolyMeshT< Kernel >::Normal OpenMesh::PolyMeshT< Kernel >::calc_vertex_normal | ( | VertexHandle | _vh | ) | const |
Calculate vertex normal for one specific vertex.
Calculate normal vector for vertex _vh by averaging normals of adjacent faces.
| _vh | Handle of the vertex |
Definition at line 482 of file PolyMeshT_impl.hh.
| void OpenMesh::PolyMeshT< Kernel >::calc_vertex_normal_correct | ( | VertexHandle | _vh, |
| Normal & | _n | ||
| ) | const |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 506 of file PolyMeshT_impl.hh.
| void OpenMesh::PolyMeshT< Kernel >::calc_vertex_normal_fast | ( | VertexHandle | _vh, |
| Normal & | _n | ||
| ) | const |
Different methods for calculation of the normal at _vh:
Definition at line 496 of file PolyMeshT_impl.hh.
| void OpenMesh::PolyMeshT< Kernel >::calc_vertex_normal_loop | ( | VertexHandle | _vh, |
| Normal & | _n | ||
| ) | const |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 537 of file PolyMeshT_impl.hh.
| uint OpenMesh::PolyMeshT< Kernel >::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
Definition at line 74 of file PolyMeshT_impl.hh.
| bool OpenMesh::PolyMeshT< Kernel >::is_estimated_feature_edge | ( | HalfedgeHandle | _heh, |
| const double | _feature_angle | ||
| ) | const |
identifies feature edges w.r.t. the minimal dihedral angle for feature edges (in radians) and the status feature tag
Definition at line 451 of file PolyMeshT_impl.hh.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
Definition at line 101 of file PolyMeshT.hh.
|
inline |
Create a smart handle from a regular handle.
Uses default copy and assignment operator. Use them to assign two meshes of equal type. If the mesh types vary, use PolyMeshT::assign() instead.
Definition at line 201 of file PolyMeshT.hh.
|
inline |
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.
Definition at line 210 of file PolyMeshT.hh.
|
inline |
Adds a new default-initialized vertex.
Definition at line 218 of file PolyMeshT.hh.
|
inline |
Adds a new vertex initialized to a custom position.
Definition at line 227 of file PolyMeshT.hh.
|
inline |
Same as new_vertex(const Point&) but never shrinks, only enlarges the vertex property vectors.
If you are rebuilding a mesh that you erased with ArrayKernel::clean() or ArrayKernel::clean_keep_reservation() using this method instead of new_vertex(const Point &) saves reallocation and reinitialization of property memory.
Definition at line 245 of file PolyMeshT.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 612 of file PolyMeshT.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 615 of file PolyMeshT.hh.
|
inline |
Face split (= 1-to-n split)
Definition at line 606 of file PolyMeshT.hh.
|
inline |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 609 of file PolyMeshT.hh.
| void OpenMesh::PolyMeshT< Kernel >::update_face_normals | ( | ) |
Update normal vectors for all faces.
Definition at line 334 of file PolyMeshT_impl.hh.
| void OpenMesh::PolyMeshT< Kernel >::update_halfedge_normals | ( | const double | _feature_angle = 0.8 | ) |
Update normal vectors for all halfedges.
Uses the existing face normals to compute halfedge normals
Definition at line 349 of file PolyMeshT_impl.hh.
|
inline |
Update normal for face _fh.
Definition at line 278 of file PolyMeshT.hh.
|
inline |
Update normal for halfedge _heh.
Definition at line 322 of file PolyMeshT.hh.
|
inline |
Update normal for vertex _vh.
Definition at line 358 of file PolyMeshT.hh.
| void OpenMesh::PolyMeshT< Kernel >::update_normals | ( | ) |
Compute normals for all primitives.
Calls update_face_normals() , update_halfedge_normals() and update_vertex_normals() if the normals (i.e. the properties) exist.
Definition at line 316 of file PolyMeshT_impl.hh.
| void OpenMesh::PolyMeshT< Kernel >::update_vertex_normals | ( | ) |
Update normal vectors for all vertices.
Uses existing face normals to calculate new vertex normals.
Definition at line 571 of file PolyMeshT_impl.hh.