58 #error this file is for documentation purposes only
83 template <
class FinalMeshItems>
class KernelT
91 typedef typename FinalMeshItems::Vertex
Vertex;
92 typedef typename FinalMeshItems::Halfedge
Halfedge;
93 typedef typename FinalMeshItems::Edge
Edge;
94 typedef typename FinalMeshItems::Face
Face;
95 typedef typename FinalMeshItems::Point
Point;
96 typedef typename FinalMeshItems::Scalar
Scalar;
99 typedef typename FinalMeshItems::TexCoord
TexCoord;
144 void reserve(
unsigned int _n_vertices,
145 unsigned int _n_edges,
146 unsigned int _n_faces );
151 const Vertex&
vertex(VertexHandle _h)
const {
return deref(_h); }
153 Vertex&
vertex(VertexHandle _h) {
return deref(_h); }
154 const Halfedge&
halfedge(HalfedgeHandle _h)
const {
return deref(_h); }
155 Halfedge&
halfedge(HalfedgeHandle _h) {
return deref(_h); }
156 const Edge&
edge(EdgeHandle _h)
const {
return deref(_h); }
157 Edge&
edge(EdgeHandle _h) {
return deref(_h); }
158 const Face&
face(FaceHandle _h)
const {
return deref(_h); }
159 Face&
face(FaceHandle _h) {
return deref(_h); }
165 VertexHandle
handle(
const Vertex& _v)
const;
167 HalfedgeHandle
handle(
const Halfedge& _he)
const;
168 EdgeHandle
handle(
const Edge& _e)
const;
169 FaceHandle
handle(
const Face& _f)
const;
253 const Point&
point(VertexHandle _vh)
const;
255 const Point&
point(
const Vertex& _v)
const;
257 void set_point(VertexHandle _vh,
const Point& _p);
259 void set_point(Vertex& _v,
const Point& _p);
324 const Point&
point(VertexHandle _vh)
const;
325 void set_point(VertexHandle _vh,
const Point& _p);
326 Point&
point(VertexHandle _vh);
328 const Normal&
normal(VertexHandle _vh)
const;
329 void set_normal(VertexHandle _vh,
const Normal& _n);
331 const Normal&
normal(HalfedgeHandle _heh)
const;
332 void set_normal(HalfedgeHandle _heh,
const Normal& _n);
334 const Color&
color(VertexHandle _vh)
const;
335 void set_color(VertexHandle _vh,
const Color& _c);
355 const StatusInfo&
status(VertexHandle _vh)
const;
356 StatusInfo&
status(VertexHandle _vh);
359 const StatusInfo&
status(HalfedgeHandle _vh)
const;
360 StatusInfo&
status(HalfedgeHandle _vh);
362 const Color&
color(HalfedgeHandle _heh)
const;
363 void set_color(HalfedgeHandle _heh,
const Color& _c);
366 const Color&
color(EdgeHandle _eh)
const;
367 void set_color(EdgeHandle _eh,
const Color& _c);
370 const StatusInfo&
status(EdgeHandle _vh)
const;
371 StatusInfo&
status(EdgeHandle _vh);
374 const Normal&
normal(FaceHandle _fh)
const;
375 void set_normal(FaceHandle _fh,
const Normal& _n);
377 const Color&
color(FaceHandle _fh)
const;
378 void set_color(FaceHandle _fh,
const Color& _c);
380 const StatusInfo&
status(FaceHandle _vh)
const;
381 StatusInfo&
status(FaceHandle _vh);
469 template <
typename T>
void add_property( [VEHFM]PropHandleT<T>& _ph,
472 const std::string& _name =
"" );
483 template <
typename T>
501 template <
typename T>
503 template <
typename T>
506 template <
typename T>
508 template <
typename T>
511 template <
typename T>
513 template <
typename T>
516 template <
typename T>
518 template <
typename T>
521 template <
typename T>
523 template <
typename T>
547 HalfedgeHandle
new_edge(VertexHandle _start_vertex_handle,
548 VertexHandle _end_vertex_handle);
556 FaceHandle
new_face(
const Face& _f);
Add normals to mesh item (vertices/faces)
Definition: Attributes.hh:87
void set_normal(VertexHandle _vh, const Normal &_n)
Set normal.
void request_face_texture_index()
Request property.
const StatusInfo & status(VertexHandle _vh) const
Get status.
Add colors to mesh item (vertices/faces/edges)
Definition: Attributes.hh:88
HalfedgeHandle cw_rotated_halfedge_handle(HalfedgeHandle _heh) const
Clockwise rotate the given halfedge around its from vertex.
unsigned int n_halfedges() const
Returns number of halfedges (should be 2*n_edges())
SomeIterator KernelEdgeIter
This type depends on the container type in use.
Definition: MeshKernel.hh:113
KernelFaceIter faces_begin()
Kernel item iterator.
void set_point(VertexHandle _vh, const Point &_p)
Set the coordinate of a vertex.
const Face & face(FaceHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:158
void release_face_colors()
Remove property.
FinalMeshItems::Face Face
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:94
void release_halfedge_texcoords3D()
Remove property.
Halfedge & halfedge(HalfedgeHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:155
SomeIterator KernelFaceIter
This type depends on the container type in use.
Definition: MeshKernel.hh:115
Handle representing an edge property.
Definition: Property.hh:515
bool has_vertex_colors() const
Is property available?
KernelT & operator=(const KernelT &_rhs)
Assignment operator.
void request_halfedge_normals()
Request property.
Handle representing a vertex property.
Definition: Property.hh:487
Handle representing a mesh property.
Definition: Property.hh:543
void set_texcoord2D(VertexHandle _vh, const TexCoord2D &_t)
Set texture coordinate.
Add 1D texture coordinates (vertices, halfedges)
Definition: Attributes.hh:91
FinalMeshItems::Point Point
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:95
void release_edge_status()
Remove property.
void set_texcoord3D(VertexHandle _vh, const TexCoord3D &_t)
Set texture coordinate.
void release_halfedge_texcoords1D()
Remove property.
Vertex & vertex(VertexHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:153
unsigned int n_edges() const
Returns number of edges.
void request_vertex_normals()
Request property.
void release_face_status()
Remove property.
void release_halfedge_texcoords2D()
Remove property.
void release_vertex_texcoords3D()
Remove property.
void add_property([VEHFM]PropHandleT< T > &_ph, const std::string &_name="")
Add property.
void release_halfedge_colors()
Remove property.
const Halfedge & halfedge(HalfedgeHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:154
bool vertices_empty() const
Is the vertex container empty?
FinalMeshItems::Vertex Vertex
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:91
void release_vertex_status()
Remove property.
const TexCoord3D & texcoord3D(VertexHandle _vh) const
Get texture coordinate.
void set_halfedge_handle(VertexHandle _vh, HalfedgeHandle _heh)
Set the outgoing halfedge handle of a given vertex.
void release_vertex_texcoords1D()
Remove property.
const TexCoord1D & texcoord1D(VertexHandle _vh) const
Get texture coordinate.
Default property class for any type T.
Definition: Property.hh:94
void set_vertex_handle(HalfedgeHandle _heh, VertexHandle _vh)
Set the to-vertex-handle of the halfedge.
void release_face_normals()
Remove property.
void request_halfedge_status()
Request property.
void reserve(unsigned int _n_vertices, unsigned int _n_edges, unsigned int _n_faces)
Reserve memory for vertices, edges, faces.
void request_face_status()
Request property.
SomeIterator KernelConstEdgeIter
This type depends on the container type in use.
Definition: MeshKernel.hh:114
PropertyT< T > & property([VEHF]PropHandleT< T > _ph)
Get property.
EdgeHandle edge_handle(unsigned int _i) const
Get the i'th item.
bool has_halfedge_texcoords2D() const
Is property available?
KernelT()
Default constructor.
Definition: MeshKernel.hh:122
KernelFaceIter faces_end()
Kernel item iterator.
const Color & color(VertexHandle _vh) const
Get color.
void request_vertex_texcoords2D()
Request property.
const Edge & edge(EdgeHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:156
void release_edge_colors()
Remove property.
void garbage_collection()
Remove all items that are marked as deleted from the corresponding containers.
Add 2D texture coordinates (vertices, halfedges)
Definition: Attributes.hh:92
void remove_last_edge()
Remove the last edge imidiately, i.e.
Definition: MeshKernel.hh:213
bool has_vertex_texcoords3D() const
Is property available?
Face & face(FaceHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:159
FinalMeshItems::TexCoord TexCoord
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:99
bool has_vertex_status() const
Is property available?
Handle representing a halfedge property.
Definition: Property.hh:501
void release_vertex_texcoords2D()
Remove property.
void request_edge_colors()
Request property.
void release_halfedge_status()
Remove property.
bool has_face_texture_index() const
Is property available?
bool has_face_status() const
Is property available?
KernelVertexIter vertices_begin()
Kernel item iterator.
void request_halfedge_texcoords2D()
Request property.
bool edges_empty() const
Is the edge container empty?
void request_halfedge_texcoords3D()
Request property.
FinalMeshItems::Normal Normal
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:97
void request_face_colors()
Request property.
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:64
void request_halfedge_texcoords1D()
Request property.
void request_face_normals()
Request property.
bool faces_empty() const
Is the face container empty?
void release_vertex_colors()
Remove property.
const TexCoord2D & texcoord2D(VertexHandle _vh) const
Get texture coordinate.
void release_face_texture_index()
Remove property.
HalfedgeHandle opposite_halfedge_handle(HalfedgeHandle _heh) const
Get the opposite halfedge.
HalfedgeHandle halfedge_handle(unsigned int _i) const
Get the i'th item.
HalfedgeHandle prev_halfedge_handle(HalfedgeHandle _heh) const
Get the previous halfedge of the given halfedge.
Edge & edge(EdgeHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:157
void release_halfedge_normals()
Remove property.
bool has_face_normals() const
Is property available?
PropertyT< T > & mproperty(MPropHandleT< T > _ph)
Get property.
FinalMeshItems::FaceHandle FaceHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:103
const Vertex & vertex(VertexHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
Definition: MeshKernel.hh:152
VertexHandle vertex_handle(unsigned int _i) const
Get the i'th item.
FaceHandle new_face()
Adding a new face.
bool has_halfedge_normals() const
Is property available?
bool has_vertex_texcoords2D() const
Is property available?
FinalMeshItems::HalfedgeHandle HalfedgeHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:101
const Point & point(VertexHandle _vh) const
Get the coordinate of a vertex.
void set_face_handle(HalfedgeHandle _heh, FaceHandle _fh)
Set the face the halfedge belongs to.
void request_halfedge_colors()
Request property.
VertexHandle from_vertex_handle(HalfedgeHandle _heh) const
Get the vertex the halfedge starts from (implemented as to-handle of the opposite halfedge...
This class describes the minimum interface a mesh kernel has to implement (because the resulting mesh...
Definition: MeshKernel.hh:83
bool get_property_handle([VEHFM]PropHandleT< T > &ph, const std::string &_n) const
Get property handle by name.
FinalMeshItems::Color Color
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:98
bool has_vertex_normals() const
Is property available?
KernelEdgeIter edges_end()
Kernel item iterator.
HalfedgeHandle next_halfedge_handle(HalfedgeHandle _heh) const
Get the next halfedge handle.
void request_edge_status()
Request property.
void request_vertex_texcoords1D()
Request property.
Handle representing a face property.
Definition: Property.hh:529
Add 3D texture coordinates (vertices, halfedges)
Definition: Attributes.hh:93
void remove_property([VEHFM]PropHandleT< T > &)
Remove property.
SomeIterator KernelVertexIter
This type depends on the container type in use.
Definition: MeshKernel.hh:111
VertexHandle to_vertex_handle(HalfedgeHandle _heh) const
Get the vertex the halfedge points to.
bool has_face_colors() const
Is property available?
VertexHandle handle(const Vertex &_v) const
Translate item to handle.
void set_color(VertexHandle _vh, const Color &_c)
Set color.
KernelEdgeIter edges_begin()
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 release_vertex_normals()
Remove property.
HalfedgeHandle ccw_rotated_halfedge_handle(HalfedgeHandle _heh) const
Counter-clockwise rotate the given halfedge around its from vertex.
void request_vertex_status()
Request property.
void request_vertex_colors()
Request property.
FinalMeshItems::Scalar Scalar
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:96
unsigned int n_vertices() const
Returns number of vertices.
bool has_halfedge_texcoords3D() const
Is property available?
bool has_halfedge_colors() const
Is property available?
void set_texcoord1D(VertexHandle _vh, const TexCoord1D &_t)
Set texture coordinate.
bool halfedges_empty() const
Is the halfedge container empty (should be the same as edges_empty()).
void clean()
Delete all items, i.e.
bool has_vertex_texcoords1D() const
Is property available?
void set_next_halfedge_handle(HalfedgeHandle _heh, HalfedgeHandle _nheh)
Set the next halfedge handle.
void clear()
Delete all items, i.e.
bool has_halfedge_texcoords1D() const
Is property available?
const Normal & normal(VertexHandle _vh) const
Get normal.
FinalMeshItems::Halfedge Halfedge
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:92
void remove_last_face()
Remove the last face imidiately, i.e.
Definition: MeshKernel.hh:217
FinalMeshItems::VertexHandle VertexHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:100
KernelVertexIter vertices_end()
Kernel item iterator.
void remove_last_vertex()
Remove the last vertex imidiately, i.e.
Definition: MeshKernel.hh:209
SomeIterator KernelConstFaceIter
This type depends on the container type in use.
Definition: MeshKernel.hh:116
VertexHandle new_vertex()
Add a new (default) vertex.
void request_vertex_texcoords3D()
Request property.
unsigned int n_faces() const
Returns number of faces.
FaceHandle face_handle(unsigned int _i) const
Get the i'th item.
bool has_edge_colors() const
Is property available?
FinalMeshItems::EdgeHandle EdgeHandle
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:102
SomeIterator KernelConstVertexIter
This type depends on the container type in use.
Definition: MeshKernel.hh:112
bool has_halfedge_status() const
Is property available?
bool has_edge_status() const
Is property available?
FinalMeshItems::Edge Edge
Derive this type from the FinalMeshItems.
Definition: MeshKernel.hh:93