Reference documentation for deal.II version 9.1.0-pre
tria_iterator_selector.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2003 - 2018 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_tria_iterator_selector_h
17 #define dealii_tria_iterator_selector_h
18 
19 
20 #include <deal.II/base/config.h>
21 
22 DEAL_II_NAMESPACE_OPEN
23 
24 template <int dim, int spacedim>
25 class CellAccessor;
26 template <int, int, int>
27 class InvalidAccessor;
28 template <int, int, int>
29 class TriaAccessor;
30 template <int dim, int spacedim>
31 class TriaAccessor<0, dim, spacedim>;
32 template <typename Accessor>
33 class TriaRawIterator;
34 template <typename Accessor>
35 class TriaIterator;
36 template <typename Accessor>
37 class TriaActiveIterator;
38 
39 namespace internal
40 {
41  namespace TriangulationImplementation
42  {
43  template <int dim, int spacedim>
44  struct Iterators;
45 
76  template <int spacedim>
77  struct Iterators<1, spacedim>
78  {
79  using raw_line_iterator =
82  using active_line_iterator =
84 
85  using raw_quad_iterator =
87  using quad_iterator =
89  using active_quad_iterator =
91 
92  using raw_hex_iterator =
94  using hex_iterator =
96  using active_hex_iterator =
98  };
99 
100 
101 
138  template <int spacedim>
139  struct Iterators<2, spacedim>
140  {
141  using raw_line_iterator =
144  using active_line_iterator =
146 
147  using raw_quad_iterator =
150  using active_quad_iterator =
152 
153  using raw_hex_iterator =
155  using hex_iterator =
157  using active_hex_iterator =
159  };
160 
161 
183  template <int spacedim>
184  struct Iterators<3, spacedim>
185  {
186  using raw_line_iterator =
189  using active_line_iterator =
191 
192  using raw_quad_iterator =
195  using active_quad_iterator =
197 
198  using raw_hex_iterator =
201  using active_hex_iterator =
203  };
204 
205  } // namespace TriangulationImplementation
206 
207 } // namespace internal
208 
209 DEAL_II_NAMESPACE_CLOSE
210 
211 #endif // dealii_tria_iterator_selector_h