Classes | Public Types | Public Member Functions

OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K > Class Template Reference

#include <polymesh_mesh.h>

Inheritance diagram for OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >:
OpenTissue::polymesh::PolyMesh< M, V, H, E, F, K > OpenTissue::polymesh::PolyMesh< M, OBBTreeVertexTraits< M >, OBBTreeHalfEdgeTraits, OBBTreeEdgeTraits, OBBTreeFaceTraits< M >, polymesh::PolyMeshListKernel > OpenTissue::polymesh::PolyMesh< M, VoronoiClipVertexTraits< M >, VoronoiClipHalfEdgeTraits< M >, VoronoiClipEdgeTraits, VoronoiClipFaceTraits< M >, polymesh::PolyMeshListKernel > OpenTissue::obb_tree::OBBTreeTypes< math_types_ >::OBBTreeMesh< M > OpenTissue::vclip::VClipMesh< M >

List of all members.

Classes

struct  assign_owner

Public Types

typedef M math_types
typedef V vertex_traits
typedef H halfedge_traits
typedef E edge_traits
typedef F face_traits
typedef PMesh< M, V, H, E, F, K > mesh_type
typedef PolyMeshVertex< mesh_typevertex_type
typedef PolyMeshHalfEdge
< mesh_type
halfedge_type
typedef PolyMeshEdge< mesh_typeedge_type
typedef PolyMeshFace< mesh_typeface_type
typedef K< vertex_type,
halfedge_type, edge_type,
face_type
kernel_type
typedef kernel_type::vertex_handle vertex_handle
typedef
kernel_type::halfedge_handle 
halfedge_handle
typedef kernel_type::edge_handle edge_handle
typedef kernel_type::face_handle face_handle
typedef
kernel_type::vertex_iterator 
vertex_iterator
typedef
kernel_type::halfedge_iterator 
halfedge_iterator
typedef kernel_type::edge_iterator edge_iterator
typedef kernel_type::face_iterator face_iterator
typedef
kernel_type::opt_vertex_iter 
opt_vertex_iter
typedef
kernel_type::opt_halfedge_iter 
opt_halfedge_iter
typedef
kernel_type::const_vertex_iterator 
const_vertex_iterator
typedef
kernel_type::const_halfedge_iterator 
const_halfedge_iterator
typedef
kernel_type::const_edge_iterator 
const_edge_iterator
typedef
kernel_type::const_face_iterator 
const_face_iterator
typedef
PolyMeshVertexVertexCirculator
< PMesh, vertex_type
vertex_vertex_circulator
typedef
PolyMeshVertexHalfedgeCirculator
< PMesh, halfedge_type
vertex_halfedge_circulator
typedef
PolyMeshVertexEdgeCirculator
< PMesh, edge_type
vertex_edge_circulator
typedef
PolyMeshVertexFaceCirculator
< PMesh, face_type
vertex_face_circulator
typedef
PolyMeshVertexVertexCirculator
< PMesh, vertex_type const > 
const_vertex_vertex_circulator
typedef
PolyMeshVertexHalfedgeCirculator
< PMesh, halfedge_type const > 
const_vertex_halfedge_circulator
typedef
PolyMeshVertexEdgeCirculator
< PMesh, edge_type const > 
const_vertex_edge_circulator
typedef
PolyMeshVertexFaceCirculator
< PMesh, face_type const > 
const_vertex_face_circulator
typedef
PolyMeshFaceVertexCirculator
< PMesh, vertex_type
face_vertex_circulator
typedef
PolyMeshFaceHalfedgeCirculator
< PMesh, halfedge_type
face_halfedge_circulator
typedef
PolyMeshFaceEdgeCirculator
< PMesh, edge_type
face_edge_circulator
typedef
PolyMeshFaceFaceCirculator
< PMesh, face_type
face_face_circulator
typedef
PolyMeshFaceVertexCirculator
< PMesh, vertex_type const > 
const_face_vertex_circulator
typedef
PolyMeshFaceHalfedgeCirculator
< PMesh, halfedge_type const > 
const_face_halfedge_circulator
typedef
PolyMeshFaceEdgeCirculator
< PMesh, edge_type const > 
const_face_edge_circulator
typedef
PolyMeshFaceFaceCirculator
< PMesh, face_type const > 
const_face_face_circulator

Public Member Functions

 PMesh ()
 ~PMesh ()
 PMesh (PMesh const &m)
