|
Blender V4.3
|
#include <COM_NodeOperationBuilder.h>
Classes | |
| class | Link |
Public Member Functions | |
| NodeOperationBuilder (const CompositorContext *context, bNodeTree *b_nodetree, ExecutionSystem *system) | |
| const CompositorContext & | context () const |
| void | convert_to_operations (ExecutionSystem *system) |
| void | add_operation (NodeOperation *operation) |
| void | replace_operation_with_constant (NodeOperation *operation, ConstantOperation *constant_operation) |
| void | map_input_socket (NodeInput *node_socket, NodeOperationInput *operation_socket) |
| void | map_output_socket (NodeOutput *node_socket, NodeOperationOutput *operation_socket) |
| void | add_link (NodeOperationOutput *from, NodeOperationInput *to) |
| void | remove_input_link (NodeOperationInput *to) |
| void | add_preview (NodeOperationOutput *output) |
| void | add_node_input_preview (NodeInput *input) |
| void | register_viewer (ViewerOperation *viewer) |
| ViewerOperation * | active_viewer () const |
| Span< NodeOperation * > | get_operations () const |
| Span< Link > | get_links () const |
Protected Member Functions | |
| void | add_datatype_conversions () |
| void | add_operation_input_constants () |
| void | add_input_constant_value (NodeOperationInput *input, const NodeInput *node_input) |
| void | resolve_proxies () |
| void | determine_canvases () |
| Vector< NodeOperationInput * > | cache_output_links (NodeOperationOutput *output) const |
| void | prune_operations () |
| void | sort_operations () |
Definition at line 29 of file COM_NodeOperationBuilder.h.
| blender::compositor::NodeOperationBuilder::NodeOperationBuilder | ( | const CompositorContext * | context, |
| bNodeTree * | b_nodetree, | ||
| ExecutionSystem * | system ) |
Definition at line 25 of file COM_NodeOperationBuilder.cc.
References blender::compositor::NodeGraph::from_bNodeTree().
|
inline |
The currently active viewer output operation
Definition at line 102 of file COM_NodeOperationBuilder.h.
Referenced by blender::compositor::NodeConverter::active_viewer().
|
protected |
Add datatype conversion where needed
Definition at line 269 of file COM_NodeOperationBuilder.cc.
References add_link(), add_operation(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::compositor::COM_convert_data_type(), blender::compositor::NodeOperation::get_flags(), blender::compositor::NodeOperation::get_input_socket(), blender::compositor::NodeOperation::get_output_socket(), remove_input_link(), and blender::compositor::NodeOperationFlags::use_datatype_conversion.
Referenced by convert_to_operations().
|
protected |
Definition at line 317 of file COM_NodeOperationBuilder.cc.
References add_link(), add_operation(), BLI_assert_unreachable, blender::compositor::Color, blender::compositor::Float2, blender::compositor::NodeInput::get_bnode_socket(), blender::compositor::NodeInput::get_editor_value_color(), blender::compositor::NodeInput::get_editor_value_float(), blender::compositor::NodeInput::get_editor_value_vector(), blender::compositor::NodeOperation::get_output_socket(), blender::compositor::SetColorOperation::set_channels(), blender::compositor::SetValueOperation::set_value(), blender::compositor::SetVectorOperation::set_vector(), blender::compositor::Value, blender::compositor::Vector, zero_v3(), and zero_v4().
Referenced by add_operation_input_constants().
| void blender::compositor::NodeOperationBuilder::add_link | ( | NodeOperationOutput * | from, |
| NodeOperationInput * | to ) |
Definition at line 167 of file COM_NodeOperationBuilder.cc.
Referenced by add_datatype_conversions(), blender::compositor::NodeConverter::add_input_color(), add_input_constant_value(), blender::compositor::NodeConverter::add_input_value(), blender::compositor::NodeConverter::add_input_vector(), blender::compositor::NodeConverter::add_link(), add_preview(), blender::compositor::COM_convert_canvas(), convert_to_operations(), and resolve_proxies().
| void blender::compositor::NodeOperationBuilder::add_node_input_preview | ( | NodeInput * | input | ) |
Add a preview operation for a node input
Definition at line 236 of file COM_NodeOperationBuilder.cc.
References add_operation(), blender::compositor::NodeOperation::get_input_socket(), and map_input_socket().
Referenced by blender::compositor::NodeConverter::add_node_input_preview().
| void blender::compositor::NodeOperationBuilder::add_operation | ( | NodeOperation * | operation | ) |
Definition at line 106 of file COM_NodeOperationBuilder.cc.
References blender::compositor::Node::get_bnode(), blender::compositor::Node::get_instance_key(), bNode::name, blender::compositor::NodeOperation::set_execution_system(), blender::compositor::NodeOperation::set_id(), blender::compositor::NodeOperation::set_name(), and blender::compositor::NodeOperation::set_node_instance_key().
Referenced by add_datatype_conversions(), blender::compositor::NodeConverter::add_input_color(), add_input_constant_value(), blender::compositor::NodeConverter::add_input_proxy(), blender::compositor::NodeConverter::add_input_value(), blender::compositor::NodeConverter::add_input_vector(), add_node_input_preview(), blender::compositor::NodeConverter::add_operation(), blender::compositor::NodeConverter::add_output_color(), blender::compositor::NodeConverter::add_output_proxy(), blender::compositor::NodeConverter::add_output_value(), blender::compositor::NodeConverter::add_output_vector(), add_preview(), blender::compositor::COM_convert_canvas(), replace_operation_with_constant(), and blender::compositor::NodeConverter::set_invalid_output().
|
protected |
Construct a constant value operation for every unconnected input
Definition at line 298 of file COM_NodeOperationBuilder.cc.
References add_input_constant_value(), and blender::Vector< T, InlineBufferCapacity, Allocator >::append().
Referenced by convert_to_operations().
| void blender::compositor::NodeOperationBuilder::add_preview | ( | NodeOperationOutput * | output | ) |
Add a preview operation for a operation output
Definition at line 226 of file COM_NodeOperationBuilder.cc.
References add_link(), add_operation(), and blender::compositor::NodeOperation::get_input_socket().
Referenced by blender::compositor::NodeConverter::add_preview().
|
protected |
Helper function to store connected inputs for replacement
Definition at line 496 of file COM_NodeOperationBuilder.cc.
|
inline |
Definition at line 75 of file COM_NodeOperationBuilder.h.
| void blender::compositor::NodeOperationBuilder::convert_to_operations | ( | ExecutionSystem * | system | ) |
Definition at line 33 of file COM_NodeOperationBuilder.cc.
References blender::MultiValueMap< Key, Value >::add(), add_datatype_conversions(), add_link(), add_operation_input_constants(), determine_canvases(), blender::compositor::ConstantFolder::fold_operations(), blender::Span< T >::is_empty(), blender::compositor::NodeGraph::links(), blender::MultiValueMap< Key, Value >::lookup(), node, blender::compositor::DebugInfo::node_to_operations(), blender::compositor::NodeGraph::nodes(), prune_operations(), resolve_proxies(), and blender::compositor::ExecutionSystem::set_operations().
Referenced by blender::compositor::ExecutionSystem::ExecutionSystem().
|
protected |
Calculate canvas area for each operation.
Definition at line 403 of file COM_NodeOperationBuilder.cc.
References blender::compositor::Align, blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_rcti_compare(), blender::compositor::COM_AREA_NONE, blender::compositor::COM_convert_canvas(), blender::compositor::CompositorContext::is_rendering(), blender::compositor::None, rcti::xmin, and rcti::ymin.
Referenced by convert_to_operations().
Definition at line 112 of file COM_NodeOperationBuilder.h.
Referenced by blender::compositor::operator<<().
|
inline |
Definition at line 107 of file COM_NodeOperationBuilder.h.
Referenced by blender::compositor::ConstantFolder::fold_operations(), and blender::compositor::operator<<().
| void blender::compositor::NodeOperationBuilder::map_input_socket | ( | NodeInput * | node_socket, |
| NodeOperationInput * | operation_socket ) |
Map input socket of the current node to an operation socket
Definition at line 145 of file COM_NodeOperationBuilder.cc.
References BLI_assert, and blender::compositor::NodeInput::get_node().
Referenced by blender::compositor::NodeConverter::add_input_proxy(), add_node_input_preview(), and blender::compositor::NodeConverter::map_input_socket().
| void blender::compositor::NodeOperationBuilder::map_output_socket | ( | NodeOutput * | node_socket, |
| NodeOperationOutput * | operation_socket ) |
Map output socket of the current node to an operation socket
Definition at line 158 of file COM_NodeOperationBuilder.cc.
References BLI_assert, and blender::compositor::NodeOutput::get_node().
Referenced by blender::compositor::NodeConverter::add_output_color(), blender::compositor::NodeConverter::add_output_proxy(), blender::compositor::NodeConverter::add_output_value(), blender::compositor::NodeConverter::add_output_vector(), blender::compositor::NodeConverter::map_output_socket(), and blender::compositor::NodeConverter::set_invalid_output().
|
protected |
Remove unreachable operations
Definition at line 525 of file COM_NodeOperationBuilder.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::compositor::find_reachable_operations_recursive(), and blender::compositor::CompositorContext::is_rendering().
Referenced by convert_to_operations().
| void blender::compositor::NodeOperationBuilder::register_viewer | ( | ViewerOperation * | viewer | ) |
Define a viewer operation as the active output, if possible
Definition at line 246 of file COM_NodeOperationBuilder.cc.
References blender::compositor::Node::is_in_active_group(), and blender::compositor::ViewerOperation::set_active().
Referenced by blender::compositor::NodeConverter::register_viewer().
| void blender::compositor::NodeOperationBuilder::remove_input_link | ( | NodeOperationInput * | to | ) |
Definition at line 179 of file COM_NodeOperationBuilder.cc.
Referenced by add_datatype_conversions(), blender::compositor::COM_convert_canvas(), and resolve_proxies().
| void blender::compositor::NodeOperationBuilder::replace_operation_with_constant | ( | NodeOperation * | operation, |
| ConstantOperation * | constant_operation ) |
Definition at line 117 of file COM_NodeOperationBuilder.cc.
References add_operation(), BLI_assert, and blender::compositor::NodeOperation::get_number_of_input_sockets().
|
protected |
Replace proxy operations with direct links
Definition at line 373 of file COM_NodeOperationBuilder.cc.
References add_link(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), and remove_input_link().
Referenced by convert_to_operations().
|
protected |
Sort operations by link dependencies
Definition at line 569 of file COM_NodeOperationBuilder.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::compositor::sort_operations_recursive(), and visited.