Developer Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
TetrahedralMeshIterators.hh
1
/*===========================================================================*\
2
* *
3
* OpenVolumeMesh *
4
* Copyright (C) 2011 by Computer Graphics Group, RWTH Aachen *
5
* www.openvolumemesh.org *
6
* *
7
*---------------------------------------------------------------------------*
8
* This file is part of OpenVolumeMesh. *
9
* *
10
* OpenVolumeMesh is free software: you can redistribute it and/or modify *
11
* it under the terms of the GNU Lesser General Public License as *
12
* published by the Free Software Foundation, either version 3 of *
13
* the License, or (at your option) any later version with the *
14
* following exceptions: *
15
* *
16
* If other files instantiate templates or use macros *
17
* or inline functions from this file, or you compile this file and *
18
* link it with other files to produce an executable, this file does *
19
* not by itself cause the resulting executable to be covered by the *
20
* GNU Lesser General Public License. This exception does not however *
21
* invalidate any other reasons why the executable file might be *
22
* covered by the GNU Lesser General Public License. *
23
* *
24
* OpenVolumeMesh is distributed in the hope that it will be useful, *
25
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
26
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
27
* GNU Lesser General Public License for more details. *
28
* *
29
* You should have received a copy of the GNU LesserGeneral Public *
30
* License along with OpenVolumeMesh. If not, *
31
* see <http://www.gnu.org/licenses/>. *
32
* *
33
\*===========================================================================*/
34
35
/*===========================================================================*\
36
* *
37
* $Revision$ *
38
* $Date$ *
39
* $LastChangedBy$ *
40
* *
41
\*===========================================================================*/
42
43
#ifndef TETRAHEDRALMESHITERATORS_HH
44
#define TETRAHEDRALMESHITERATORS_HH
45
46
#include "../Core/Iterators.hh"
47
48
namespace
OpenVolumeMesh
{
49
50
class
TetrahedralMeshTopologyKernel;
51
52
59
class
TetVertexIter
:
public
BaseCirculator
<CellHandle,
60
VertexHandle> {
61
private
:
62
typedef
BaseCirculator
<
CellHandle
,
63
VertexHandle
>
BaseIter
;
64
public
:
65
TetVertexIter
(
const
CellHandle& _ref_h,
66
const
TetrahedralMeshTopologyKernel
* _mesh,
67
int
_max_laps = 1);
68
69
// Post increment/decrement operator
70
TetVertexIter
operator++(
int
) {
71
TetVertexIter
cpy = *
this
;
72
++(*this);
73
return
cpy;
74
}
75
TetVertexIter
operator--(
int
) {
76
TetVertexIter
cpy = *
this
;
77
--(*this);
78
return
cpy;
79
}
80
TetVertexIter
operator+(
int
_n) {
81
TetVertexIter
cpy = *
this
;
82
for
(
int
i = 0; i < _n; ++i) {
83
++cpy;
84
}
85
return
cpy;
86
}
87
TetVertexIter
operator-(
int
_n) {
88
TetVertexIter
cpy = *
this
;
89
for
(
int
i = 0; i < _n; ++i) {
90
--cpy;
91
}
92
return
cpy;
93
}
94
TetVertexIter
& operator+=(
int
_n) {
95
for
(
int
i = 0; i < _n; ++i) {
96
++(*this);
97
}
98
return
*
this
;
99
}
100
TetVertexIter
& operator-=(
int
_n) {
101
for
(
int
i = 0; i < _n; ++i) {
102
--(*this);
103
}
104
return
*
this
;
105
}
106
107
TetVertexIter
& operator++();
108
TetVertexIter
& operator--();
109
110
private
:
111
std::vector<VertexHandle> vertices_;
112
size_t
cur_index_;
113
};
114
115
}
// Namespace OpenVolumeMesh
116
117
#endif
/* TETRAHEDRALMESHITERATORS_HH */
OpenVolumeMesh::BaseCirculator
Definition:
Iterators.hh:136
OpenVolumeMesh::VertexHandle
Definition:
OpenVolumeMeshHandle.hh:98
OpenVolumeMesh
Definition:
ColorAttrib.hh:53
OpenVolumeMesh::TetVertexIter
Iterate over all vertices of a hexahedron in a specific order.
Definition:
TetrahedralMeshIterators.hh:59
OpenVolumeMesh::CellHandle
Definition:
OpenVolumeMeshHandle.hh:101
OpenVolumeMesh::TetrahedralMeshTopologyKernel
A data structure based on PolyhedralMesh with specializations for tetrahedra.
Definition:
TetrahedralMeshTopologyKernel.hh:63
libs_required
OpenVolumeMesh
src
OpenVolumeMesh
Mesh
TetrahedralMeshIterators.hh
Generated on Wed Oct 12 2016 12:27:48 for Developer Documentation by
1.8.11