50 #error this file is for documentation purposes only 
   75 template <
class FinalMeshItems> 
class KernelT 
   83   typedef typename FinalMeshItems::Vertex             
Vertex;
 
   84   typedef typename FinalMeshItems::Halfedge           
Halfedge;
 
   85   typedef typename FinalMeshItems::Edge               
Edge;
 
   86   typedef typename FinalMeshItems::Face               
Face;
 
   87   typedef typename FinalMeshItems::Point              
Point;
 
   88   typedef typename FinalMeshItems::Scalar             
Scalar;
 
   91   typedef typename FinalMeshItems::TexCoord           
TexCoord;
 
  461   template <
typename T> 
void add_property( [VEHFM]PropHandleT<T>& _ph,
 
  464                                            const std::string& _name = 
"" );
 
  475   template <
typename T>
 
  493   template <
typename T>
 
  495   template <
typename T>
 
  498   template <
typename T>
 
  500   template <
typename T>
 
  503   template <
typename T>
 
  505   template <
typename T>
 
  508   template <
typename T>
 
  510   template <
typename T>
 
  513   template <
typename T>
 
  515   template <
typename T>
 
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:59
 
@ Normal
Add normals to mesh item (vertices/faces)
Definition: Attributes.hh:82
 
@ TexCoord2D
Add 2D texture coordinates (vertices, halfedges)
Definition: Attributes.hh:87
 
@ TexCoord1D
Add 1D texture coordinates (vertices, halfedges)
Definition: Attributes.hh:86
 
@ TexCoord3D
Add 3D texture coordinates (vertices, halfedges)
Definition: Attributes.hh:88
 
@ Color
Add colors to mesh item (vertices/faces/edges)
Definition: Attributes.hh:83
 
