OpenMesh.Core.Mesh.PolyMeshT



class PolyMeshT (Kernel): Kernel;
\class PolyMeshT PolyMeshT .hh

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.

\param Kernel: template argument for the mesh kernel \note You should use the predefined mesh-kernel combinations in \ref mesh_types_group

See Also:
\ref mesh_type

alias This ;
Self type. Used to specify iterators/circulators.

alias Scalar ;
\name Mesh Items

Scalar type

alias Point ;
Coordinate type

alias Normal ;
Normal type

alias Color ;
Color type

alias TexCoord1D ;
TexCoord1D type

alias TexCoord2D ;
TexCoord2D type

alias TexCoord3D ;
TexCoord3D type

alias Vertex ;
Vertex type

alias Halfedge ;
Halfedge type

alias Edge ;
Edge type

alias Face ;
Face type

alias VertexHandle ;
Handle for referencing the corresponding item

alias VertexVertexIter ;
\name Mesh Circulators Refer to OpenMesh.Mesh.Iterators or \ref mesh_iterators for documentation.

Circulator

void copy (PolyMeshT _other);
Copy one mesh over top of another. This is a deep copy duplicating all data. If the mesh types vary, use PolyMeshT.assign() instead.

PolyMeshT dup ();
Create a fresh copy of this mesh. This is a deep copy duplicating all data.

void update_normals ();
\name Normal vector computation

Calls update_face_normals() and update_vertex_normals() if these normals (i.e. the properties) exist

void update_normal (FaceHandle _fh);
Update normal for face fh

void update_face_normals ();
Update normal vectors for all faces. \attention Needs the Attributes.Normal attribute for faces.

Normal calc_face_normal (FaceHandle _fh);
Calculate normal vector for face fh.

Normal calc_face_normal (ref Point _p0, ref Point _p1, ref Point _p2);
Calculate normal vector for face (p0, p1, p2).

void update_normal (VertexHandle _vh);
Update normal for vertex vh

void update_vertex_normals ();
Update normal vectors for all vertices. \attention Needs the Attributes.Normal attribute for faces and vertices.

Normal calc_vertex_normal (VertexHandle _vh);
Calculate normal vector for vertex vh by averaging normals of adjacent faces. Face normals have to be computed first. \attention Needs the Attributes.Normal attribute for faces.

void calc_vertex_normal_fast (VertexHandle _vh, ref Normal _n);
Different methods for calculation of the normal at vh: - -"-fast - the default one - the same as calc vertex_normal() - needs the Attributes.Normal attribute for faces - -"-correct - works properly for non-triangular meshes - does not need any attributes - -"-loop - calculates loop surface normals - does not need any attributes

void calc_edge_vector (EdgeHandle _eh, ref Normal _edge_vec);
Calculates the edge vector as the vector defined by the halfedge with id #0 (see below)

void calc_edge_vector (HalfedgeHandle _heh, ref Normal _edge_vec);
Calculates the edge vector as the difference of the the points defined by to_vertex_handle() and from_vertex_handle()

Scalar calc_edge_length (HalfedgeHandle _heh);
Calculates the length of the edge heh

void calc_sector_vectors (HalfedgeHandle _in_heh, ref Normal _vec0, ref Normal _vec1);
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

Scalar calc_sector_angle (HalfedgeHandle _in_heh);
calculates the sector angle

NOTE:
only boundary concave sectors are treated correctly

void calc_sector_normal (HalfedgeHandle _in_heh, ref Normal _sector_normal);
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);
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

Scalar calc_dihedral_angle_fast (HalfedgeHandle _heh);
calculates the dihedral angle on the halfedge heh \attention Needs the Attributes.Normal attribute for faces

Scalar calc_dihedral_angle_fast (EdgeHandle _eh);
calculates the dihedral angle on the edge eh \attention Needs the Attributes.Normal attribute for faces

uint find_feature_edges (Scalar _angle_tresh = Math.deg_to_rad(44));
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, ref Point _p);
Face split (= 1-to-n split )

Page was generated with CanDyDOC on Fri Oct 12 16:12:40 2007