[Bf-blender-cvs] [28f239a384c] functions: remove BuilderContext
Jacques Lucke
noreply at git.blender.org
Sat Apr 6 22:43:50 CEST 2019
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. @@
More information about the Bf-blender-cvs
mailing list