Blender
V3.3
|
Public Attributes | |
const CPPType * | type = nullptr |
union { | |
SingleInputValue * single | |
MultiInputValue * multi | |
} | value |
ValueUsage | usage = ValueUsage::Maybe |
bool | was_ready_for_execution = false |
bool | force_compute = false |
Definition at line 103 of file MOD_nodes_evaluator.cc.
bool blender::modifiers::geometry_nodes::InputState::force_compute = false |
True when this input has to be computed for logging/debugging purposes, regardless of whether it is needed for some output.
Definition at line 146 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::finish_node_if_possible().
MultiInputValue* blender::modifiers::geometry_nodes::InputState::multi |
Definition at line 119 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::NodeParamsProvider::can_get_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_input_value_if_exists(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_node_state(), blender::modifiers::geometry_nodes::NodeParamsProvider::extract_multi_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::initialize_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::load_unlinked_input_value(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required().
SingleInputValue* blender::modifiers::geometry_nodes::InputState::single |
Definition at line 118 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::add_value_to_input_socket(), blender::modifiers::geometry_nodes::NodeParamsProvider::can_get_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_input_value_if_exists(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_multi_function_node(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::extract_group_outputs(), blender::modifiers::geometry_nodes::NodeParamsProvider::extract_input(), blender::modifiers::geometry_nodes::NodeParamsProvider::get_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::initialize_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::load_unlinked_input_value(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required().
const CPPType* blender::modifiers::geometry_nodes::InputState::type = nullptr |
Type of the socket. If this is null, the socket should just be ignored.
Definition at line 108 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_input_value_if_exists(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_multi_function_node(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::extract_group_outputs(), blender::modifiers::geometry_nodes::NodeParamsProvider::extract_input(), blender::modifiers::geometry_nodes::NodeParamsProvider::extract_multi_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::foreach_non_lazy_input(), blender::modifiers::geometry_nodes::NodeParamsProvider::get_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::initialize_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::load_unlinked_input_value(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::log_socket_value(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution().
ValueUsage blender::modifiers::geometry_nodes::InputState::usage = ValueUsage::Maybe |
How the node intends to use this input. By default all inputs may be used. Based on which outputs are used, a node can tell the evaluator that an input will definitely be used or is never used. This allows the evaluator to free values early, avoid copies and other unnecessary computations.
Definition at line 128 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::add_value_to_input_socket(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::finish_node_if_possible(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::initialize_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_unused(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::should_forward_to_socket().
union { ... } blender::modifiers::geometry_nodes::InputState::value |
Value of this input socket. By default, the value is empty. When other nodes are done computing their outputs, the computed values will be forwarded to linked input sockets. The value will then live here until it is consumed by the node or it was found that the value is not needed anymore. Whether the single
or multi
value is used depends on the socket.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::add_value_to_input_socket(), blender::modifiers::geometry_nodes::NodeParamsProvider::can_get_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_input_value_if_exists(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_multi_function_node(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::extract_group_outputs(), blender::modifiers::geometry_nodes::NodeParamsProvider::extract_input(), blender::modifiers::geometry_nodes::NodeParamsProvider::extract_multi_input(), blender::modifiers::geometry_nodes::NodeParamsProvider::get_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::initialize_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::load_unlinked_input_value(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required().
bool blender::modifiers::geometry_nodes::InputState::was_ready_for_execution = false |
True when this input is/was used for an execution. While a node is running, only the inputs that have this set to true are allowed to be used. This makes sure that inputs created while the node is running correctly trigger the node to run again. Furthermore, it gives the node a consistent view of which inputs are available that does not change unexpectedly.
While the node is running, this can be checked without a lock, because no one is writing to it. If this is true, the value can be read without a lock as well, because the value is not changed by others anymore.
Definition at line 140 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::NodeParamsProvider::can_get_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_multi_function_node(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::finish_node_if_possible(), blender::modifiers::geometry_nodes::NodeParamsProvider::lazy_require_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_unused().