Blender
V4.3
source
blender
compositor
nodes
COM_CornerPinNode.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2014 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#include "
COM_CornerPinNode.h
"
6
7
#include "
COM_PlaneCornerPinOperation.h
"
8
#include "
COM_SMAAOperation.h
"
9
#include "
COM_SetAlphaMultiplyOperation.h
"
10
11
namespace
blender::compositor
{
12
13
CornerPinNode::CornerPinNode
(
bNode
*editor_node) :
Node
(editor_node) {}
14
15
void
CornerPinNode::convert_to_operations
(
NodeConverter
&converter,
16
const
CompositorContext
&
/*context*/
)
const
17
{
18
PlaneCornerPinMaskOperation
*plane_mask_operation =
new
PlaneCornerPinMaskOperation
();
19
converter.
add_operation
(plane_mask_operation);
20
21
SMAAOperation
*smaa_operation =
new
SMAAOperation
();
22
converter.
add_operation
(smaa_operation);
23
24
converter.
add_link
(plane_mask_operation->
get_output_socket
(),
25
smaa_operation->
get_input_socket
(0));
26
27
converter.
map_output_socket
(this->
get_output_socket
(1), smaa_operation->
get_output_socket
());
28
29
PlaneCornerPinWarpImageOperation
*warp_image_operation =
new
PlaneCornerPinWarpImageOperation
();
30
converter.
add_operation
(warp_image_operation);
31
converter.
map_input_socket
(this->
get_input_socket
(0), warp_image_operation->
get_input_socket
(0));
32
33
/* NOTE: socket order differs between UI node and operations:
34
* bNode uses intuitive order following top-down layout:
35
* upper-left, upper-right, lower-left, lower-right
36
* Operations use same order as the tracking blenkernel functions expect:
37
* lower-left, lower-right, upper-right, upper-left
38
*/
39
const
int
node_corner_index[4] = {3, 4, 2, 1};
40
for
(
int
i = 0; i < 4; i++) {
41
NodeInput
*corner_input =
get_input_socket
(node_corner_index[i]);
42
converter.
map_input_socket
(corner_input, warp_image_operation->
get_input_socket
(i + 1));
43
converter.
map_input_socket
(corner_input, plane_mask_operation->
get_input_socket
(i));
44
}
45
46
SetAlphaMultiplyOperation
*set_alpha_operation =
new
SetAlphaMultiplyOperation
();
47
converter.
add_operation
(set_alpha_operation);
48
converter.
add_link
(warp_image_operation->
get_output_socket
(),
49
set_alpha_operation->
get_input_socket
(0));
50
converter.
add_link
(smaa_operation->
get_output_socket
(),
51
set_alpha_operation->
get_input_socket
(1));
52
converter.
map_output_socket
(this->
get_output_socket
(0),
53
set_alpha_operation->
get_output_socket
());
54
}
55
56
}
// namespace blender::compositor
COM_CornerPinNode.h
COM_PlaneCornerPinOperation.h
COM_SMAAOperation.h
COM_SetAlphaMultiplyOperation.h
blender::compositor::CompositorContext
Overall context of the compositor.
Definition
COM_CompositorContext.h:27
blender::compositor::CornerPinNode::convert_to_operations
void convert_to_operations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
Definition
COM_CornerPinNode.cc:15
blender::compositor::CornerPinNode::CornerPinNode
CornerPinNode(bNode *editor_node)
Definition
COM_CornerPinNode.cc:13
blender::compositor::NodeConverter
Definition
COM_NodeConverter.h:29
blender::compositor::NodeConverter::add_link
void add_link(NodeOperationOutput *from, NodeOperationInput *to)
Definition
COM_NodeConverter.cc:36
blender::compositor::NodeConverter::map_output_socket
void map_output_socket(NodeOutput *node_socket, NodeOperationOutput *operation_socket)
Definition
COM_NodeConverter.cc:30
blender::compositor::NodeConverter::add_operation
void add_operation(NodeOperation *operation)
Definition
COM_NodeConverter.cc:20
blender::compositor::NodeConverter::map_input_socket
void map_input_socket(NodeInput *node_socket, NodeOperationInput *operation_socket)
Definition
COM_NodeConverter.cc:25
blender::compositor::NodeInput
NodeInput are sockets that can receive data/input.
Definition
COM_Node.h:191
blender::compositor::NodeOperation::get_output_socket
NodeOperationOutput * get_output_socket(unsigned int index=0)
Definition
COM_NodeOperation.cc:87
blender::compositor::NodeOperation::get_input_socket
NodeOperationInput * get_input_socket(unsigned int index)
Definition
COM_NodeOperation.cc:92
blender::compositor::Node
Definition
COM_Node.h:25
blender::compositor::Node::get_output_socket
NodeOutput * get_output_socket(unsigned int index=0) const
Definition
COM_Node.cc:85
blender::compositor::Node::get_input_socket
NodeInput * get_input_socket(unsigned int index) const
Definition
COM_Node.cc:90
blender::compositor::PlaneCornerPinMaskOperation
Definition
COM_PlaneCornerPinOperation.h:11
blender::compositor::PlaneCornerPinWarpImageOperation
Definition
COM_PlaneCornerPinOperation.h:22
blender::compositor::SMAAOperation
Definition
COM_SMAAOperation.h:11
blender::compositor::SetAlphaMultiplyOperation
Definition
COM_SetAlphaMultiplyOperation.h:16
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
bNode
Definition
DNA_node_types.h:357
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0