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
)
|