PeriDyno
1.0.0
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
{
24
#define DEF_ARRAY_STATE(T, name, device, desc) \
25
private: \
26
FArray<T, device> state_##name = FArray<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
27
public: \
28
inline FArray<T, device>* state##name() {return &state_##name;}
29
30
31
#define DEF_ARRAY2D_STATE(T, name, device, desc) \
32
private: \
33
FArray2D<T, device> state_##name = FArray2D<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
34
public: \
35
inline FArray2D<T, device>* state##name() {return &state_##name;}
36
37
#define DEF_ARRAY3D_STATE(T, name, device, desc) \
38
private: \
39
FArray3D<T, device> state_##name = FArray3D<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
40
public: \
41
inline FArray3D<T, device>* state##name() {return &state_##name;}
42
43
44
#define DEF_ARRAYLIST_STATE(T, name, device, desc) \
45
private: \
46
FArrayList<T, device> state_##name = FArrayList<T, device>(std::string(#name), desc, FieldTypeEnum::State, this); \
47
public: \
48
inline FArrayList<T, device>* state##name() {return &state_##name;}
49
53
#define DEF_INSTANCE_STATE(T, name, desc) \
54
private: \
55
FInstance<T> state_##name = FInstance<T>(std::string(#name), desc, FieldTypeEnum::State, this); \
56
public: \
57
inline FInstance<T>* state##name() {return &state_##name;}
58
63
#define DEF_NODE_PORT(T, name, desc) \
64
private: \
65
SingleNodePort<T> single_##name = SingleNodePort<T>(std::string(#name), desc, this); \
66
public: \
67
inline T* get##name() { return single_##name.getDerivedNode(); } \
68
\
69
SingleNodePort<T>* import##name(){ return &single_##name; }
70
71
72
#define DEF_NODE_PORTS(T, name, desc) \
73
private: \
74
MultipleNodePort<T> multiple_##name = MultipleNodePort<T>(std::string(#name)+std::string("(s)"), desc, this); \
75
public: \
76
inline MultipleNodePort<T>* import##name##s() { return &multiple_##name; } \
77
inline std::vector<T*>& get##name##s(){return multiple_##name.getDerivedNodes();} \
78
\
79
bool add##name(std::shared_ptr<T> c){ \
80
multiple_##name.addDerivedNode(c.get()); \
81
return true; \
82
} \
83
\
84
bool remove##name(std::shared_ptr<T> c) { \
85
multiple_##name.removeDerivedNode(c.get()); \
86
return true; \
87
}
88
}
dyno
This is an implementation of AdditiveCCD based on peridyno.
Definition
Array.h:25
Generated by
1.13.2