SheafSystem  0.0.0.0
section_dof_iterator_2.h
1 
2 //
3 // Copyright (c) 2014 Limit Point Systems, Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 
18 // Interface for class section_dof_iterator
19 
20 #ifndef SECTION_DOF_ITERATOR_H
21 #define SECTION_DOF_ITERATOR_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 #ifndef POSET_DOF_ITERATOR_H
28 #include "SheafSystem/poset_dof_iterator.h"
29 #endif
30 
31 namespace fiber_bundle
32 {
33 
34 using namespace sheaf;
35 
36 
37 class section_space_schema_member;
38 
44 class SHEAF_DLL_SPEC section_dof_iterator : public poset_dof_iterator
45 {
46 
47 public:
48 
49  // CANONICAL MEMBERS
50 
54  virtual section_dof_iterator& operator=(const poset_dof_iterator& xother);
55 
59  section_dof_iterator& operator=(const section_dof_iterator& xother);
60 
64  virtual ~section_dof_iterator();
65 
69  virtual bool is_ancestor_of(const any* other) const;
70 
74  virtual section_dof_iterator* clone() const = 0;
75 
79  virtual bool invariant() const;
80 
81  // OTHER CONSTRUCTORS
82 
83  // ITERATOR FACET
84 
89  section_space_schema_member& anchor();
90 
95  const section_space_schema_member& anchor() const;
96 
97  // DOF ITERATOR FACET
98 
99  // Item is not virtual; descendant redefinitions
100  // with covariant signature hide this version.
101 
105  section_space_schema_member& item();
106 
110  const section_space_schema_member& item() const;
111 
115  virtual bool item_is_ancestor_of(const schema_poset_member& xmbr) const;
116 
117 protected:
118 
123  section_dof_iterator();
124 
129  section_dof_iterator(const section_dof_iterator& xother);
130 
137  explicit section_dof_iterator(const section_space_schema_member& xanchor,
138  bool xis_table_dof = false,
139  int xversion = ANCHOR_VERSION);
140 
145  virtual void reset_item() = 0;
146 
147 };
148 
149 } // namespace fiber_bundle
150 
151 #endif // ifndef SECTION_DOF_ITERATOR_H
Abstract base class with useful features for all objects.
Definition: any.h:39
Iterates in postorder over dofs of a schema member anchor. Attaches a handle of type schema_poset_mem...
Namespace for the sheaves component of the sheaf system.
Namespace for the fiber_bundles component of the sheaf system.
A client handle for a poset member which has been prepared for use as a schema.