[Bf-blender-cvs] [d98c7a195fd] temp-geometry-nodes-evaluator-refactor: add lazy function for viewer node

Jacques Lucke noreply at git.blender.org
Tue Sep 6 20:09:56 CEST 2022


Commit: d98c7a195fd4fe3b1d215df747b16a22619db2e9
Author: Jacques Lucke
Date:   Tue Sep 6 19:45:17 2022 +0200
Branches: temp-geometry-nodes-evaluator-refactor
https://developer.blender.org/rBd98c7a195fd4fe3b1d215df747b16a22619db2e9

add lazy function for viewer node

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

M	source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc

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

diff --git a/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc b/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc
index fd6d1c973e2..c99499d9c2f 100644
--- a/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc
+++ b/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc
@@ -437,6 +437,22 @@ class LazyFunctionForComplexInput : public LazyFunction {
   }
 };
 
+class LazyFunctionForViewerNode : public LazyFunction {
+ public:
+  LazyFunctionForViewerNode()
+  {
+    static_name_ = "Viewer";
+    inputs_.append({"Geometry", CPPType::get<GeometrySet>()});
+  }
+
+  void execute_impl(lf::Params &params, const lf::Context &context) const override
+  {
+    UNUSED_VARS(context);
+    GeometrySet geometry = params.extract_input<GeometrySet>(0);
+    std::cout << "View Geometry: " << geometry << "\n";
+  }
+};
+
 class LazyFunctionForGroupNode : public LazyFunction {
  private:
   const bNode &group_node_;
@@ -651,6 +667,10 @@ struct GeometryNodesLazyFunctionGraphBuilder {
           this->handle_group_node(*bnode);
           break;
         }
+        case GEO_NODE_VIEWER: {
+          this->handle_viewer_node(*bnode);
+          break;
+        }
         default: {
           if (node_type->geometry_node_execute) {
             this->handle_geometry_node(*bnode);
@@ -824,6 +844,18 @@ struct GeometryNodesLazyFunctionGraphBuilder {
     }
   }
 
+  void handle_viewer_node(const bNode &bnode)
+  {
+    auto lazy_function = std::make_unique<LazyFunctionForViewerNode>();
+    lf::Node &lf_node = lf_graph_->add_function(*lazy_function);
+    lf_graph_info_->functions.append(std::move(lazy_function));
+
+    const bNodeSocket &geometry_bsocket = bnode.input_socket(0);
+    lf::InputSocket &lf_geometry_input = lf_node.input(0);
+    input_socket_map_.add(&geometry_bsocket, &lf_geometry_input);
+    mapping_->bsockets_by_lf_socket_map.add(&lf_geometry_input, &geometry_bsocket);
+  }
+
   void handle_links()
   {
     for (const auto item : output_socket_map_.items()) {



More information about the Bf-blender-cvs mailing list