PeriDyno 1.2.1
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
42#define DEF_INSTANCE_IN(T, name, desc) \
43private: \
44 FInstance<T> in_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::In, this); \
45public: \
46 inline FInstance<T>* in##name() {return &in_##name;}
47
48#define DEF_INSTANCE_OUT(T, name, desc) \
49private: \
50 FInstance<T> out_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::Out, this); \
51public: \
52 inline FInstance<T>* out##name() {return &out_##name;}
53
54// #define DEF_INSTANCE_IO(T, name, desc) \
55// private: \
56// FInstance<T> io_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::IO, this); \
57// public: \
58// inline FInstance<T>* io##name() {return &io_##name;}
59
63#define DEF_ARRAY_IN(T, name, device, desc) \
64private: \
65 FArray<T, device> in_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
66public: \
67 inline FArray<T, device>* in##name() {return &in_##name;}
68
69#define DEF_ARRAY_OUT(T, name, device, desc) \
70private: \
71 FArray<T, device> out_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
72public: \
73 inline FArray<T, device>* out##name() {return &out_##name;}
74
75#define DEF_ARRAY_IO(T, name, device, desc) \
76private: \
77 FArray<T, device> io_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
78public: \
79 inline FArray<T, device>* in##name() {return &io_##name;} \
80 inline FArray<T, device>* out##name() {return &io_##name;}
81
82
86#define DEF_ARRAY2D_IN(T, name, device, desc) \
87private: \
88 FArray2D<T, device> in_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
89public: \
90 inline FArray2D<T, device>* in##name() {return &in_##name;}
91
92#define DEF_ARRAY2D_OUT(T, name, device, desc) \
93private: \
94 FArray2D<T, device> out_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
95public: \
96 inline FArray2D<T, device>* out##name() {return &out_##name;}
97
98#define DEF_ARRAY2D_IO(T, name, device, desc) \
99private: \
100 FArray2D<T, device> io_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
101public: \
102 inline FArray2D<T, device>* in##name() {return &io_##name;} \
103 inline FArray2D<T, device>* out##name() {return &io_##name;}
104
105
109#define DEF_ARRAY3D_IN(T, name, device, desc) \
110private: \
111 FArray3D<T, device> in_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
112public: \
113 inline FArray3D<T, device>* in##name() {return &in_##name;}
114
115#define DEF_ARRAY3D_OUT(T, name, device, desc) \
116private: \
117 FArray3D<T, device> out_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
118public: \
119 inline FArray3D<T, device>* out##name() {return &out_##name;}
120
121#define DEF_ARRAY3D_IO(T, name, device, desc) \
122private: \
123 FArray3D<T, device> io_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
124public: \
125 inline FArray3D<T, device>* in##name() {return &io_##name;} \
126 inline FArray3D<T, device>* out##name() {return &io_##name;}
127
128
132#define DEF_ARRAYLIST_IN(T, name, device, desc) \
133private: \
134 FArrayList<T, device> in_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::In, this); \
135public: \
136 inline FArrayList<T, device>* in##name() {return &in_##name;}
137
138#define DEF_ARRAYLIST_OUT(T, name, device, desc) \
139private: \
140 FArrayList<T, device> out_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::Out, this); \
141public: \
142 inline FArrayList<T, device>* out##name() {return &out_##name;}
143
144#define DEF_ARRAYLIST_IO(T, name, device, desc) \
145private: \
146 FArrayList<T, device> io_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::IO, this); \
147public: \
148 inline FArrayList<T, device>* in##name() {return &io_##name;} \
149 inline FArrayList<T, device>* out##name() {return &io_##name;}
150}
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25