DSC
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
is_mesh_iterator.h
1 //
2 // Deformabel Simplicial Complex (DSC) method
3 // Copyright (C) 2013 Technical University of Denmark
4 //
5 // This program is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // See licence.txt for a copy of the GNU General Public License.
16 
17 #pragma once
18 
19 #include "kernel.h"
20 #include "key.h"
21 #include "simplex.h"
22 #include "simplex_set.h"
23 #include "node.h"
24 #include "edge.h"
25 #include "tetrahedron.h"
26 #include "face.h"
27 
28 namespace is_mesh {
29  class NodeIterator {
30  const kernel<NodeKey, Node> *m_node_kernel;
31  public:
32  NodeIterator(const kernel<NodeKey, Node> *m_node_kernel);
33 
34  typename kernel<NodeKey, Node>::iterator begin() const;
35 
36  typename kernel<NodeKey, Node>::iterator end() const;
37  };
38 
39  class EdgeIterator {
40  const kernel<EdgeKey, Edge>* m_edge_kernel;
41  public:
42  EdgeIterator(const kernel<EdgeKey, Edge> *m_edge_kernel);
43 
44  typename kernel<EdgeKey, Edge>::iterator begin() const;
45 
46  typename kernel<EdgeKey, Edge>::iterator end() const;
47  };
48 
49  class FaceIterator {
50  const kernel<FaceKey, Face>* m_face_kernel;
51  public:
52  FaceIterator(const kernel<FaceKey, Face> *m_face_kernel);
53 
54  typename kernel<FaceKey, Face>::iterator begin() const;
55 
56  typename kernel<FaceKey, Face>::iterator end() const;
57 
58  };
59 
61  const kernel<TetrahedronKey, Tetrahedron>* m_tetrahedron_kernel;
62  public:
63  TetrahedronIterator(const kernel<TetrahedronKey, Tetrahedron> *m_tetrahedron_kernel);
64 
65  typename kernel<TetrahedronKey, Tetrahedron>::iterator begin() const;
66 
68 
69  };
70 }
Definition: kernel_iterator.h:22
Definition: is_mesh_iterator.h:60
Definition: is_mesh_iterator.h:49
Definition: is_mesh_iterator.h:29
Definition: kernel.h:80
Definition: is_mesh_iterator.h:39