[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 ¶ms, 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