bitrl & cuberl Documentation
Simulation engine for reinforcement learning agents
Loading...
Searching...
No Matches
element_mesh_iterator.h
Go to the documentation of this file.
1#ifndef ELEMENT_ITERATOR_H
2#define ELEMENT_ITERATOR_H
3
5
6namespace bitrl
7{
8namespace utils
9{
10namespace geom
11{
12
13template <typename Predicate, typename MeshTp> class ElementMeshIterator
14{
15
16 public:
18 typedef MeshTp mesh_t;
19 typedef typename mesh_t::element_iterator_impl iterator_impl;
22
25
28
30 result_t end();
31
33 template <typename T> result_t begin(const T &item);
34
36 template <typename T> result_t end(const T &item);
37
38 protected:
39 // the mesh over which the iterator is working
41};
42
43template <typename Predicate, typename MeshTp>
49
50template <typename Predicate, typename MeshTp>
53{
54 Predicate p;
55 return ElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_begin(),
56 mesh_.elements_end());
57}
58
59template <typename Predicate, typename MeshTp>
62{
63 Predicate p;
64 return ElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_end(),
65 mesh_.elements_end());
66}
67
68template <typename Predicate, typename MeshTp>
69template <typename T>
72{
73 Predicate p(item);
74 return ElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_begin(),
75 mesh_.elements_end());
76}
77
78template <typename Predicate, typename MeshTp>
79template <typename T>
82{
83 Predicate p(item);
84 return ElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_end(),
85 mesh_.elements_end());
86}
87
88template <typename Predicate, typename MeshTp> class ConstElementMeshIterator
89{
90
91 public:
93 typedef MeshTp mesh_t;
94 typedef typename mesh_t::celement_iterator_impl iterator_impl;
97
100
102 result_t begin() const;
103
105 result_t end() const;
106
108 template <typename T> result_t begin(const T &item) const;
109
111 template <typename T> result_t end(const T &item) const;
112
113 protected:
114 // the mesh over which the iterator is working
115 const mesh_t &mesh_;
116};
117
118template <typename Predicate, typename MeshTp>
124
125template <typename Predicate, typename MeshTp>
128{
129 Predicate p;
130 return ConstElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_begin(),
131 mesh_.elements_end());
132}
133
134template <typename Predicate, typename MeshTp>
137{
138 Predicate p;
139 return ConstElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_end(),
140 mesh_.elements_end());
141}
142
143template <typename Predicate, typename MeshTp>
144template <typename T>
147{
148 Predicate p(item);
149 return ConstElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_begin(),
150 mesh_.elements_end());
151}
152
153template <typename Predicate, typename MeshTp>
154template <typename T>
157{
158 Predicate p(item);
159 return ConstElementMeshIterator<Predicate, MeshTp>::result_t(p, mesh_.elements_end(),
160 mesh_.elements_end());
161}
162
163} // namespace geom
164
165} // namespace utils
166} // namespace bitrl
167
168#endif // ELEMENT_ITERATOR_H
Simple wrapper to boost::filter_iterator.
Definition filtered_iterator.h:13
iterator_t::value_type value_type
Definition filtered_iterator.h:19
Definition element_mesh_iterator.h:89
FilteredIterator< Predicate, iterator_impl >::value_type value_type
Definition element_mesh_iterator.h:95
result_t end() const
end the iteration
Definition element_mesh_iterator.h:136
result_t begin() const
begin the iteration
Definition element_mesh_iterator.h:127
MeshTp mesh_t
Definition element_mesh_iterator.h:93
Predicate predicate_t
Definition element_mesh_iterator.h:92
FilteredIterator< Predicate, iterator_impl > result_t
Definition element_mesh_iterator.h:96
const mesh_t & mesh_
Definition element_mesh_iterator.h:115
mesh_t::celement_iterator_impl iterator_impl
Definition element_mesh_iterator.h:94
ConstElementMeshIterator(const mesh_t &mesh)
constructor
Definition element_mesh_iterator.h:119
Definition element_mesh_iterator.h:14
Predicate predicate_t
Definition element_mesh_iterator.h:17
MeshTp mesh_t
Definition element_mesh_iterator.h:18
FilteredIterator< Predicate, iterator_impl > result_t
Definition element_mesh_iterator.h:21
result_t begin()
begin the iteration
Definition element_mesh_iterator.h:52
mesh_t & mesh_
Definition element_mesh_iterator.h:40
mesh_t::element_iterator_impl iterator_impl
Definition element_mesh_iterator.h:19
FilteredIterator< Predicate, iterator_impl >::value_type value_type
Definition element_mesh_iterator.h:20
ElementMeshIterator(mesh_t &mesh)
constructor
Definition element_mesh_iterator.h:44
result_t end()
end the iteration
Definition element_mesh_iterator.h:61
OutT resolve(const std::string &name, const std::map< std::string, std::any > &input)
Definition std_map_utils.h:25
Definition bitrl_consts.h:14