PeriDyno
1.2.1
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Framework
DeclarePort.h
Go to the documentation of this file.
1
16
#pragma once
17
18
namespace
dyno
19
{
20
#define DEF_VAR_STATE(T, name, value, desc) \
21
private: \
22
FVar<T> state_##name = FVar<T>(T(value), std::string(#name), desc, FieldTypeEnum::State, this); \
23
public: \
24
inline FVar<T>* state##name() {return &state_##name;}
25
30
#define DEF_ARRAY_STATE(T, name, device, desc) \
31
private: \
32
FArray<T, device> state_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
33
public: \
34
inline FArray<T, device>* state##name() {return &state_##name;}
35
36
37
#define DEF_ARRAY2D_STATE(T, name, device, desc) \
38
private: \
39
FArray2D<T, device> state_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
40
public: \
41
inline FArray2D<T, device>* state##name() {return &state_##name;}
42
43
#define DEF_ARRAY3D_STATE(T, name, device, desc) \
44
private: \
45
FArray3D<T, device> state_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
46
public: \
47
inline FArray3D<T, device>* state##name() {return &state_##name;}
48
49
50
#define DEF_ARRAYLIST_STATE(T, name, device, desc) \
51
private: \
52
FArrayList<T, device> state_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
53
public: \
54
inline FArrayList<T, device>* state##name() {return &state_##name;}
55
59
#define DEF_INSTANCE_STATE(T, name, desc) \
60
private: \
61
FInstance<T> state_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::State, this); \
62
public: \
63
inline FInstance<T>* state##name() {return &state_##name;}
64
69
#define DEF_INSTANCE_STATE(T, name, desc) \
70
private: \
71
FInstance<T> state_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::State, this); \
72
public: \
73
inline FInstance<T>* state##name() {return &state_##name;}
74
78
79
#define DEF_INSTANCES_IN(T, name, desc) \
80
private: \
81
FInstances<T> in_##name = FInstances<T>(std::string(#name)+std::string("(s)"), desc, FieldTypeEnum::In, this); \
82
public: \
83
inline FInstances<T>* in##name##s() {return &in_##name;}
84
85
90
#define DEF_NODE_PORT(T, name, desc) \
91
private: \
92
SingleNodePort<T> single_##name = SingleNodePort<T>(std::string(#name), desc, this); \
93
public: \
94
inline T* get##name() { return single_##name.getDerivedNode(); } \
95
\
96
SingleNodePort<T>* import##name(){ return &single_##name; }
97
98
99
#define DEF_NODE_PORTS(T, name, desc) \
100
private: \
101
MultipleNodePort<T> multiple_##name = MultipleNodePort<T>(std::string(#name)+std::string("(s)"), desc, this); \
102
public: \
103
inline MultipleNodePort<T>* import##name##s() { return &multiple_##name; } \
104
inline std::vector<T*>& get##name##s(){return multiple_##name.getDerivedNodes();} \
105
\
106
bool add##name(std::shared_ptr<T> c){ \
107
multiple_##name.addDerivedNode(c.get()); \
108
return true; \
109
} \
110
\
111
bool remove##name(std::shared_ptr<T> c) { \
112
multiple_##name.removeDerivedNode(c.get()); \
113
return true; \
114
}
115
}
dyno
This is an implementation of AdditiveCCD based on peridyno.
Definition
Array.h:25
Generated by
1.13.2