21class NodeTreeMainUpdater;
57 match |= std::is_same<T, bNodeTreeInterfaceSocket>::value;
61 match |= std::is_same<T, bNodeTreeInterfacePanel>::value;
73 return reinterpret_cast<T &
>(item);
79 return reinterpret_cast<const T &
>(item);
85 return reinterpret_cast<T *
>(item);
93 return reinterpret_cast<const T *
>(item);
98namespace socket_types {
115 {
"NodeSocketFloatPercentage",
116 "NodeTreeInterfaceSocketFloatPercentage",
122 {
"NodeSocketFloatTimeAbsolute",
123 "NodeTreeInterfaceSocketFloatTimeAbsolute",
127 {
"NodeSocketFloatWavelength",
128 "NodeTreeInterfaceSocketFloatWavelength",
131 {
"NodeSocketFloatColorTemperature",
132 "NodeTreeInterfaceSocketFloatColorTemperature",
135 {
"NodeSocketFloatFrequency",
136 "NodeTreeInterfaceSocketFloatFrequency",
147 {
"NodeSocketVectorTranslation",
148 "NodeTreeInterfaceSocketVectorTranslation",
151 {
"NodeSocketVectorDirection",
152 "NodeTreeInterfaceSocketVectorDirection",
155 {
"NodeSocketVectorVelocity",
156 "NodeTreeInterfaceSocketVectorVelocity",
159 {
"NodeSocketVectorAcceleration",
160 "NodeTreeInterfaceSocketVectorAcceleration",
167 {
"NodeSocketStringFilePath",
168 "NodeTreeInterfaceSocketStringFilePath",
236 if (socket_type == info.socket_identifier) {
271 using SocketDataType =
typename decltype(type_tag)::type;
272 match |= std::is_same_v<T, SocketDataType>;
290 const bNode &from_node,
296 const bNode &from_node,
304 const bNode &from_node,
308 ntree, from_node, from_sock, from_sock.
typeinfo->idname, from_sock.
name);
static bool item_is_type(const bNodeTreeInterfaceItem &item)
void socket_data_to_static_type_tag(const StringRef socket_type, const Fn &fn)
bool socket_data_to_static_type(const eNodeSocketDatatype type, const Fn &fn)
static const bNodeSocketStaticTypeInfo node_socket_subtypes[]
T & get_item_as(bNodeTreeInterfaceItem &item)
bool socket_data_is_type(const char *socket_type)
T & get_socket_data_as(bNodeTreeInterfaceSocket &item)
bNodeTreeInterfaceSocket * add_interface_socket_from_node(bNodeTree &ntree, const bNode &from_node, const bNodeSocket &from_sock, const StringRef socket_type, const StringRef name)
bNodeSocketTypeHandle * typeinfo
const char * interface_identifier
const char * socket_identifier
TypeTagExecutor(const Fn &fn_)