[Bf-blender-cvs] [cfac0f59146] functions: refactor: extract method
Jacques Lucke
noreply at git.blender.org
Tue Nov 26 17:32:06 CET 2019
Commit: cfac0f5914654d2eeb5bef139964661d865d2203
Author: Jacques Lucke
Date: Tue Nov 26 17:10:46 2019 +0100
Branches: functions
https://developer.blender.org/rBcfac0f5914654d2eeb5bef139964661d865d2203
refactor: extract method
===================================================================
M source/blender/blenkernel/BKE_inlined_node_tree.h
M source/blender/blenkernel/intern/inlined_node_tree.cc
===================================================================
diff --git a/source/blender/blenkernel/BKE_inlined_node_tree.h b/source/blender/blenkernel/BKE_inlined_node_tree.h
index 8483cf8da46..3040562ce08 100644
--- a/source/blender/blenkernel/BKE_inlined_node_tree.h
+++ b/source/blender/blenkernel/BKE_inlined_node_tree.h
@@ -52,6 +52,8 @@ class XInputSocket : public XSocket {
const VInputSocket &vsocket() const;
ArrayRef<const XOutputSocket *> linked_sockets() const;
ArrayRef<const XGroupInput *> linked_group_inputs() const;
+
+ bool is_linked() const;
};
class XOutputSocket : public XSocket {
@@ -274,6 +276,11 @@ inline ArrayRef<const XGroupInput *> XInputSocket::linked_group_inputs() const
return m_linked_group_inputs.as_ref();
}
+inline bool XInputSocket::is_linked() const
+{
+ return m_linked_sockets.size() > 0 || m_linked_group_inputs.size() > 0;
+}
+
inline const VOutputSocket &XOutputSocket::vsocket() const
{
return *m_vsocket;
diff --git a/source/blender/blenkernel/intern/inlined_node_tree.cc b/source/blender/blenkernel/intern/inlined_node_tree.cc
index f83cc5f3479..68008b7f645 100644
--- a/source/blender/blenkernel/intern/inlined_node_tree.cc
+++ b/source/blender/blenkernel/intern/inlined_node_tree.cc
@@ -174,16 +174,15 @@ void InlinedNodeTree::expand_group__relink_inputs(const VirtualNodeTree &vtree,
*inside_interface_xnode->m_outputs[inside_interface_vsocket->index()];
XInputSocket &outside_interface = *group_node.m_inputs[input_index];
- /* If the group input has no origin, insert a dummy group input. */
- if (outside_interface.m_linked_sockets.size() == 0 &&
- outside_interface.m_linked_group_inputs.size() == 0) {
- XGroupInput &group_input_dummy = *m_allocator.construct<XGroupInput>().release();
- group_input_dummy.m_id = all_group_inputs.append_and_get_index(&group_input_dummy);
- group_input_dummy.m_vsocket = outside_interface.m_vsocket;
- group_input_dummy.m_parent = group_node.m_parent;
-
- group_input_dummy.m_linked_sockets.append(&outside_interface);
- outside_interface.m_linked_group_inputs.append(&group_input_dummy);
+ /* Create group input for unconnected inputs. */
+ if (outside_interface.is_linked()) {
+ XGroupInput &group_input = *m_allocator.construct<XGroupInput>().release();
+ group_input.m_id = all_group_inputs.append_and_get_index(&group_input);
+ group_input.m_vsocket = outside_interface.m_vsocket;
+ group_input.m_parent = group_node.m_parent;
+
+ group_input.m_linked_sockets.append(&outside_interface);
+ outside_interface.m_linked_group_inputs.append(&group_input);
}
for (XOutputSocket *outside_connected : outside_interface.m_linked_sockets) {
More information about the Bf-blender-cvs
mailing list