37#include <OpenVolumeMesh/Mesh/TetrahedralMeshIterators.hh>
38#include <OpenVolumeMesh/Mesh/TetrahedralMeshTopologyKernel.hh>
39#include <OpenVolumeMesh/Core/Iterators.hh>
41namespace OpenVolumeMesh {
48TetVertexIter::TetVertexIter(CellHandle _ref_h,
49 const TetrahedralMeshTopologyKernel* _mesh,
int _max_laps) :
50BaseIter(_mesh, _ref_h, _max_laps) {
52 assert(_ref_h.is_valid());
54 assert(_mesh->valence(_ref_h) == 4);
56 const auto& cell_vhs = _mesh->get_cell_vertices(_ref_h);
57 vertices_[0] = cell_vhs[0];
58 vertices_[1] = cell_vhs[1];
59 vertices_[2] = cell_vhs[2];
60 vertices_[3] = cell_vhs[3];
63 BaseIter::cur_handle(vertices_[cur_index_]);
67TetVertexIter& TetVertexIter::operator--() {
69 if (cur_index_ == 0) {
70 cur_index_ = vertices_.size() - 1;
73 BaseIter::valid(
false);
78 BaseIter::cur_handle(vertices_[cur_index_]);
84TetVertexIter& TetVertexIter::operator++() {
87 if(cur_index_ == vertices_.size()) {
90 if (lap_ >= max_laps_)
91 BaseIter::valid(
false);
94 BaseIter::cur_handle(vertices_[cur_index_]);