PeriDyno 1.0.0
Loading...
Searching...
No Matches
DeclareField.h
Go to the documentation of this file.
1
16#pragma once
17
18namespace dyno
19{
20
21#define DEF_VAR(T, name, value, desc) \
22private: \
23 FVar<T> var_##name = FVar<T>(T(value), std::string(#name), desc, FieldTypeEnum::Param, this); \
24public: \
25 inline FVar<T>* var##name() {return &var_##name;}
26
27#define DEF_VAR_IN(T, name, desc) \
28private: \
29 FVar<T> in_##name = FVar<T>(std::string(#name), desc, FieldTypeEnum::In, this); \
30public: \
31 inline FVar<T>* in##name() {return &in_##name;}
32
33#define DEF_VAR_OUT(T, name, desc) \
34private: \
35 FVar<T> out_##name = FVar<T>(std::string(#name), desc, FieldTypeEnum::Out, this); \
36public: \
37 inline FVar<T>* out##name() {return &out_##name;}
38
39#define DEF_VAR_STATE(T, name, value, desc) \
40private: \
41 FVar<T> state_##name = FVar<T>(T(value), std::string(#name), desc, FieldTypeEnum::State, this); \
42public: \
43 inline FVar<T>* state##name() {return &state_##name;}
44
48#define DEF_INSTANCE_IN(T, name, desc) \
49private: \
50 FInstance<T> in_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::In, this); \
51public: \
52 inline FInstance<T>* in##name() {return &in_##name;}
53
54#define DEF_INSTANCE_OUT(T, name, desc) \
55private: \
56 FInstance<T> out_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::Out, this); \
57public: \
58 inline FInstance<T>* out##name() {return &out_##name;}
59
60#define DEF_INSTANCE_IO(T, name, desc) \
61private: \
62 FInstance<T> io_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::IO, this); \
63public: \
64 inline FInstance<T>* io##name() {return &io_##name;}
65
70#define DEF_INSTANCE_STATE(T, name, desc) \
71private: \
72 FInstance<T> state_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::State, this); \
73public: \
74 inline FInstance<T>* state##name() {return &state_##name;}
75
79#define DEF_INSTANCES_STATE(T, name, desc) \
80private: \
81 FArray<std::shared_ptr<T>, DeviceType::CPU> state_##name = FArray<std::shared_ptr<T>, DeviceType::CPU>(std::string(#name)+std::string("(s)"), desc, FieldTypeEnum::State, this); \
82public: \
83 inline FArray<std::shared_ptr<T>, DeviceType::CPU>* state##name##s() {return &state_##name;}
84
85#define DEF_INSTANCES_IN(T, name, desc) \
86private: \
87 FArray<std::shared_ptr<T>, DeviceType::CPU> in_##name = FArray<std::shared_ptr<T>, DeviceType::CPU>(std::string(#name)+std::string("(s)"), desc, FieldTypeEnum::In, this); \
88public: \
89 inline FArray<std::shared_ptr<T>, DeviceType::CPU>* in##name##s() {return &in_##name;}
90
91#define DEF_INSTANCES_OUT(T, name, desc) \
92private: \
93 FArray<std::shared_ptr<T>, DeviceType::CPU> out_##name = FArray<std::shared_ptr<T>, DeviceType::CPU>(std::string(#name)+std::string("(s)"), desc, FieldTypeEnum::Out, this); \
94public: \
95 inline FArray<std::shared_ptr<T>, DeviceType::CPU>* out##namee##s() {return &out_##name;}
96
97
101#define DEF_ARRAY_IN(T, name, device, desc) \
102private: \
103 FArray<T, device> in_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
104public: \
105 inline FArray<T, device>* in##name() {return &in_##name;}
106
107#define DEF_ARRAY_OUT(T, name, device, desc) \
108private: \
109 FArray<T, device> out_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
110public: \
111 inline FArray<T, device>* out##name() {return &out_##name;}
112
113#define DEF_ARRAY_IO(T, name, device, desc) \
114private: \
115 FArray<T, device> io_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
116public: \
117 inline FArray<T, device>* in##name() {return &io_##name;} \
118 inline FArray<T, device>* out##name() {return &io_##name;}
119
120
124#define DEF_ARRAY2D_IN(T, name, device, desc) \
125private: \
126 FArray2D<T, device> in_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
127public: \
128 inline FArray2D<T, device>* in##name() {return &in_##name;}
129
130#define DEF_ARRAY2D_OUT(T, name, device, desc) \
131private: \
132 FArray2D<T, device> out_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
133public: \
134 inline FArray2D<T, device>* out##name() {return &out_##name;}
135
136#define DEF_ARRAY2D_IO(T, name, device, desc) \
137private: \
138 FArray2D<T, device> io_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
139public: \
140 inline FArray2D<T, device>* in##name() {return &io_##name;} \
141 inline FArray2D<T, device>* out##name() {return &io_##name;}
142
143
147#define DEF_ARRAY3D_IN(T, name, device, desc) \
148private: \
149 FArray3D<T, device> in_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
150public: \
151 inline FArray3D<T, device>* in##name() {return &in_##name;}
152
153#define DEF_ARRAY3D_OUT(T, name, device, desc) \
154private: \
155 FArray3D<T, device> out_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
156public: \
157 inline FArray3D<T, device>* out##name() {return &out_##name;}
158
159#define DEF_ARRAY3D_IO(T, name, device, desc) \
160private: \
161 FArray3D<T, device> io_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
162public: \
163 inline FArray3D<T, device>* in##name() {return &io_##name;} \
164 inline FArray3D<T, device>* out##name() {return &io_##name;}
165
166
170#define DEF_ARRAYLIST_IN(T, name, device, desc) \
171private: \
172 FArrayList<T, device> in_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
173public: \
174 inline FArrayList<T, device>* in##name() {return &in_##name;}
175
176#define DEF_ARRAYLIST_OUT(T, name, device, desc) \
177private: \
178 FArrayList<T, device> out_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
179public: \
180 inline FArrayList<T, device>* out##name() {return &out_##name;}
181
182#define DEF_ARRAYLIST_IO(T, name, device, desc) \
183private: \
184 FArrayList<T, device> io_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
185public: \
186 inline FArrayList<T, device>* in##name() {return &io_##name;} \
187 inline FArrayList<T, device>* out##name() {return &io_##name;}
188}
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25