[Bf-blender-cvs] [c6572f93172] simulation-tree: initial list sockets

Jacques Lucke noreply at git.blender.org
Mon Feb 17 18:16:34 CET 2020


Commit: c6572f93172f4643e034282a5161f569541f8c8a
Author: Jacques Lucke
Date:   Mon Feb 17 16:01:18 2020 +0100
Branches: simulation-tree
https://developer.blender.org/rBc6572f93172f4643e034282a5161f569541f8c8a

initial list sockets

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

M	source/blender/simulations/nodes/my_test_node.cc

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

diff --git a/source/blender/simulations/nodes/my_test_node.cc b/source/blender/simulations/nodes/my_test_node.cc
index dd1a0615a55..0228602b982 100644
--- a/source/blender/simulations/nodes/my_test_node.cc
+++ b/source/blender/simulations/nodes/my_test_node.cc
@@ -73,24 +73,20 @@ class ListSocketDataType : public SocketDataType {
 class DataTypesInfo {
  private:
   Set<SocketDataType *> m_data_types;
-  Set<std::pair<SocketDataType *, SocketDataType *>> m_implicit_conversions;
 
  public:
   void add_data_type(SocketDataType *data_type)
   {
     m_data_types.add_new(data_type);
   }
-
-  void add_implicit_conversion(SocketDataType *from, SocketDataType *to)
-  {
-    m_implicit_conversions.add_new({from, to});
-  }
 };
 
 static DataTypesInfo *socket_data_types;
 
-static BaseSocketDataType *float_socket_type;
-static BaseSocketDataType *int_socket_type;
+static BaseSocketDataType *data_socket_float;
+static BaseSocketDataType *data_socket_int;
+static ListSocketDataType *data_socket_float_list;
+static ListSocketDataType *data_socket_int_list;
 
 class SocketDecl {
  protected:
@@ -196,9 +192,11 @@ static void init_node(bNodeTree *ntree, bNode *node)
   NodeDecl node_decl{*ntree, *node};
   NodeBuilder node_builder{allocator, node_decl};
 
-  node_builder.fixed_input("id1", "ID 1", *float_socket_type);
-  node_builder.fixed_input("id2", "ID 2", *int_socket_type);
-  node_builder.fixed_output("id3", "ID 3", *float_socket_type);
+  node_builder.fixed_input("id1", "ID 1", *data_socket_float);
+  node_builder.fixed_input("id2", "ID 2", *data_socket_int);
+  node_builder.fixed_input("id4", "ID 4", *data_socket_int_list);
+  node_builder.fixed_output("id3", "ID 3", *data_socket_float);
+  node_builder.fixed_output("id5", "ID 5", *data_socket_float_list);
 
   node_decl.build();
 }
@@ -251,21 +249,33 @@ static bNodeSocketType *register_new_simple_socket_type(StringRefNull idname, rg
 
 void init_socket_data_types()
 {
-  register_new_simple_socket_type("TestSocket", {0.0, 1.0, 0.5, 0.5f});
+  register_new_simple_socket_type("NodeSocketFloatList", {0.63, 0.63, 0.63, 0.5});
+  register_new_simple_socket_type("NodeSocketIntList", {0.06, 0.52, 0.15, 0.5});
+
+  data_socket_float = new BaseSocketDataType("Float", nodeSocketTypeFind("NodeSocketFloat"));
+  data_socket_int = new BaseSocketDataType("Integer", nodeSocketTypeFind("NodeSocketInt"));
+  data_socket_float_list = new ListSocketDataType("Float List",
+                                                  nodeSocketTypeFind("NodeSocketFloatList"));
+  data_socket_int_list = new ListSocketDataType("Integer List",
+                                                nodeSocketTypeFind("NodeSocketIntList"));
 
-  float_socket_type = new BaseSocketDataType("Float", nodeSocketTypeFind("TestSocket"));
-  int_socket_type = new BaseSocketDataType("Integer", nodeSocketTypeFind("NodeSocketInt"));
+  data_socket_float->m_list_type = data_socket_float_list;
+  data_socket_float_list->m_base_type = data_socket_float;
+  data_socket_int->m_list_type = data_socket_int_list;
+  data_socket_int_list->m_base_type = data_socket_int;
 
   socket_data_types = new DataTypesInfo();
-  socket_data_types->add_data_type(float_socket_type);
-  socket_data_types->add_data_type(int_socket_type);
-  socket_data_types->add_implicit_conversion(float_socket_type, int_socket_type);
-  socket_data_types->add_implicit_conversion(int_socket_type, float_socket_type);
+  socket_data_types->add_data_type(data_socket_float);
+  socket_data_types->add_data_type(data_socket_int);
+  socket_data_types->add_data_type(data_socket_float_list);
+  socket_data_types->add_data_type(data_socket_int_list);
 }
 
 void free_socket_data_types()
 {
   delete socket_data_types;
-  delete float_socket_type;
-  delete int_socket_type;
+  delete data_socket_float;
+  delete data_socket_int;
+  delete data_socket_float_list;
+  delete data_socket_int_list;
 }



More information about the Bf-blender-cvs mailing list