This class describes the minimum interface a mesh kernel has to implement (because the resulting mesh...
Definition: MeshKernel.hh:76
 
HalfedgeHandle prev_halfedge_handle(HalfedgeHandle _heh) const
Get the previous halfedge of the given halfedge.
 
const TexCoord2D & texcoord2D(HalfedgeHandle _hh) const
Get texture coordinate of the to vertex for the current face (per face per vertex texcoords)
 
const Vertex & vertex(VertexHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:144
 
bool has_halfedge_colors() const
Is property available?
 
void set_color(FaceHandle _fh, const Color &_c)
Set color.
 
void request_vertex_texcoords2D()
Request property.
 
void set_halfedge_handle(FaceHandle _fh, HalfedgeHandle _heh)
Set one halfedge of the face.
 
void request_halfedge_texcoords3D()
Request property.
 
bool has_face_normals() const
Is property available?
 
const Normal & normal(HalfedgeHandle _heh) const
Get normal of the to vertex of the given Halfedge (per face per vertex normals)
 
void request_halfedge_colors()
Request property.
 
void remove_last_face()
Remove the last face imidiately, i.e.
Definition: MeshKernel.hh:209
 
void request_vertex_normals()
Request property.
 
Vertex & vertex(VertexHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:145
 
void set_normal(HalfedgeHandle _heh, const Normal &_n)
Set normal of the to vertex of the given Halfedge (per face per vertex normals)
 
void release_halfedge_colors()
Remove property.
 
const TexCoord1D & texcoord1D(VertexHandle _vh) const
Get texture coordinate.
 
void set_point(Vertex &_v, const Point &_p)
Set the coordinate of a vertex.
 
size_t n_edges() const
Returns number of edges.
 
FinalMeshItems::Scalar Scalar
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:88
 
void request_halfedge_status()
Request property.
 
SomeIterator KernelFaceIter
This type depends on the container type in use.
Definition: MeshKernel.hh:107
 
const StatusInfo & status(FaceHandle _vh) const
Get status.
 
void set_texcoord3D(HalfedgeHandle _hh, const TexCoord3D &_t)
Set texture coordinate of the to vertex of the given Halfedge (per face per vertex texcoords)
 
VertexHandle vertex_handle(unsigned int _i) const
Get the i'th item.
 
FinalMeshItems::Color Color
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:90
 
const T & property(FPropHandleT< T > _ph, FaceHandle _vh) const
Get value for item represented by the handle.
 
const TexCoord2D & texcoord2D(VertexHandle _vh) const
Get texture coordinate.
 
HalfedgeHandle ccw_rotated_halfedge_handle(HalfedgeHandle _heh) const
Counter-clockwise rotate the given halfedge around its from vertex.
 
KernelFaceIter faces_begin()
Kernel item iterator.
 
void release_halfedge_texcoords3D()
Remove property.
 
bool has_edge_colors() const
Is property available?
 
const Normal & normal(VertexHandle _vh) const
Get normal.
 
SomeIterator KernelConstVertexIter
This type depends on the container type in use.
Definition: MeshKernel.hh:104
 
void request_edge_status()
Request property.
 
void clear()
Delete all items, i.e.
 
KernelConstFaceIter faces_end() const
Kernel item iterator.
 
const Point & point(const Vertex &_v) const
Get the coordinate of a vertex.
 
const Point & point(VertexHandle _vh) const
Get the coordinate of a vertex.
 
void release_vertex_colors()
Remove property.
 
SomeIterator KernelEdgeIter
This type depends on the container type in use.
Definition: MeshKernel.hh:105
 
void remove_last_vertex()
Remove the last vertex imidiately, i.e.
Definition: MeshKernel.hh:201
 
FaceHandle new_face()
Adding a new face.
 
const Normal & normal(FaceHandle _fh) const
Get normal.
 
void set_texcoord2D(HalfedgeHandle _hh, const TexCoord2D &_t)
Set texture coordinate of the to vertex of the given Halfedge (per face per vertex texcoords)
 
StatusInfo & status(FaceHandle _vh)
Get status.
 
SomeIterator KernelConstEdgeIter
This type depends on the container type in use.
Definition: MeshKernel.hh:106
 
void release_face_texture_index()
Remove property.
 
void release_face_normals()
Remove property.
 
const Halfedge & halfedge(HalfedgeHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:146
 
const StatusInfo & status(EdgeHandle _vh) const
Get status.
 
bool vertices_empty() const
Is the vertex container empty?
 
FinalMeshItems::EdgeHandle EdgeHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:94
 
void release_vertex_normals()
Remove property.
 
void set_color(VertexHandle _vh, const Color &_c)
Set color.
 
FaceHandle face_handle(unsigned int _i) const
Get the i'th item.
 
void request_face_colors()
Request property.
 
PropertyT< T > & property([VEHF]PropHandleT< T > _ph)
Get property.
 
void release_halfedge_texcoords2D()
Remove property.
 
void request_face_texture_index()
Request property.
 
PropertyT< T > & mproperty(MPropHandleT< T > _ph)
Get property.
 
KernelConstFaceIter faces_begin() const
Kernel item iterator.
 
HalfedgeHandle new_edge(VertexHandle _start_vertex_handle, VertexHandle _end_vertex_handle)
Add a new edge from _start_vertex_handle to _end_vertex_handle.
 
void set_texcoord1D(VertexHandle _vh, const TexCoord1D &_t)
Set texture coordinate.
 
const TexCoord1D & texcoord1D(HalfedgeHandle _hh) const
Get texture coordinate of the to vertex for the current face (per face per vertex texcoords)
 
KernelVertexIter vertices_end()
Kernel item iterator.
 
void request_halfedge_texcoords2D()
Request property.
 
const T & property(EPropHandleT< T > _ph, EdgeHandle _vh) const
Get value for item represented by the handle.
 
void request_vertex_status()
Request property.
 
FinalMeshItems::TexCoord TexCoord
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:91
 
void add_property([VEHFM]PropHandleT< T > &_ph, const std::string &_name="")
Add property.
 
void request_vertex_colors()
Request property.
 
VertexHandle new_vertex(const Vertex &_v)
Add a new vertex (copied from the given one).
 
const Color & color(EdgeHandle _eh) const
Get color.
 
EdgeHandle edge_handle(HalfedgeHandle _heh) const
Get the edge the current halfedge it contained in.
 
const TexCoord3D & texcoord3D(HalfedgeHandle _hh) const
Get texture coordinate of the to vertex for the current face (per face per vertex texcoords)
 
Edge & edge(EdgeHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:149
 
bool get_property_handle([VEHFM]PropHandleT< T > &ph, const std::string &_n) const
Get property handle by name.
 
VertexHandle new_vertex(const Point &_p)
Add a new vertex with a given point coordinate.
 
void release_vertex_texcoords1D()
Remove property.
 
SomeIterator KernelConstFaceIter
This type depends on the container type in use.
Definition: MeshKernel.hh:108
 
T & property(EPropHandleT< T > _ph, EdgeHandle _vh)
Get value for item represented by the handle.
 
FaceHandle face_handle(HalfedgeHandle _heh) const
Get the face the halfedge belongs to.
 
void release_vertex_status()
Remove property.
 
HalfedgeHandle halfedge_handle(unsigned int _i) const
Get the i'th item.
 
HalfedgeHandle opposite_halfedge_handle(HalfedgeHandle _heh) const
Get the opposite halfedge.
 
HalfedgeHandle handle(const Halfedge &_he) const
Translate item to handle.
 
KernelConstVertexIter vertices_begin() const
Kernel item iterator.
 
FinalMeshItems::Halfedge Halfedge
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:84
 
void garbage_collection()
Remove all items that are marked as deleted from the corresponding containers.
 
void set_halfedge_handle(VertexHandle _vh, HalfedgeHandle _heh)
Set the outgoing halfedge handle of a given vertex.
 
void release_edge_colors()
Remove property.
 
const PropertyT< T > & property([VEHF]PropHandleT< T > _ph) const
Get property.
 
bool has_face_texture_index() const
Is property available?
 
FaceHandle handle(const Face &_f) const
Translate item to handle.
 
size_t n_vertices() const
Returns number of vertices.
 
KernelT()
Default constructor.
Definition: MeshKernel.hh:114
 
SomeIterator KernelVertexIter
This type depends on the container type in use.
Definition: MeshKernel.hh:103
 
FaceHandle new_face(const Face &_f)
Adding a new face (copied from a _f).
 
KernelFaceIter faces_end()
Kernel item iterator.
 
T & property(MPropHandleT< T > _ph)
Get value for item represented by the handle.
 
const StatusInfo & status(HalfedgeHandle _vh) const
Get status.
 
const T & property(VPropHandleT< T > _ph, VertexHandle _vh) const
Get value for item represented by the handle.
 
bool has_vertex_colors() const
Is property available?
 
bool has_halfedge_status() const
Is property available?
 
KernelConstEdgeIter edges_begin() const
Kernel item iterator.
 
HalfedgeHandle cw_rotated_halfedge_handle(HalfedgeHandle _heh) const
Clockwise rotate the given halfedge around its from vertex.
 
void release_face_status()
Remove property.
 
const StatusInfo & status(VertexHandle _vh) const
Get status.
 
KernelConstVertexIter vertices_end() const
Kernel item iterator.
 
VertexHandle new_vertex()
Add a new (default) vertex.
 
KernelEdgeIter edges_begin()
Kernel item iterator.
 
void request_vertex_texcoords1D()
Request property.
 
const Color & color(VertexHandle _vh) const
Get color.
 
void set_texcoord1D(HalfedgeHandle _hh, const TexCoord1D &_t)
Set texture coordinate of the to vertex of the given Halfedge (per face per vertex texcoords)
 
void release_halfedge_normals()
Remove property.
 
void request_vertex_texcoords3D()
Request property.
 
const T & property(MPropHandleT< T > _ph) const
Get value for item represented by the handle.
 
KernelConstEdgeIter edges_end() const
Kernel item iterator.
 
bool has_vertex_normals() const
Is property available?
 
EdgeHandle edge_handle(unsigned int _i) const
Get the i'th item.
 
bool has_face_status() const
Is property available?
 
void release_face_colors()
Remove property.
 
T & property(FPropHandleT< T > _ph, FaceHandle _vh)
Get value for item represented by the handle.
 
bool has_halfedge_normals() const
Is property available?
 
void release_edge_status()
Remove property.
 
void set_vertex_handle(HalfedgeHandle _heh, VertexHandle _vh)
Set the to-vertex-handle of the halfedge.
 
void set_face_handle(HalfedgeHandle _heh, FaceHandle _fh)
Set the face the halfedge belongs to.
 
Point & point(VertexHandle _vh)
Convenience function.
 
bool has_halfedge_texcoords1D() const
Is property available?
 
FinalMeshItems::FaceHandle FaceHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:95
 
void set_next_halfedge_handle(HalfedgeHandle _heh, HalfedgeHandle _nheh)
Set the next halfedge handle.
 
bool has_edge_status() const
Is property available?
 
void set_normal(FaceHandle _fh, const Normal &_n)
Set normal.
 
FinalMeshItems::HalfedgeHandle HalfedgeHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:93
 
const Edge & edge(EdgeHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:148
 
void set_point(VertexHandle _vh, const Point &_p)
Set the coordinate of a vertex.
 
bool edges_empty() const
Is the edge container empty?
 
void release_halfedge_status()
Remove property.
 
void request_face_status()
Request property.
 
void set_normal(VertexHandle _vh, const Normal &_n)
Set normal.
 
StatusInfo & status(VertexHandle _vh)
Get status.
 
void release_halfedge_texcoords1D()
Remove property.
 
void reserve(size_t _n_vertices, size_t _n_edges, size_t _n_faces)
Reserve memory for vertices, edges, faces.
 
const Color & color(FaceHandle _fh) const
Get color.
 
void clean()
Delete all items, i.e.
 
KernelVertexIter vertices_begin()
Kernel item iterator.
 
VertexHandle handle(const Vertex &_v) const
Translate item to handle.
 
bool has_face_colors() const
Is property available?
 
bool has_halfedge_texcoords3D() const
Is property available?
 
const PropertyT< T > & mproperty(MPropHandleT< T > _ph) const
Get property.
 
void release_vertex_texcoords3D()
Remove property.
 
void set_color(EdgeHandle _eh, const Color &_c)
Set color.
 
HalfedgeHandle next_halfedge_handle(HalfedgeHandle _heh) const
Get the next halfedge handle.
 
EdgeHandle handle(const Edge &_e) const
Translate item to handle.
 
bool has_vertex_texcoords1D() const
Is property available?
 
bool has_vertex_status() const
Is property available?
 
FinalMeshItems::VertexHandle VertexHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:92
 
StatusInfo & status(HalfedgeHandle _vh)
Get status.
 
bool halfedges_empty() const
Is the halfedge container empty (should be the same as edges_empty()).
 
VertexHandle from_vertex_handle(HalfedgeHandle _heh) const
Get the vertex the halfedge starts from (implemented as to-handle of the opposite halfedge,...
 
void remove_last_edge()
Remove the last edge imidiately, i.e.
Definition: MeshKernel.hh:205
 
bool has_vertex_texcoords2D() const
Is property available?
 
void remove_property([VEHFM]PropHandleT< T > &)
Remove property.
 
void set_texcoord2D(VertexHandle _vh, const TexCoord2D &_t)
Set texture coordinate.
 
void set_color(HalfedgeHandle _heh, const Color &_c)
Set color.
 
StatusInfo & status(EdgeHandle _vh)
Get status.
 
FinalMeshItems::Point Point
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:87
 
KernelT & operator=(const KernelT &_rhs)
Assignment operator.
 
FinalMeshItems::Normal Normal
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:89
 
T & property(HPropHandleT< T > _ph, HalfedgeHandle _vh)
Get value for item represented by the handle.
 
void release_vertex_texcoords2D()
Remove property.
 
T & property(VPropHandleT< T > _ph, VertexHandle _vh)
Get value for item represented by the handle.
 
const TexCoord3D & texcoord3D(VertexHandle _vh) const
Get texture coordinate.
 
bool faces_empty() const
Is the face container empty?
 
void request_halfedge_normals()
Request property.
 
Halfedge & halfedge(HalfedgeHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:147
 
bool has_halfedge_texcoords2D() const
Is property available?
 
FinalMeshItems::Edge Edge
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:85
 
size_t n_faces() const
Returns number of faces.
 
const Face & face(FaceHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:150
 
const Color & color(HalfedgeHandle _heh) const
Get color.
 
FinalMeshItems::Vertex Vertex
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:83
 
Face & face(FaceHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:151
 
KernelEdgeIter edges_end()
Kernel item iterator.
 
void request_edge_colors()
Request property.
 
void request_halfedge_texcoords1D()
Request property.
 
size_t n_halfedges() const
Returns number of halfedges (should be 2*n_edges())
 
const T & property(HPropHandleT< T > _ph, HalfedgeHandle _vh) const
Get value for item represented by the handle.
 
FinalMeshItems::Face Face
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:86
 
void request_face_normals()
Request property.
 
bool has_vertex_texcoords3D() const
Is property available?
 
VertexHandle to_vertex_handle(HalfedgeHandle _heh) const
Get the vertex the halfedge points to.
 
void set_texcoord3D(VertexHandle _vh, const TexCoord3D &_t)
Set texture coordinate.
 
Handle for a vertex entity.
Definition: Handles.hh:121
 
Default property class for any type T.
Definition: Property.hh:93
 
Handle representing a vertex property.
Definition: Property.hh:417
 
Handle representing a halfedge property.
Definition: Property.hh:432
 
Handle representing an edge property.
Definition: Property.hh:447
 
Handle representing a face property.
Definition: Property.hh:462
 
Handle representing a mesh property.
Definition: Property.hh:477