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;
89 typedef typename FinalMeshItems::Normal
Normal;
91 typedef typename FinalMeshItems::TexCoord
TexCoord;
136 void reserve(
size_t _n_vertices,
143 const Vertex&
vertex(VertexHandle _h)
const {
return deref(_h); }
145 Vertex&
vertex(VertexHandle _h) {
return deref(_h); }
146 const Halfedge&
halfedge(HalfedgeHandle _h)
const {
return deref(_h); }
147 Halfedge&
halfedge(HalfedgeHandle _h) {
return deref(_h); }
148 const Edge&
edge(EdgeHandle _h)
const {
return deref(_h); }
149 Edge&
edge(EdgeHandle _h) {
return deref(_h); }
150 const Face&
face(FaceHandle _h)
const {
return deref(_h); }
151 Face&
face(FaceHandle _h) {
return deref(_h); }
157 VertexHandle
handle(
const Vertex& _v)
const;
159 HalfedgeHandle
handle(
const Halfedge& _he)
const;
160 EdgeHandle
handle(
const Edge& _e)
const;
161 FaceHandle
handle(
const Face& _f)
const;
245 const Point&
point(VertexHandle _vh)
const;
247 const Point&
point(
const Vertex& _v)
const;
249 void set_point(VertexHandle _vh,
const Point& _p);
251 void set_point(Vertex& _v,
const Point& _p);
316 const Point&
point(VertexHandle _vh)
const;
317 void set_point(VertexHandle _vh,
const Point& _p);
318 Point&
point(VertexHandle _vh);
320 const Normal&
normal(VertexHandle _vh)
const;
321 void set_normal(VertexHandle _vh,
const Normal& _n);
323 const Normal&
normal(HalfedgeHandle _heh)
const;
324 void set_normal(HalfedgeHandle _heh,
const Normal& _n);
326 const Color&
color(VertexHandle _vh)
const;
327 void set_color(VertexHandle _vh,
const Color& _c);
347 const StatusInfo&
status(VertexHandle _vh)
const;
348 StatusInfo&
status(VertexHandle _vh);
351 const StatusInfo&
status(HalfedgeHandle _vh)
const;
352 StatusInfo&
status(HalfedgeHandle _vh);
354 const Color&
color(HalfedgeHandle _heh)
const;
355 void set_color(HalfedgeHandle _heh,
const Color& _c);
358 const Color&
color(EdgeHandle _eh)
const;
359 void set_color(EdgeHandle _eh,
const Color& _c);
362 const StatusInfo&
status(EdgeHandle _vh)
const;
363 StatusInfo&
status(EdgeHandle _vh);
366 const Normal&
normal(FaceHandle _fh)
const;
367 void set_normal(FaceHandle _fh,
const Normal& _n);
369 const Color&
color(FaceHandle _fh)
const;
370 void set_color(FaceHandle _fh,
const Color& _c);
372 const StatusInfo&
status(FaceHandle _vh)
const;
373 StatusInfo&
status(FaceHandle _vh);
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>
539 HalfedgeHandle
new_edge(VertexHandle _start_vertex_handle,
540 VertexHandle _end_vertex_handle);
548 FaceHandle
new_face(
const Face& _f);
SomeIterator KernelConstEdgeIter
This type depends on the container type in use.
void request_face_texture_index()
Request property.
size_t n_faces() const
Returns number of faces.
KernelEdgeIter edges_begin()
void release_edge_colors()
Remove property.
void release_halfedge_colors()
Remove property.
void request_halfedge_texcoords2D()
Request property.
void set_texcoord3D(VertexHandle _vh, const TexCoord3D &_t)
Set texture coordinate.
Add 1D texture coordinates (vertices, halfedges)
KernelVertexIter vertices_end()
void release_halfedge_texcoords3D()
Remove property.
size_t n_halfedges() const
Returns number of halfedges (should be 2*n_edges())
void release_vertex_colors()
Remove property.
KernelFaceIter faces_begin()
FinalMeshItems::Color Color
Derive this type from the FinalMeshItems.
void set_face_handle(HalfedgeHandle _heh, FaceHandle _fh)
Set the face the halfedge belongs to.
KernelVertexIter vertices_begin()
FinalMeshItems::Point Point
Derive this type from the FinalMeshItems.
void release_edge_status()
Remove property.
void set_vertex_handle(HalfedgeHandle _heh, VertexHandle _vh)
Set the to-vertex-handle of the halfedge.
bool has_vertex_colors() const
Is property available?
void release_halfedge_texcoords2D()
Remove property.
void add_property([VEHFM]PropHandleT< T > &_ph, const std::string &_name="")
void set_point(VertexHandle _vh, const Point &_p)
Set the coordinate of a vertex.
void request_edge_colors()
Request property.
void release_vertex_status()
Remove property.
FinalMeshItems::Edge Edge
Derive this type from the FinalMeshItems.
bool has_face_texture_index() const
Is property available?
FinalMeshItems::FaceHandle FaceHandle
Derive this type from the FinalMeshItems.
bool has_vertex_normals() const
Is property available?
VertexHandle to_vertex_handle(HalfedgeHandle _heh) const
Get the vertex the halfedge points to.
void release_halfedge_normals()
Remove property.
bool edges_empty() const
Is the edge container empty?
FinalMeshItems::Halfedge Halfedge
Derive this type from the FinalMeshItems.
void set_normal(VertexHandle _vh, const Normal &_n)
Set normal.
bool has_halfedge_normals() const
Is property available?
const Vertex & vertex(VertexHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
const Edge & edge(EdgeHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
void remove_last_vertex()
Add colors to mesh item (vertices/faces/edges)
SomeIterator KernelConstFaceIter
This type depends on the container type in use.
void release_halfedge_texcoords1D()
Remove property.
bool has_edge_colors() const
Is property available?
void request_halfedge_normals()
Request property.
void request_face_normals()
Request property.
HalfedgeHandle ccw_rotated_halfedge_handle(HalfedgeHandle _heh) const
Counter-clockwise rotate the given halfedge around its from vertex.
bool has_vertex_texcoords1D() const
Is property available?
void release_halfedge_status()
Remove property.
SomeIterator KernelVertexIter
This type depends on the container type in use.
SomeIterator KernelEdgeIter
This type depends on the container type in use.
SomeIterator KernelFaceIter
This type depends on the container type in use.
size_t n_edges() const
Returns number of edges.
bool vertices_empty() const
Is the vertex container empty?
void set_color(VertexHandle _vh, const Color &_c)
Set color.
const Point & point(VertexHandle _vh) const
Get the coordinate of a vertex.
void release_vertex_texcoords1D()
Remove property.
Add 3D texture coordinates (vertices, halfedges)
Edge & edge(EdgeHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
bool has_edge_status() const
Is property available?
const TexCoord3D & texcoord3D(VertexHandle _vh) const
Get texture coordinate.
void release_face_normals()
Remove property.
void request_halfedge_colors()
Request property.
size_t n_vertices() const
Returns number of vertices.
void request_vertex_colors()
Request property.
void request_vertex_texcoords1D()
Request property.
bool has_halfedge_colors() const
Is property available?
void set_halfedge_handle(VertexHandle _vh, HalfedgeHandle _heh)
Set the outgoing halfedge handle of a given vertex.
bool halfedges_empty() const
Is the halfedge container empty (should be the same as edges_empty()).
Face & face(FaceHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
FinalMeshItems::HalfedgeHandle HalfedgeHandle
Derive this type from the FinalMeshItems.
void release_face_texture_index()
Remove property.
FinalMeshItems::Scalar Scalar
Derive this type from the FinalMeshItems.
KernelT()
Default constructor.
HalfedgeHandle cw_rotated_halfedge_handle(HalfedgeHandle _heh) const
Clockwise rotate the given halfedge around its from vertex.
FinalMeshItems::EdgeHandle EdgeHandle
Derive this type from the FinalMeshItems.
PropertyT< T > & property([VEHF]PropHandleT< T > _ph)
Get property.
void remove_property([VEHFM]PropHandleT< T > &)
Remove property.
VertexHandle from_vertex_handle(HalfedgeHandle _heh) const
bool has_halfedge_texcoords3D() const
Is property available?
const TexCoord1D & texcoord1D(VertexHandle _vh) const
Get texture coordinate.
FinalMeshItems::Vertex Vertex
Derive this type from the FinalMeshItems.
PropertyT< T > & mproperty(MPropHandleT< T > _ph)
Get property.
bool has_vertex_texcoords3D() const
Is property available?
bool has_face_normals() const
Is property available?
Default property class for any type T.
void set_next_halfedge_handle(HalfedgeHandle _heh, HalfedgeHandle _nheh)
bool get_property_handle([VEHFM]PropHandleT< T > &ph, const std::string &_n) const
Get property handle by name.
Add 2D texture coordinates (vertices, halfedges)
void request_halfedge_texcoords1D()
Request property.
const Halfedge & halfedge(HalfedgeHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
VertexHandle new_vertex()
EdgeHandle edge_handle(unsigned int _i) const
Get the i'th item.
bool has_vertex_texcoords2D() const
Is property available?
void request_vertex_texcoords2D()
Request property.
void request_halfedge_status()
Request property.
void request_face_status()
Request property.
const Face & face(FaceHandle _h) const
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
HalfedgeHandle opposite_halfedge_handle(HalfedgeHandle _heh) const
Get the opposite halfedge.
void request_face_colors()
Request property.
void release_face_colors()
Remove property.
HalfedgeHandle halfedge_handle(unsigned int _i) const
Get the i'th item.
SomeIterator KernelConstVertexIter
This type depends on the container type in use.
bool has_halfedge_status() const
Is property available?
bool has_halfedge_texcoords1D() const
Is property available?
FinalMeshItems::Face Face
Derive this type from the FinalMeshItems.
void set_texcoord2D(VertexHandle _vh, const TexCoord2D &_t)
Set texture coordinate.
void request_vertex_texcoords3D()
Request property.
const Normal & normal(VertexHandle _vh) const
Get normal.
KernelT & operator=(const KernelT &_rhs)
Assignment operator.
FinalMeshItems::TexCoord TexCoord
Derive this type from the FinalMeshItems.
bool has_face_colors() const
Is property available?
VertexHandle vertex_handle(unsigned int _i) const
Get the i'th item.
void set_texcoord1D(VertexHandle _vh, const TexCoord1D &_t)
Set texture coordinate.
void request_vertex_status()
Request property.
HalfedgeHandle next_halfedge_handle(HalfedgeHandle _heh) const
Get the next halfedge handle.
HalfedgeHandle prev_halfedge_handle(HalfedgeHandle _heh) const
void release_vertex_texcoords3D()
Remove property.
bool has_vertex_status() const
Is property available?
Vertex & vertex(VertexHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
void release_vertex_normals()
Remove property.
VertexHandle handle(const Vertex &_v) const
Translate item to handle.
void request_vertex_normals()
Request property.
void release_face_status()
Remove property.
KernelFaceIter faces_end()
const StatusInfo & status(VertexHandle _vh) const
Get status.
void reserve(size_t _n_vertices, size_t _n_edges, size_t _n_faces)
void request_halfedge_texcoords3D()
Request property.
void garbage_collection()
FinalMeshItems::VertexHandle VertexHandle
Derive this type from the FinalMeshItems.
bool has_face_status() const
Is property available?
FaceHandle face_handle(unsigned int _i) const
Get the i'th item.
KernelEdgeIter edges_end()
const TexCoord2D & texcoord2D(VertexHandle _vh) const
Get texture coordinate.
bool faces_empty() const
Is the face container empty?
void release_vertex_texcoords2D()
Remove property.
Halfedge & halfedge(HalfedgeHandle _h)
Translate handle to item (see also OpenMesh::PolyMeshT::deref())
void request_edge_status()
Request property.
bool has_halfedge_texcoords2D() const
Is property available?
HalfedgeHandle new_edge(VertexHandle _start_vertex_handle, VertexHandle _end_vertex_handle)
const Color & color(VertexHandle _vh) const
Get color.
FinalMeshItems::Normal Normal
Derive this type from the FinalMeshItems.