-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathXdmfAttributeCenter.hpp
More file actions
144 lines (119 loc) · 4.79 KB
/
Copy pathXdmfAttributeCenter.hpp
File metadata and controls
144 lines (119 loc) · 4.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/*****************************************************************************/
/* XDMF */
/* eXtensible Data Model and Format */
/* */
/* Id : XdmfAttributeCenter.hpp */
/* */
/* Author: */
/* Kenneth Leiter */
/* kenneth.leiter@arl.army.mil */
/* US Army Research Laboratory */
/* Aberdeen Proving Ground, MD */
/* */
/* Copyright @ 2011 US Army Research Laboratory */
/* All Rights Reserved */
/* See Copyright.txt for details */
/* */
/* This software is distributed WITHOUT ANY WARRANTY; without */
/* even the implied warranty of MERCHANTABILITY or FITNESS */
/* FOR A PARTICULAR PURPOSE. See the above copyright notice */
/* for more information. */
/* */
/*****************************************************************************/
#ifndef XDMFATTRIBUTECENTER_HPP_
#define XDMFATTRIBUTECENTER_HPP_
// C Compatible Includes
#include "Xdmf.hpp"
#include "XdmfItemProperty.hpp"
#ifdef __cplusplus
/**
* @brief Property describing where XdmfAttribute values are centered.
*
* XdmfAttributeCenter is a property used by XdmfAttribute to specify
* where its values are centered on an XdmfGrid. A specific
* XdmfAttributeCenter can be created by calling on of the static
* methods in the class, i.e. XdmfAttributeCenter::Cell().
* Xdmf supports the following attribute centers:
*
* Example of use:
*
* C++
*
* @dontinclude ExampleXdmfAttribute.cpp
* @skipline //#initialization
* @until //#initialization
* @skipline //#setCenter
* @until //#setCenter
* @skipline //#getCenter
* @until //#getCenter
*
* Python
*
* @dontinclude XdmfExampleAttribute.py
* @skipline #//initialization
* @until #//initialization
* @skipline #//setCenter
* @until #//setCenter
* @skipline #//getCenter
* @until #//getCenter
*
* Grid
* Cell
* Face
* Edge
* Node
*/
class XDMF_EXPORT XdmfAttributeCenter : public XdmfItemProperty {
public:
virtual ~XdmfAttributeCenter();
friend class XdmfAttribute;
// Supported Xdmf Attribute Centers
static shared_ptr<const XdmfAttributeCenter> Grid();
static shared_ptr<const XdmfAttributeCenter> Cell();
static shared_ptr<const XdmfAttributeCenter> Face();
static shared_ptr<const XdmfAttributeCenter> Edge();
static shared_ptr<const XdmfAttributeCenter> Node();
static shared_ptr<const XdmfAttributeCenter> Other();
void
getProperties(std::map<std::string, std::string> & collectedProperties) const;
protected:
/**
* Protected constructor for XdmfAttributeCenter. The constructor
* is protected because all attribute centers supported by Xdmf
* should be accessed through more specific static methods that
* construct XdmfAttributeCenters -
* i.e. XdmfAttributeCenter::Node().
*
* @param name The name of the XdmfAttributeCenter to construct.
*/
XdmfAttributeCenter(const std::string & name);
static std::map<std::string, shared_ptr<const XdmfAttributeCenter>(*)()> mAttributeCenterDefinitions;
static void InitTypes();
private:
XdmfAttributeCenter(const XdmfAttributeCenter &); // Not implemented.
void operator=(const XdmfAttributeCenter &); // Not implemented.
static shared_ptr<const XdmfAttributeCenter>
New(const std::map<std::string, std::string> & itemProperties);
std::string mName;
};
#endif
#ifdef __cplusplus
extern "C" {
#endif
// C wrappers go here
#define XDMF_ATTRIBUTE_CENTER_GRID 100
#define XDMF_ATTRIBUTE_CENTER_CELL 101
#define XDMF_ATTRIBUTE_CENTER_FACE 102
#define XDMF_ATTRIBUTE_CENTER_EDGE 103
#define XDMF_ATTRIBUTE_CENTER_NODE 104
#define XDMF_ATTRIBUTE_CENTER_OTHER 105
XDMF_EXPORT int XdmfAttributeCenterGrid();
XDMF_EXPORT int XdmfAttributeCenterCell();
XDMF_EXPORT int XdmfAttributeCenterFace();
XDMF_EXPORT int XdmfAttributeCenterEdge();
XDMF_EXPORT int XdmfAttributeCenterNode();
XDMF_EXPORT int XdmfAttributeCenterOther();
#ifdef __cplusplus
}
#endif
#endif /* XDMFATTRIBUTECENTER_HPP_ */