Commit: 28f239a384caacb578ec980d0d02f5d6da6102b5
Author: Jacques Lucke
Date:   Sat Apr 6 22:27:58 2019 +0200
Branches: functions
https://developer.blender.org/rB28f239a384caacb578ec980d0d02f5d6da6102b5

remove BuilderContext

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

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/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 d3e16a5b9f6..a51fe380efb 100644
--- a/source/blender/functions/frontends/data_flow_nodes/builder.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/builder.cpp
@@ -91,14 +91,14 @@ namespace FN { namespace DataFlowNodes {
        Node *GraphBuilder::insert_function(SharedFunction &fn, bNode *bnode)
        {
                BLI_assert(bnode != nullptr);
-               NodeSource *source = 
m_graph->new_source_info<NodeSource>(m_ctx.btree(), bnode);
+               NodeSource *source = 
m_graph->new_source_info<NodeSource>(m_btree, bnode);
                return m_graph->insert(fn, source);
        }
 
        Node *GraphBuilder::insert_function(SharedFunction &fn, bNodeLink 
*blink)
        {
                BLI_assert(blink != nullptr);
-               LinkSource *source = 
m_graph->new_source_info<LinkSource>(m_ctx.btree(), blink);
+               LinkSource *source = 
m_graph->new_source_info<LinkSource>(m_btree, blink);
                return m_graph->insert(fn, source);
        }
 
@@ -109,7 +109,7 @@ namespace FN { namespace DataFlowNodes {
 
        void GraphBuilder::map_socket(Socket socket, bNodeSocket *bsocket)
        {
-               BLI_assert(m_ctx.is_data_socket(bsocket) ? socket.type() == 
m_ctx.type_of_socket(bsocket) : true);
+               BLI_assert(this->is_data_socket(bsocket) ? socket.type() == 
this->type_of_socket(bsocket) : true);
                m_socket_map.add(bsocket, socket);
        }
 
@@ -135,7 +135,7 @@ namespace FN { namespace DataFlowNodes {
        {
                uint input_index = 0;
                for (bNodeSocket *bsocket : bSocketList(&bnode->inputs)) {
-                       if (m_ctx.is_data_socket(bsocket)) {
+                       if (this->is_data_socket(bsocket)) {
                                this->map_socket(node->input(input_index), 
bsocket);
                                input_index++;
                        }
@@ -143,7 +143,7 @@ namespace FN { namespace DataFlowNodes {
 
                uint output_index = 0;
                for (bNodeSocket *bsocket : bSocketList(&bnode->outputs)) {
-                       if (m_ctx.is_data_socket(bsocket)) {
+                       if (this->is_data_socket(bsocket)) {
                                this->map_socket( node->output(output_index), 
bsocket);
                                output_index++;
                        }
@@ -176,10 +176,10 @@ namespace FN { namespace DataFlowNodes {
        {
                int index = 0;
                for (bNodeSocket *bsocket : bsockets) {
-                       if (m_ctx.is_data_socket(bsocket)) {
+                       if (this->is_data_socket(bsocket)) {
                                if (!m_socket_map.contains(bsocket)) {
                                        std::cout << "Data Socket not mapped: " 
<< std::endl;
-                                       std::cout << "    Tree: " << 
m_ctx.btree()->id.name << std::endl;
+                                       std::cout << "    Tree: " << 
m_btree->id.name << std::endl;
                                        std::cout << "    Node: " << 
bnode->name << std::endl;
                                        if (bsocket->in_out == SOCK_IN) {
                                                std::cout << "    Input";
@@ -204,24 +204,23 @@ namespace FN { namespace DataFlowNodes {
        }
 
 
-       struct bNodeTree *BuilderContext::btree() const
+       struct bNodeTree *GraphBuilder::btree() const
        {
                return m_btree;
        }
 
-       struct ID *BuilderContext::btree_id() const
+       struct ID *GraphBuilder::btree_id() const
        {
                return &m_btree->id;
        }
 
-       bool BuilderContext::is_data_socket(bNodeSocket *bsocket) const
+       bool GraphBuilder::is_data_socket(bNodeSocket *bsocket) const
        {
-               PointerRNA ptr;
-               this->get_rna(bsocket, &ptr);
+               PointerRNA ptr = this->get_rna(bsocket);
                return RNA_struct_find_property(&ptr, "data_type") != NULL;
        }
 
-       SharedType &BuilderContext::type_by_name(const char *data_type) const
+       SharedType &GraphBuilder::type_by_name(const char *data_type) const
        {
                if (STREQ(data_type, "Float")) {
                        return Types::GET_TYPE_float();
@@ -250,45 +249,47 @@ namespace FN { namespace DataFlowNodes {
                }
        }
 
-       SharedType &BuilderContext::type_of_socket(bNodeSocket *bsocket) const
+       SharedType &GraphBuilder::type_of_socket(bNodeSocket *bsocket) const
        {
                std::string data_type = this->socket_type_string(bsocket);
                return this->type_by_name(data_type.c_str());
        }
 
-       std::string BuilderContext::name_of_socket(bNode *UNUSED(bnode), 
bNodeSocket *bsocket) const
+       std::string GraphBuilder::name_of_socket(bNode *UNUSED(bnode), 
bNodeSocket *bsocket) const
        {
                return bsocket->name;
        }
 
-       void BuilderContext::get_rna(bNode *bnode, PointerRNA *ptr) const
+       PointerRNA GraphBuilder::get_rna(bNode *bnode) const
        {
+               PointerRNA ptr;
                RNA_pointer_create(
                        this->btree_id(), &RNA_Node,
-                       bnode, ptr);
+                       bnode, &ptr);
+               return ptr;
        }
 
-       void BuilderContext::get_rna(bNodeSocket *bsocket, PointerRNA *ptr) 
const
+       PointerRNA GraphBuilder::get_rna(bNodeSocket *bsocket) const
        {
+               PointerRNA ptr;
                RNA_pointer_create(
                        this->btree_id(), &RNA_NodeSocket,
-                       bsocket, ptr);
+                       bsocket, &ptr);
+               return ptr;
        }
 
-       SharedType &BuilderContext::type_from_rna(bNode *bnode, const char 
*prop_name) const
+       SharedType &GraphBuilder::type_from_rna(bNode *bnode, const char 
*prop_name) const
        {
-               PointerRNA ptr;
-               this->get_rna(bnode, &ptr);
+               PointerRNA ptr = this->get_rna(bnode);
                char type_name[64];
                RNA_string_get(&ptr, prop_name, type_name);
                return this->type_by_name(type_name);
        }
 
-       std::string BuilderContext::socket_type_string(bNodeSocket *bsocket) 
const
+       std::string GraphBuilder::socket_type_string(bNodeSocket *bsocket) const
        {
                BLI_assert(this->is_data_socket(bsocket));
-               PointerRNA ptr;
-               this->get_rna(bsocket, &ptr);
+               PointerRNA ptr = this->get_rna(bsocket);
                char type_name[64];
                RNA_string_get(&ptr, "data_type", type_name);
                return type_name;
diff --git a/source/blender/functions/frontends/data_flow_nodes/builder.hpp 
b/source/blender/functions/frontends/data_flow_nodes/builder.hpp
index 769dde041d7..5fe589d9fac 100644
--- a/source/blender/functions/frontends/data_flow_nodes/builder.hpp
+++ b/source/blender/functions/frontends/data_flow_nodes/builder.hpp
@@ -14,46 +14,28 @@ namespace FN { namespace DataFlowNodes {
 
        using SocketMap = SmallMap<struct bNodeSocket *, Socket>;
 
-       class BuilderContext {
-       private:
-               struct bNodeTree *m_btree;
-
-       public:
-               BuilderContext(struct bNodeTree *btree)
-                       : m_btree(btree) {}
-
-               bNodeTree *btree() const;
-               ID *btree_id() const;
-
-               bool is_data_socket(bNodeSocket *bsocket) const;
-               SharedType &type_by_name(const char *data_type) const;
-               SharedType &type_of_socket(bNodeSocket *bsocket) const;
-               std::string name_of_socket(bNode *bnode, bNodeSocket *bsocket) 
const;
-
-               void get_rna(bNode *bnode, PointerRNA *ptr) const;
-               void get_rna(bNodeSocket *bsocket, PointerRNA *ptr) const;
-               SharedType &type_from_rna(bNode *bnode, const char *prop_name) 
const;
-               std::string socket_type_string(bNodeSocket *bsocket) const;
-       };
-
        class GraphBuilder {
        private:
-               const BuilderContext &m_ctx;
+               struct bNodeTree *m_btree;
                SharedDataFlowGraph &m_graph;
                SocketMap &m_socket_map;
 
        public:
                GraphBuilder(
-                       const BuilderContext &ctx,
+                       struct bNodeTree *btree,
                        SharedDataFlowGraph &graph,
                        SocketMap &socket_map)
-                       : m_ctx(ctx), m_graph(graph), m_socket_map(socket_map) 
{}
+                       : m_btree(btree), m_graph(graph), 
m_socket_map(socket_map) {}
 
+               /* Insert Function */
                Node *insert_function(SharedFunction &fn);
                Node *insert_function(SharedFunction &fn, struct bNode *bnode);
                Node *insert_function(SharedFunction &fn, struct bNodeLink 
*blink);
+
+               /* Insert Link */
                void insert_link(Socket a, Socket b);
 
+               /* Socket Mapping */
                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);
@@ -63,10 +45,23 @@ namespace FN { namespace DataFlowNodes {
                Socket lookup_socket(struct bNodeSocket *bsocket);
                bool verify_data_sockets_mapped(struct bNode *bnode) const;
 
-               const BuilderContext &ctx() const
-               {
-                       return m_ctx;
-               }
+               /* Type Mapping */
+               SharedType &type_by_name(const char *data_type) const;
+
+               /* Query Node Tree */
+               bNodeTree *btree() const;
+               ID *btree_id() const;
+
+               /* Query Socket Information */
+               PointerRNA get_rna(bNodeSocket *bsocket) const;
+               bool is_data_socket(bNodeSocket *bsocket) const;
+               SharedType &type_of_socket(bNodeSocket *bsocket) const;
+               std::string name_of_socket(bNode *bnode, bNodeSocket *bsocket) 
const;
+               std::string socket_type_string(bNodeSocket *bsocket) const;
+
+               /* Query Node Information */
+               PointerRNA get_rna(bNode *bnode) const;
+               SharedType &type_from_rna(bNode *bnode, const char *prop_name) 
const;
 
        private:
                bool check_if_sockets_are_mapped(
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 cf86aca35ce..cbb04369912 100644
--- a/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
+++ b/source/blender/functions/frontends/data_flow_nodes/graph_generation.cpp
@@ -41,13 +41,13 @@ namespace FN { namespace DataFlowNodes {
        }
 
        static void insert_input_node(
-               GraphBuilder &builder, const BuilderContext &ctx, bNode *bnode)
+               GraphBuilder &builder, bNode *bnode)
        {
                OutputParameters outputs;
                for (bNodeSocket *bsocket : bSocketList(&bnode->outputs)) {
-                       if (ctx.is_data_socket(bsocket)) {
-                               SharedType &type = ctx.type_of_socket(bsocket);
-                               
outputs.append(OutputParameter(ctx.name_of_socket(bnode, bsocket), type));
+                       if (builder.is_data_socket(bsocket)) {
+                               SharedType &type = 
builder.type_of_socket(bsocket);
+                               
outputs.append(OutputParameter(builder.name_of_socket(bnode, bsocket), type));
                        }
                }
 
@@ -57,13 +57,13 @@ namespace FN { namespace DataFlowNodes {
        }
 
        static void insert_output_node(
-               GraphBuilder &builder, const BuilderContext &ctx, bNode *bnode)
+               GraphBuilder &builder, bNode *bnode)
        {
                InputParameters inputs;
                for (bNodeSocket *bsocket : bSocketList(&bnode->inputs)) {
-                       if (ctx.is_data_socket(bsocket)) {
-                               SharedType &type = ctx.type_of_socket(bsocket);
-                               
inputs.append(InputParameter(ctx.name_of_socket(bnode, bsocket), type));
+                       if (builder.is_data_socket(bsocket)) {
+                               SharedType &type = 
builder.type_of_socket(bsocket);
+                               
inputs.append(InputParameter(builder.name_of_socket(bnode, bsocket), type));
                        }
                }
 
@@ -150,8 +150,7 @@ namespace FN { namespace DataFlowNodes {
                auto graph = SharedDataFlowGraph::New();
                SocketMap socket_map;
 
-               BuilderContext ctx(btree);
-               GraphBuilder builder(ctx, graph, socket_ma

@@ 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