[Bf-blender-cvs] [73a709844b5] functions-experimental-refactor: make VirtualNodeTree const in many places
Jacques Lucke
noreply at git.blender.org
Tue Oct 22 12:52:03 CEST 2019
Commit: 73a709844b535adf6fd88fc7adec4cd1e6bf4d20
Author: Jacques Lucke
Date: Tue Oct 22 12:51:46 2019 +0200
Branches: functions-experimental-refactor
https://developer.blender.org/rB73a709844b535adf6fd88fc7adec4cd1e6bf4d20
make VirtualNodeTree const in many places
===================================================================
M source/blender/blenkernel/BKE_virtual_node_tree_cxx.h
M source/blender/blenkernel/intern/node_tree.cpp
M source/blender/functions/frontends/data_flow_nodes/function_generation.cpp
M source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
M source/blender/functions/frontends/data_flow_nodes/graph_generation.hpp
M source/blender/functions/frontends/data_flow_nodes/mappings.cpp
M source/blender/functions/frontends/data_flow_nodes/mappings.hpp
M source/blender/functions/frontends/data_flow_nodes/mappings/node_inserters.cpp
M source/blender/functions/frontends/data_flow_nodes/unlinked_input_groupers.cpp
M source/blender/functions/frontends/data_flow_nodes/unlinked_input_groupers.hpp
M source/blender/functions/frontends/data_flow_nodes/unlinked_input_inserters.cpp
M source/blender/functions/frontends/data_flow_nodes/unlinked_input_inserters.hpp
M source/blender/functions/frontends/data_flow_nodes/vtree_data_graph.cpp
M source/blender/functions/frontends/data_flow_nodes/vtree_data_graph.hpp
M source/blender/functions/frontends/data_flow_nodes/vtree_data_graph_builder.cpp
M source/blender/functions/frontends/data_flow_nodes/vtree_data_graph_builder.hpp
M source/blender/modifiers/intern/MOD_functiondeform_cxx.cc
M source/blender/simulations/bparticles/node_frontend.cpp
M source/blender/simulations/bparticles/particle_function_builder.cpp
M source/blender/simulations/bparticles/particle_function_builder.hpp
===================================================================
diff --git a/source/blender/blenkernel/BKE_virtual_node_tree_cxx.h b/source/blender/blenkernel/BKE_virtual_node_tree_cxx.h
index 705d8c392bd..2b4866f9f9d 100644
--- a/source/blender/blenkernel/BKE_virtual_node_tree_cxx.h
+++ b/source/blender/blenkernel/BKE_virtual_node_tree_cxx.h
@@ -60,7 +60,7 @@ class VirtualNodeTree {
bool m_frozen = false;
Vector<VirtualNode *> m_nodes;
Vector<VirtualLink *> m_links;
- Vector<VirtualSocket *> m_inputs_with_links;
+ Vector<const VirtualSocket *> m_inputs_with_links;
MultiMap<std::string, VirtualNode *> m_nodes_by_idname;
uint m_socket_counter = 0;
MonotonicAllocator<> m_allocator;
@@ -68,33 +68,33 @@ class VirtualNodeTree {
public:
void add_all_of_tree(bNodeTree *btree);
VirtualNode *add_bnode(bNodeTree *btree, bNode *bnode);
- void add_link(VirtualSocket *a, VirtualSocket *b);
+ void add_link(const VirtualSocket &a, const VirtualSocket &b);
void freeze_and_index();
- ArrayRef<VirtualNode *> nodes() const
+ ArrayRef<const VirtualNode *> nodes() const
{
- return m_nodes;
+ return ArrayRef<VirtualNode *>(m_nodes);
}
- ArrayRef<VirtualLink *> links()
+ ArrayRef<const VirtualLink *> links() const
{
- return m_links;
+ return ArrayRef<VirtualLink *>(m_links);
}
- ArrayRef<VirtualSocket *> inputs_with_links()
+ ArrayRef<const VirtualSocket *> inputs_with_links() const
{
BLI_assert(m_frozen);
- return m_inputs_with_links;
+ return ArrayRef<const VirtualSocket *>(m_inputs_with_links);
}
- ArrayRef<VirtualNode *> nodes_with_idname(StringRef idname)
+ ArrayRef<const VirtualNode *> nodes_with_idname(StringRef idname) const
{
BLI_assert(m_frozen);
return m_nodes_by_idname.lookup_default(idname);
}
- bool is_frozen()
+ bool is_frozen() const
{
return m_frozen;
}
@@ -122,52 +122,52 @@ class VirtualNode {
MutableArrayRef<VirtualSocket *> m_outputs;
public:
- ArrayRef<VirtualSocket *> inputs() const
+ ArrayRef<const VirtualSocket *> inputs() const
{
- return m_inputs;
+ return m_inputs.as_ref();
}
- ArrayRef<VirtualSocket *> outputs() const
+ ArrayRef<const VirtualSocket *> outputs() const
{
- return m_outputs;
+ return m_outputs.as_ref();
}
- VirtualSocket *input(uint index)
+ const VirtualSocket &input(uint index) const
{
- return m_inputs[index];
+ return *m_inputs[index];
}
- VirtualSocket *output(uint index)
+ const VirtualSocket &output(uint index) const
{
- return m_outputs[index];
+ return *m_outputs[index];
}
- VirtualSocket *input(uint index, StringRef expected_name);
- VirtualSocket *output(uint index, StringRef expected_name);
+ const VirtualSocket &input(uint index, StringRef expected_name) const;
+ const VirtualSocket &output(uint index, StringRef expected_name) const;
- bNode *bnode()
+ bNode *bnode() const
{
return m_bnode;
}
- bNodeTree *btree()
+ bNodeTree *btree() const
{
return m_btree;
}
- ID *btree_id()
+ ID *btree_id() const
{
return &m_btree->id;
}
- PointerRNA rna()
+ PointerRNA rna() const
{
PointerRNA rna;
RNA_pointer_create(&m_btree->id, &RNA_Node, m_bnode, &rna);
return rna;
}
- StringRefNull name()
+ StringRefNull name() const
{
return m_bnode->name;
}
@@ -187,8 +187,8 @@ class VirtualSocket {
bNodeSocket *m_bsocket;
uint m_id;
- MutableArrayRef<VirtualSocket *> m_direct_links;
- MutableArrayRef<VirtualSocket *> m_links;
+ MutableArrayRef<const VirtualSocket *> m_direct_links;
+ MutableArrayRef<const VirtualSocket *> m_links;
public:
bool is_input() const
@@ -201,12 +201,12 @@ class VirtualSocket {
return this->m_bsocket->in_out == SOCK_OUT;
}
- bNodeSocket *bsocket()
+ bNodeSocket *bsocket() const
{
return m_bsocket;
}
- bNodeTree *btree()
+ bNodeTree *btree() const
{
return m_btree;
}
@@ -216,26 +216,26 @@ class VirtualSocket {
return m_id;
}
- ID *btree_id()
+ ID *btree_id() const
{
return &m_btree->id;
}
- VirtualNode *vnode()
+ const VirtualNode &vnode() const
{
- return m_vnode;
+ return *m_vnode;
}
- ArrayRef<VirtualSocket *> direct_links()
+ ArrayRef<const VirtualSocket *> direct_links() const
{
BLI_assert(m_vnode->m_backlink->is_frozen());
- return m_direct_links;
+ return m_direct_links.as_ref();
}
- ArrayRef<VirtualSocket *> links()
+ ArrayRef<const VirtualSocket *> links() const
{
BLI_assert(m_vnode->m_backlink->is_frozen());
- return m_links;
+ return m_links.as_ref();
}
bool is_linked() const
@@ -243,7 +243,7 @@ class VirtualSocket {
return m_links.size() > 0;
}
- PointerRNA rna()
+ PointerRNA rna() const
{
PointerRNA rna;
RNA_pointer_create(&m_btree->id, &RNA_NodeSocket, m_bsocket, &rna);
@@ -270,11 +270,11 @@ class VirtualLink {
private:
friend VirtualNodeTree;
- VirtualSocket *m_from;
- VirtualSocket *m_to;
+ const VirtualSocket *m_from;
+ const VirtualSocket *m_to;
};
-inline VirtualSocket *VirtualNode::input(uint index, StringRef expected_name)
+inline const VirtualSocket &VirtualNode::input(uint index, StringRef expected_name) const
{
VirtualSocket *vsocket = m_inputs[index];
#ifdef DEBUG
@@ -282,10 +282,10 @@ inline VirtualSocket *VirtualNode::input(uint index, StringRef expected_name)
BLI_assert(actual_name == expected_name);
#endif
UNUSED_VARS_NDEBUG(expected_name);
- return vsocket;
+ return *vsocket;
}
-inline VirtualSocket *VirtualNode::output(uint index, StringRef expected_name)
+inline const VirtualSocket &VirtualNode::output(uint index, StringRef expected_name) const
{
VirtualSocket *vsocket = m_outputs[index];
#ifdef DEBUG
@@ -293,7 +293,7 @@ inline VirtualSocket *VirtualNode::output(uint index, StringRef expected_name)
BLI_assert(actual_name == expected_name);
#endif
UNUSED_VARS_NDEBUG(expected_name);
- return vsocket;
+ return *vsocket;
}
} // namespace BKE
diff --git a/source/blender/blenkernel/intern/node_tree.cpp b/source/blender/blenkernel/intern/node_tree.cpp
index bb2d76f990a..9dca919a181 100644
--- a/source/blender/blenkernel/intern/node_tree.cpp
+++ b/source/blender/blenkernel/intern/node_tree.cpp
@@ -11,19 +11,19 @@ void VirtualNodeTree::add_all_of_tree(bNodeTree *btree)
node_mapping.add_new(bnode, vnode);
}
for (bNodeLink *blink : bLinkList(btree->links)) {
- VirtualNode *from_vnode = node_mapping.lookup(blink->fromnode);
- VirtualNode *to_vnode = node_mapping.lookup(blink->tonode);
- VirtualSocket *from_vsocket = nullptr;
- VirtualSocket *to_vsocket = nullptr;
+ const VirtualNode *from_vnode = node_mapping.lookup(blink->fromnode);
+ const VirtualNode *to_vnode = node_mapping.lookup(blink->tonode);
+ const VirtualSocket *from_vsocket = nullptr;
+ const VirtualSocket *to_vsocket = nullptr;
- for (VirtualSocket *output : from_vnode->outputs()) {
+ for (const VirtualSocket *output : from_vnode->outputs()) {
if (output->bsocket() == blink->fromsock) {
from_vsocket = output;
break;
}
}
- for (VirtualSocket *input : to_vnode->inputs()) {
+ for (const VirtualSocket *input : to_vnode->inputs()) {
if (input->bsocket() == blink->tosock) {
to_vsocket = input;
break;
@@ -32,7 +32,7 @@ void VirtualNodeTree::add_all_of_tree(bNodeTree *btree)
BLI_assert(from_vsocket);
BLI_assert(to_vsocket);
- this->add_link(from_vsocket, to_vsocket);
+ this->add_link(*from_vsocket, *to_vsocket);
}
}
@@ -77,20 +77,20 @@ VirtualNode *VirtualNodeTree::add_bnode(bNodeTree *btree, bNode *bnode)
return vnode;
}
-void VirtualNodeTree::add_link(VirtualSocket *a, VirtualSocket *b)
+void VirtualNodeTree::add_link(const VirtualSocket &a, const VirtualSocket &b)
{
BLI_assert(!m_frozen);
VirtualLink *vlink = m_allocator.allocate<VirtualLink>();
- if (a->is_input()) {
- BLI_assert(b->is_output());
- vlink->m_from = b;
- vlink->m_to = a;
+ if (a.is_input()) {
+ BLI_assert(b.is_output());
+ vlink->m_from = &b;
+ vlink->m_to = &a;
}
else {
- BLI_assert(b->is_input());
- vlink->m_from = a;
- vlink->m_to = b;
+ BLI_assert(b.is_input());
+ vlink->m_from = &a;
+ vlink->m_to = &b;
}
m_links.append(vlink);
@@ -109,29 +109,32 @@ BLI_NOINLINE void VirtualNodeTree::initialize_direct_links()
/* TODO(jacques): reserve */
MultiMap<VirtualSocket *, VirtualSocket *> connections;
for (VirtualLink *link : m_links) {
- connections.add(link->m_from, link->m_to);
- connections.add(link->m_to, link->m_from);
+ connections.add(const_cast<VirtualSocket *>(link->m_from),
+ const_cast<VirtualSocket *>(link->m_to));
+ connections.add(const_cast<VirtualSocket *>(link->m_to),
+ const_cast<VirtualSocket *>(link->m_from));
}
/* TODO(jacques): items iterator */
for (VirtualSocket *vsocket : connections.keys()) {
auto others = connections.lookup(vsocket);
- vsocket->m_direct_links = m_allocator.allocate_array<VirtualSocket *>(others.size());
+ vsocket->m_direct_links = m_allocator.allocate_array<const VirtualSocket *>(others.size());
vsocket->m_direct_links.copy_from(others);
}
}
-static bool is_reroute(VirtualNode *vnode)
+static bool is_reroute(const VirtualNode &vnode)
{
- return STREQ(vnode->bnode()->idname, "NodeReroute");
+ return STREQ(vnode.bnode()->idname, "NodeReroute");
}
-static void find_connected_sockets_left(VirtualSocket *vsocket, Vector<VirtualSocket *> &r_found)
+static void find_connected_sockets_left(const VirtualSocket &vsocket,
+ Vector<const VirtualSocket *> &r_found)
{
- BLI_assert(vsocket->is_input());
- for (VirtualSocket *other : vsocket->direct_links()) {
+ BLI_assert(vsocket.is_input());
+ for (const VirtualSocket *other : vsocket.direct_links()) {
if (is_reroute(other->vnode())) {
- find_connected_sockets_left(other->vnode()->input(0), r_found);
+ find_connected_sockets_left(other->vnode().input(0), r_found);
}
else {
r_found.append(other)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list