42 #include "../Core/TopologyKernel.hh" 43 #include "TetrahedralMeshIterators.hh" 44 #include "OpenVolumeMesh/Config/Export.hh" 61 FaceHandle add_face(
const std::vector<HalfEdgeHandle>& _halfedges,
bool _topologyCheck =
false)
override;
63 FaceHandle add_face(
const std::vector<VertexHandle>& _vertices)
override;
65 CellHandle add_cell(
const std::vector<HalfFaceHandle>& _halffaces,
bool _topologyCheck =
false)
override;
67 CellHandle add_cell(
const std::vector<VertexHandle>& _vertices,
bool _topologyCheck =
false);
71 HalfFaceHandle add_halfface(
const std::vector<HalfEdgeHandle>& _halfedges,
bool _topologyCheck =
false);
76 std::vector<VertexHandle> get_cell_vertices(
CellHandle ch)
const;
78 std::vector<VertexHandle> get_cell_vertices(
HalfFaceHandle hfh)
const;
81 std::vector<VertexHandle> get_halfface_vertices(
HalfFaceHandle hfh)
const;
98 friend class TetVertexIter;
100 typedef class TetVertexIter TetVertexIter;
102 TetVertexIter tv_iter(
const CellHandle& _ref_h,
int _max_laps = 1)
const {
103 return TetVertexIter(_ref_h,
this, _max_laps);
106 std::pair<TetVertexIter,TetVertexIter> tet_vertices(
const CellHandle& _ref_h,
int _max_laps = 1)
const {
107 TetVertexIter begin = tv_iter(_ref_h, _max_laps);
108 TetVertexIter end = make_end_circulator(begin);
109 return std::make_pair(begin, end);
116 template <
typename PropIterator,
typename Handle>
117 void swapPropertyElements(PropIterator begin, PropIterator end, Handle source, Handle destination)
119 PropIterator p_iter = begin;
120 for (; p_iter != end; ++p_iter)
121 (*p_iter)->swap_elements(source, destination);
A data structure based on PolyhedralMesh with specializations for tetrahedra.