Commit: d3b807ff02fc0b155da3ebaef67061153c95e136
Author: Jacques Lucke
Date:   Sat Apr 6 22:08:13 2019 +0200
Branches: functions
https://developer.blender.org/rBd3b807ff02fc0b155da3ebaef67061153c95e136

move BuilderContext into Builder

===================================================================

M       source/blender/functions/frontends/data_flow_nodes/builder.cpp
M       source/blender/functions/frontends/data_flow_nodes/builder.hpp
M       source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
M       source/blender/functions/frontends/data_flow_nodes/inserters.cpp
M       source/blender/functions/frontends/data_flow_nodes/inserters.hpp
M       
source/blender/functions/frontends/data_flow_nodes/inserters/conversions.cpp
M       source/blender/functions/frontends/data_flow_nodes/inserters/nodes.cpp

===================================================================

diff --git a/source/blender/functions/frontends/data_flow_nodes/builder.cpp 
b/source/blender/functions/frontends/data_flow_nodes/builder.cpp
index a680dbaec7e..e1021868228 100644
--- a/source/blender/functions/frontends/data_flow_nodes/builder.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/builder.cpp
@@ -88,19 +88,17 @@ namespace FN { namespace DataFlowNodes {
                return m_graph->insert(fn);
        }
 
-       Node *Builder::insert_function(SharedFunction &fn, bNodeTree *btree, 
bNode *bnode)
+       Node *Builder::insert_function(SharedFunction &fn, bNode *bnode)
        {
-               BLI_assert(btree != nullptr);
                BLI_assert(bnode != nullptr);
-               NodeSource *source = 
m_graph->new_source_info<NodeSource>(btree, bnode);
+               NodeSource *source = 
m_graph->new_source_info<NodeSource>(m_ctx.btree(), bnode);
                return m_graph->insert(fn, source);
        }
 
-       Node *Builder::insert_function(SharedFunction &fn, bNodeTree *btree, 
bNodeLink *blink)
+       Node *Builder::insert_function(SharedFunction &fn, bNodeLink *blink)
        {
-               BLI_assert(btree != nullptr);
                BLI_assert(blink != nullptr);
-               LinkSource *source = 
m_graph->new_source_info<LinkSource>(btree, blink);
+               LinkSource *source = 
m_graph->new_source_info<LinkSource>(m_ctx.btree(), blink);
                return m_graph->insert(fn, source);
        }
 
@@ -109,61 +107,61 @@ namespace FN { namespace DataFlowNodes {
                m_graph->link(a, b);
        }
 
-       void Builder::map_socket(const BuilderContext &ctx, Socket socket, 
bNodeSocket *bsocket)
+       void Builder::map_socket(Socket socket, bNodeSocket *bsocket)
        {
-               BLI_assert(ctx.is_data_socket(bsocket) ? socket.type() == 
ctx.type_of_socket(bsocket) : true);
+               BLI_assert(m_ctx.is_data_socket(bsocket) ? socket.type() == 
m_ctx.type_of_socket(bsocket) : true);
                m_socket_map.add(bsocket, socket);
        }
 
-       void Builder::map_sockets(const BuilderContext &ctx, Node *node, struct 
bNode *bnode)
+       void Builder::map_sockets(Node *node, struct bNode *bnode)
        {
                BLI_assert(BLI_listbase_count(&bnode->inputs) == 
node->input_amount());
                BLI_assert(BLI_listbase_count(&bnode->outputs) == 
node->output_amount());
 
                uint input_index = 0;
                for (bNodeSocket *bsocket : bSocketList(&bnode->inputs)) {
-                       this->map_socket(ctx, node->input(input_index), 
bsocket);
+                       this->map_socket(node->input(input_index), bsocket);
                        input_index++;
                }
 
                uint output_index = 0;
                for (bNodeSocket *bsocket : bSocketList(&bnode->outputs)) {
-                       this->map_socket(ctx, node->output(output_index), 
bsocket);
+                       this->map_socket( node->output(output_index), bsocket);
                        output_index++;
                }
        }
 
-       void Builder::map_data_sockets(const BuilderContext &ctx, Node *node, 
struct bNode *bnode)
+       void Builder::map_data_sockets(Node *node, struct bNode *bnode)
        {
                uint input_index = 0;
                for (bNodeSocket *bsocket : bSocketList(&bnode->inputs)) {
-                       if (ctx.is_data_socket(bsocket)) {
-                               this->map_socket(ctx, node->input(input_index), 
bsocket);
+                       if (m_ctx.is_data_socket(bsocket)) {
+                               this->map_socket(node->input(input_index), 
bsocket);
                                input_index++;
                        }
                }
 
                uint output_index = 0;
                for (bNodeSocket *bsocket : bSocketList(&bnode->outputs)) {
-                       if (ctx.is_data_socket(bsocket)) {
-                               this->map_socket(ctx, 
node->output(output_index), bsocket);
+                       if (m_ctx.is_data_socket(bsocket)) {
+                               this->map_socket( node->output(output_index), 
bsocket);
                                output_index++;
                        }
                }
        }
 
-       void Builder::map_input(const BuilderContext &ctx, Socket socket, 
struct bNode *bnode, uint index)
+       void Builder::map_input(Socket socket, struct bNode *bnode, uint index)
        {
                BLI_assert(socket.is_input());
                auto bsocket = (bNodeSocket *)BLI_findlink(&bnode->inputs, 
index);
-               this->map_socket(ctx, socket, bsocket);
+               this->map_socket(socket, bsocket);
        }
 
-       void Builder::map_output(const BuilderContext &ctx, Socket socket, 
struct bNode *bnode, uint index)
+       void Builder::map_output(Socket socket, struct bNode *bnode, uint index)
        {
                BLI_assert(socket.is_output());
                auto bsocket = (bNodeSocket *)BLI_findlink(&bnode->outputs, 
index);
-               this->map_socket(ctx, socket, bsocket);
+               this->map_socket(socket, bsocket);
        }
 
        Socket Builder::lookup_socket(struct bNodeSocket *bsocket)
@@ -174,15 +172,14 @@ namespace FN { namespace DataFlowNodes {
 
        bool Builder::check_if_sockets_are_mapped(
                struct bNode *bnode,
-               bSocketList bsockets,
-               const BuilderContext &ctx) const
+               bSocketList bsockets) const
        {
                int index = 0;
                for (bNodeSocket *bsocket : bsockets) {
-                       if (ctx.is_data_socket(bsocket)) {
+                       if (m_ctx.is_data_socket(bsocket)) {
                                if (!m_socket_map.contains(bsocket)) {
                                        std::cout << "Data Socket not mapped: " 
<< std::endl;
-                                       std::cout << "    Tree: " << 
ctx.btree()->id.name << std::endl;
+                                       std::cout << "    Tree: " << 
m_ctx.btree()->id.name << std::endl;
                                        std::cout << "    Node: " << 
bnode->name << std::endl;
                                        if (bsocket->in_out == SOCK_IN) {
                                                std::cout << "    Input";
@@ -199,11 +196,11 @@ namespace FN { namespace DataFlowNodes {
                return true;
        }
 
-       bool Builder::verify_data_sockets_mapped(struct bNode *bnode, const 
BuilderContext &ctx) const
+       bool Builder::verify_data_sockets_mapped(struct bNode *bnode) const
        {
                return (
-                       this->check_if_sockets_are_mapped(bnode, 
bSocketList(&bnode->inputs), ctx) &&
-                       this->check_if_sockets_are_mapped(bnode, 
bSocketList(&bnode->outputs), ctx));
+                       this->check_if_sockets_are_mapped(bnode, 
bSocketList(&bnode->inputs)) &&
+                       this->check_if_sockets_are_mapped(bnode, 
bSocketList(&bnode->outputs)));
        }
 
 
diff --git a/source/blender/functions/frontends/data_flow_nodes/builder.hpp 
b/source/blender/functions/frontends/data_flow_nodes/builder.hpp
index c82e7de8d46..57b77479f77 100644
--- a/source/blender/functions/frontends/data_flow_nodes/builder.hpp
+++ b/source/blender/functions/frontends/data_flow_nodes/builder.hpp
@@ -14,41 +14,6 @@ namespace FN { namespace DataFlowNodes {
 
        using SocketMap = SmallMap<struct bNodeSocket *, Socket>;
 
-       class BuilderContext;
-
-       class Builder {
-       private:
-               SharedDataFlowGraph &m_graph;
-               SocketMap &m_socket_map;
-
-       public:
-               Builder(
-                       SharedDataFlowGraph &graph,
-                       SocketMap &socket_map)
-                       : m_graph(graph), m_socket_map(socket_map) {}
-
-               Node *insert_function(SharedFunction &fn);
-               Node *insert_function(SharedFunction &fn, struct bNodeTree 
*btree, struct bNode *bnode);
-               Node *insert_function(SharedFunction &fn, struct bNodeTree 
*btree, struct bNodeLink *blink);
-               void insert_link(Socket a, Socket b);
-
-               void map_socket(const BuilderContext &ctx, Socket socket, 
struct bNodeSocket *bsocket);
-               void map_sockets(const BuilderContext &ctx, Node *node, struct 
bNode *bnode);
-               void map_data_sockets(const BuilderContext &ctx, Node *node, 
struct bNode *bnode);
-               void map_input(const BuilderContext &ctx, Socket socket, struct 
bNode *bnode, uint index);
-               void map_output(const BuilderContext &ctx, Socket socket, 
struct bNode *bnode, uint index);
-
-               Socket lookup_socket(struct bNodeSocket *bsocket);
-               bool verify_data_sockets_mapped(struct bNode *bnode, const 
BuilderContext &ctx) const;
-
-       private:
-               bool check_if_sockets_are_mapped(
-                       struct bNode *bnode,
-                       bSocketList bsockets,
-                       const BuilderContext &ctx) const;
-       };
-
-
        class BuilderContext {
        private:
                struct bNodeTree *m_btree;
@@ -71,4 +36,42 @@ namespace FN { namespace DataFlowNodes {
                std::string socket_type_string(bNodeSocket *bsocket) const;
        };
 
+       class Builder {
+       private:
+               const BuilderContext &m_ctx;
+               SharedDataFlowGraph &m_graph;
+               SocketMap &m_socket_map;
+
+       public:
+               Builder(
+                       const BuilderContext &ctx,
+                       SharedDataFlowGraph &graph,
+                       SocketMap &socket_map)
+                       : m_ctx(ctx), m_graph(graph), m_socket_map(socket_map) 
{}
+
+               Node *insert_function(SharedFunction &fn);
+               Node *insert_function(SharedFunction &fn, struct bNode *bnode);
+               Node *insert_function(SharedFunction &fn, struct bNodeLink 
*blink);
+               void insert_link(Socket a, Socket b);
+
+               void map_socket(Socket socket, struct bNodeSocket *bsocket);
+               void map_sockets(Node *node, struct bNode *bnode);
+               void map_data_sockets(Node *node, struct bNode *bnode);
+               void map_input(Socket socket, struct bNode *bnode, uint index);
+               void map_output(Socket socket, struct bNode *bnode, uint index);
+
+               Socket lookup_socket(struct bNodeSocket *bsocket);
+               bool verify_data_sockets_mapped(struct bNode *bnode) const;
+
+               const BuilderContext &ctx() const
+               {
+                       return m_ctx;
+               }
+
+       private:
+               bool check_if_sockets_are_mapped(
+                       struct bNode *bnode,
+                       bSocketList bsockets) const;
+       };
+
 } }
\ No newline at end of file
diff --git 
a/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp 
b/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
index 844f2d86bdf..d69b6fe8f23 100644
--- a/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
@@ -53,7 +53,7 @@ namespace FN { namespace DataFlowNodes {
 
                auto fn = SharedFunction::New("Function Input", Signature({}, 
outputs));
                Node *node = builder.insert_function(fn);
-               builder.map_data_sockets(ctx, node, bnode);
+               builder.map_data_sockets(node, bnode);
        }
 
        static void insert_output_node(
@@ -69,7 +69,7 @@ namespace FN { namespace DataFlowNodes {
 
                auto fn = SharedFunction::New("Function Output", 
Signature(inputs, {}));
                Node *node = builder.insert_function(fn);
-               builder.map_data_sockets(ctx, node, bnode);
+               builder.map_data_sockets(node, bnode);
        }
 
        struct BSocketLink {
@@ -150,8 +150,8 @@ namespace FN { namespace DataFlowNodes {
                auto graph = SharedDataFlowGraph::New();
                SocketMap socket_map;
 
-               Builder builder(graph, socket_map);
                BuilderContext ctx(btree);
+               Builder builder(ctx, graph, socket_map);
                GraphInserters &inserters = get_standard_inserters();
 
                bNode *input_node;
@@ -166,7 +166,7 @@ namespace FN { namespace DataFlowNodes {
                                continue;
                        }
 
-                       if (!inserters.insert_node(builder, ctx, bnode)) {
+                       if (!inserters.insert_node(builder, bnode)) {
                                return {};
                        }
                }
@@ -194,7 +194,7 @@ namespace FN { namespace DataFlowNodes {
                TreeData tree_data(btree);
                for (auto &link : tree_data.data_origi

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to