SheafSystem  0.0.0.0
met_ed.h
Go to the documentation of this file.
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 
20 
21 #ifndef MET_ED_H
22 #define MET_ED_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef MET_H
29 #include "SheafSystem/met.h"
30 #endif
31 
32 namespace fiber_bundle
33 {
34 
35 //==============================================================================
36 // CLASS MET_ED_LITE
37 //==============================================================================
38 
43 class SHEAF_DLL_SPEC met_ed_lite : public met_lite
44 {
45  //============================================================================
47  //============================================================================
49 
50 public:
51 
55  met_ed_lite();
56 
60  met_ed_lite(const met_ed_lite& xother);
61 
65  met_ed_lite& operator=(const met_ed_lite& xother);
66 
70  virtual ~met_ed_lite();
71 
75  met_ed_lite(const row_dofs_type& xrow_dofs);
76 
80  met_ed_lite& operator=(const row_dofs_type& xrow_dofs);
81 
82 protected:
83 private:
84 
86 
87 
88  //============================================================================
90  //============================================================================
92 
93 public:
94 protected:
95 private:
96 
98 
99 
100  //============================================================================
102  //============================================================================
104 
105 public:
106 protected:
107 private:
108 
110 
111 
112  //============================================================================
114  //============================================================================
116 
117 public:
118 protected:
119 private:
120 
122 
123 
124  //============================================================================
126  //============================================================================
128 
129 public:
130 protected:
131 private:
132 
134 
135 
136  //============================================================================
138  //============================================================================
140 
141 public:
142 protected:
143 private:
144 
146 
147 
148  //============================================================================
150  //============================================================================
152 
153 public:
154 
155  //============================================================================
157  //============================================================================
159 
160 public:
161 
165  virtual const std::string& class_name() const;
166 
170  static const std::string& static_class_name();
171 
175  virtual met_ed_lite* clone() const;
176 
177 protected:
178 private:
179 
181 
182 
183  //============================================================================
185  //============================================================================
187 
188 public:
189 
193  virtual bool is_ancestor_of(const any_lite& xother) const;
194 
198  bool invariant() const;
199 
200 protected:
201 private:
202 
204 };
205 
206 
207 //==============================================================================
208 // CLASS MET_ED
209 //==============================================================================
210 
215 class SHEAF_DLL_SPEC met_ed : public met
216 {
217 
218  // ===========================================================
220  // ===========================================================
222 
223 public:
224 
228  static const poset_path& standard_schema_path();
229 
233  static void make_standard_schema(namespace_poset& xns);
234 
240  static host_type& new_host(namespace_type& xns,
241  const poset_path& xhost_path,
242  const poset_path& xschema_path,
243  const poset_path& xvector_space_path,
244  bool xauto_access);
245 
246 protected:
247 
248 private:
249 
251 
252 
253  //============================================================================
255  //============================================================================
257 
258 public:
259 
264 
268  met_ed();
269 
274  met_ed(const poset_state_handle* xhost, pod_index_type xhub_id);
275 
280  met_ed(const poset_state_handle* xhost, const scoped_index& xid);
281 
286  met_ed(const poset_state_handle* xhost, const std::string& xname);
287 
291  explicit met_ed(abstract_poset_member* xother);
292 
296  met_ed(poset_state_handle* xhost, bool xauto_access = true);
297 
301  virtual met_ed& operator=(const abstract_poset_member& xother);
302 
306  met_ed& operator=(const met_ed& xother);
307 
311  ~met_ed();
312 
316  virtual const volatile_type& lite_prototype() const;
317 
321  virtual volatile_type* lite_type() const;
322 
323 
324 protected:
325 private:
326 
328 
329 
330  //============================================================================
332  //============================================================================
334 
335 public:
336 protected:
337 private:
338 
340 
341 
342  //============================================================================
344  //============================================================================
346 
347 public:
348 protected:
349 private:
350 
352 
353 
354  //============================================================================
356  //============================================================================
358 
359 public:
360 protected:
361 private:
362 
364 
365 
366  //============================================================================
368  //============================================================================
370 
371 public:
372 protected:
373 private:
374 
376 
377 
378  //============================================================================
380  //============================================================================
382 
383 public:
384 protected:
385 private:
386 
388 
389 
390  //============================================================================
392  //============================================================================
394 
395 public:
396 
397 protected:
398 
399 private:
400 
402 
403 
404  //============================================================================
406  //============================================================================
408 
409 public:
410 
414  virtual const std::string& class_name() const;
415 
419  static const std::string& static_class_name();
420 
424  virtual met_ed* clone() const;
425 
431  inline met_ed* clone(bool xnew_state, bool xauto_access = true) const
432  {
433  return static_cast<met_ed*>(met::clone(xnew_state, xauto_access));
434  }
435 
436 protected:
437 private:
438 
440 
441 
442  //============================================================================
444  //============================================================================
446 
447 public:
448 
452  bool is_ancestor_of(const any* xother) const;
453 
457  bool invariant() const;
458 
459 protected:
460 private:
461 
463 };
464 
465 } // namespace fiber_bundle
466 
467 #endif // ifndef MET_ED_H
met_ed * clone(bool xnew_state, bool xauto_access=true) const
Make a new handle instance of current. Attach the new instance to a new state if xnew_state is true...
Definition: met_ed.h:431
The default name space; a poset which contains other posets as members.
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
virtual met * clone() const
Make a new handle, no state instance of current.
Definition: met.cc:768
A client handle for a general, abstract partially order set.
A metric tensor over a d-dimensional Euclidean vector space (persistent version). ...
Definition: met_ed.h:215
A path defined by a poset name and a member name separated by a forward slash (&#39;/&#39;). For example: "cell_definitions/triangle".
Definition: poset_path.h:48
A metric tensor over a d-dimensional Euclidean vector space (volatile version).
Definition: met_ed.h:43
A metric tensor over an abstract vector space (volatile version).
Definition: met.h:43
A metric tensor over an abstract vector space (persistent version).
Definition: met.h:208
Abstract base class with useful features for all volatile objects.
Definition: any_lite.h:48
Abstract base class with useful features for all objects.
Definition: any.h:39
met_ed_lite volatile_type
The associated volatile type.
Definition: met_ed.h:263
An index within the external ("client") scope of a given id space.
Definition: scoped_index.h:116
int_type pod_index_type
The plain old data index type.
Definition: pod_types.h:49
An abstract client handle for a member of a poset.
An abstract symmetric tensor space of degree p.
Definition: stp_space.h:42
Namespace for the fiber_bundles component of the sheaf system.
Row dofs type for class vd.
Definition: vd.h:61