PMeshoperator= (PMesh const &mesh)
halfedge_iterator find_halfedge_iterator (vertex_iterator A, vertex_iterator B)
halfedge_handle find_halfedge_handle (vertex_handle A, vertex_handle B)
edge_handle find_edge_handle (vertex_handle A, vertex_handle B)
vertex_handle add_vertex ()
template<typename vector3_type >
vertex_handle add_vertex (vector3_type const &coord)
template<typename vertex_handle_iterator >
face_handle add_face (vertex_handle_iterator begin, vertex_handle_iterator end)
face_handle add_face (vertex_handle const &v0, vertex_handle const &v1, vertex_handle const &v2)
bool remove_vertex (vertex_handle const &v)
bool remove_vertex (vertex_iterator v)
bool remove_edge (edge_handle const &e)
bool remove_edge (edge_iterator e)
bool remove_face (face_handle const &f)
bool remove_face (face_iterator f)

Detailed Description

template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
class OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >

The first template argument is supposed to be a math types type binder. OpenTissue provides a simple basic math type-binder in the math sub-library. See OpenTissue::math::BasicMathTypes<real_type, size_type>

The next four template arguments are supposed to be vertex traits, halfedge traits, edge traits, and face traits. The last template argument is the polymesh kernel type that is supposed to be used.


Member Typedef Documentation

template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::const_edge_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_edge_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceEdgeCirculator<PMesh,edge_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_face_edge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceFaceCirculator<PMesh,face_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_face_face_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceHalfedgeCirculator<PMesh,halfedge_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_face_halfedge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::const_face_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_face_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceVertexCirculator<PMesh,vertex_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_face_vertex_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::const_halfedge_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_halfedge_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexEdgeCirculator<PMesh,edge_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_vertex_edge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexFaceCirculator<PMesh,face_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_vertex_face_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexHalfedgeCirculator<PMesh,halfedge_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_vertex_halfedge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::const_vertex_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_vertex_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexVertexCirculator<PMesh,vertex_type const> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::const_vertex_vertex_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::edge_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::edge_handle
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::edge_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::edge_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef E OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::edge_traits
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshEdge<mesh_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::edge_type
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceEdgeCirculator<PMesh,edge_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_edge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceFaceCirculator<PMesh,face_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_face_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceHalfedgeCirculator<PMesh,halfedge_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_halfedge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::face_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_handle
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::face_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef F OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_traits
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFace<mesh_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_type
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshFaceVertexCirculator<PMesh,vertex_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::face_vertex_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::halfedge_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::halfedge_handle
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::halfedge_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::halfedge_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef H OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::halfedge_traits
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshHalfEdge<mesh_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::halfedge_type
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef K<vertex_type, halfedge_type, edge_type, face_type > OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::kernel_type
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef M OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::math_types
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PMesh<M,V,H,E,F,K> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::mesh_type
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::opt_halfedge_iter OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::opt_halfedge_iter
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::opt_vertex_iter OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::opt_vertex_iter
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexEdgeCirculator<PMesh,edge_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_edge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexFaceCirculator<PMesh,face_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_face_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexHalfedgeCirculator<PMesh,halfedge_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_halfedge_circulator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::vertex_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_handle
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef kernel_type::vertex_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_iterator
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef V OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_traits
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertex<mesh_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_type
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
typedef PolyMeshVertexVertexCirculator<PMesh,vertex_type> OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::vertex_vertex_circulator

Constructor & Destructor Documentation

template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::PMesh (  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::~PMesh (  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::PMesh ( PMesh< M, V, H, E, F, K > const &  m  )  [inline, explicit]

Member Function Documentation

template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
template<typename vertex_handle_iterator >
face_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::add_face ( vertex_handle_iterator  begin,
vertex_handle_iterator  end 
) [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
face_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::add_face ( vertex_handle const &  v0,
vertex_handle const &  v1,
vertex_handle const &  v2 
) [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
vertex_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::add_vertex (  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
template<typename vector3_type >
vertex_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::add_vertex ( vector3_type const &  coord  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
edge_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::find_edge_handle ( vertex_handle  A,
vertex_handle  B 
) [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
halfedge_handle OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::find_halfedge_handle ( vertex_handle  A,
vertex_handle  B 
) [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
halfedge_iterator OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::find_halfedge_iterator ( vertex_iterator  A,
vertex_iterator  B 
) [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
PMesh& OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::operator= ( PMesh< M, V, H, E, F, K > const &  mesh  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
bool OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::remove_edge ( edge_handle const &  e  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
bool OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::remove_edge ( edge_iterator  e  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
bool OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::remove_face ( face_handle const &  f  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
bool OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::remove_face ( face_iterator  f  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
bool OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::remove_vertex ( vertex_handle const &  v  )  [inline]
template<typename M, typename V, typename H, typename E, typename F, template< typename, typename, typename, typename > class K>
bool OpenTissue::polymesh::detail::PMesh< M, V, H, E, F, K >::remove_vertex ( vertex_iterator  v  )  [inline]

The documentation for this class was generated from the following file: