Blender  V3.3
COM_NodeConverter.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2013 Blender Foundation. */
3 
4 #pragma once
5 
6 #ifdef WITH_CXX_GUARDEDALLOC
7 # include "MEM_guardedalloc.h"
8 #endif
9 
10 namespace blender::compositor {
11 
12 class NodeInput;
13 class NodeOutput;
14 
15 class NodeOperation;
16 class NodeOperationInput;
17 class NodeOperationOutput;
18 class NodeOperationBuilder;
19 
20 class ViewerOperation;
21 
29  public:
31 
36  void add_operation(NodeOperation *operation);
37 
45  void map_input_socket(NodeInput *node_socket, NodeOperationInput *operation_socket);
54  void map_output_socket(NodeOutput *node_socket, NodeOperationOutput *operation_socket);
55 
61  NodeOperationOutput *add_input_proxy(NodeInput *input, bool use_conversion);
67  NodeOperationInput *add_output_proxy(NodeOutput *output, bool use_conversion);
68 
70  void add_input_value(NodeOperationInput *input, float value);
72  void add_input_color(NodeOperationInput *input, const float value[4]);
74  void add_input_vector(NodeOperationInput *input, const float value[3]);
75 
77  void add_output_value(NodeOutput *output, float value);
79  void add_output_color(NodeOutput *output, const float value[4]);
81  void add_output_vector(NodeOutput *output, const float value[3]);
82 
85 
90 
96 
98  void register_viewer(ViewerOperation *viewer);
101 
102  private:
104  NodeOperationBuilder *builder_;
105 
106 #ifdef WITH_CXX_GUARDEDALLOC
107  MEM_CXX_CLASS_ALLOC_FUNCS("COM:NodeCompiler")
108 #endif
109 };
110 
111 } // namespace blender::compositor
Read Guarded memory(de)allocation.
void add_link(NodeOperationOutput *from, NodeOperationInput *to)
void map_output_socket(NodeOutput *node_socket, NodeOperationOutput *operation_socket)
void add_input_color(NodeOperationInput *input, const float value[4])
NodeOperationOutput * add_input_proxy(NodeInput *input, bool use_conversion)
void add_preview(NodeOperationOutput *output)
void register_viewer(ViewerOperation *viewer)
NodeConverter(NodeOperationBuilder *builder)
void add_node_input_preview(NodeInput *input)
void add_input_value(NodeOperationInput *input, float value)
NodeOperationInput * add_output_proxy(NodeOutput *output, bool use_conversion)
void add_operation(NodeOperation *operation)
void add_output_value(NodeOutput *output, float value)
void add_output_vector(NodeOutput *output, const float value[3])
void add_output_color(NodeOutput *output, const float value[4])
NodeOperation * set_invalid_output(NodeOutput *output)
void map_input_socket(NodeInput *node_socket, NodeOperationInput *operation_socket)
void add_input_vector(NodeOperationInput *input, const float value[3])
ViewerOperation * active_viewer() const
NodeInput are sockets that can receive data/input.
Definition: COM_Node.h:190
NodeOperation contains calculation logic.
NodeOutput are sockets that can send data/input.
Definition: COM_Node.h:238
StackEntry * from
ccl_global KernelShaderEvalInput ccl_global float * output
ccl_global KernelShaderEvalInput * input