Blender V4.3
NOD_partial_eval.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
8
9#include "BLI_function_ref.hh"
10#include "BLI_resource_scope.hh"
11#include "BLI_set.hh"
12
13#include "DNA_node_types.h"
14
26
46 const Span<SocketInContext> initial_sockets,
47 ResourceScope &scope,
48 FunctionRef<void(const NodeInContext &ctx_node,
49 Vector<const bNodeSocket *> &r_outputs_to_propagate)> evaluate_node_fn,
50 FunctionRef<bool(const SocketInContext &ctx_from, const SocketInContext &ctx_to)>
51 propagate_value_fn);
52
58
83 const Span<SocketInContext> initial_sockets,
84 ResourceScope &scope,
85 FunctionRef<void(const NodeInContext &ctx_node,
86 Vector<const bNodeSocket *> &r_modified_inputs)> evaluate_node_fn,
87 FunctionRef<bool(const SocketInContext &ctx_from, const SocketInContext &ctx_to)>
88 propagate_value_fn,
89 FunctionRef<void(const NodeInContext &ctx_node, Vector<const bNodeSocket *> &r_sockets)>
90 get_inputs_to_propagate_fn);
91
92bool is_supported_value_node(const bNode &node);
93
94} // namespace blender::nodes::partial_eval
void eval_downstream(const Span< SocketInContext > initial_sockets, ResourceScope &scope, FunctionRef< void(const NodeInContext &ctx_node, Vector< const bNodeSocket * > &r_outputs_to_propagate)> evaluate_node_fn, FunctionRef< bool(const SocketInContext &ctx_from, const SocketInContext &ctx_to)> propagate_value_fn)
UpstreamEvalTargets eval_upstream(const Span< SocketInContext > initial_sockets, ResourceScope &scope, FunctionRef< void(const NodeInContext &ctx_node, Vector< const bNodeSocket * > &r_modified_inputs)> evaluate_node_fn, FunctionRef< bool(const SocketInContext &ctx_from, const SocketInContext &ctx_to)> propagate_value_fn, FunctionRef< void(const NodeInContext &ctx_node, Vector< const bNodeSocket * > &r_sockets)> get_inputs_to_propagate_fn)
bool is_supported_value_node(const bNode &node)