diff options
Diffstat (limited to 'source/blender/compositor/nodes/COM_CornerPinNode.cpp')
-rw-r--r-- | source/blender/compositor/nodes/COM_CornerPinNode.cpp | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/source/blender/compositor/nodes/COM_CornerPinNode.cpp b/source/blender/compositor/nodes/COM_CornerPinNode.cpp index 1f4f485f90a..ea9f22f2840 100644 --- a/source/blender/compositor/nodes/COM_CornerPinNode.cpp +++ b/source/blender/compositor/nodes/COM_CornerPinNode.cpp @@ -28,9 +28,9 @@ CornerPinNode::CornerPinNode(bNode *editorNode) : Node(editorNode) { } -void CornerPinNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context) +void CornerPinNode::convertToOperations(NodeConverter &converter, const CompositorContext &context) const { - InputSocket *input_image = this->getInputSocket(0); + NodeInput *input_image = this->getInputSocket(0); /* note: socket order differs between UI node and operations: * bNode uses intuitive order following top-down layout: * upper-left, upper-right, lower-left, lower-right @@ -39,29 +39,20 @@ void CornerPinNode::convertToOperations(ExecutionSystem *graph, CompositorContex */ const int node_corner_index[4] = { 3, 4, 2, 1 }; - OutputSocket *output_warped_image = this->getOutputSocket(0); - OutputSocket *output_plane = this->getOutputSocket(1); + NodeOutput *output_warped_image = this->getOutputSocket(0); + NodeOutput *output_plane = this->getOutputSocket(1); PlaneCornerPinWarpImageOperation *warp_image_operation = new PlaneCornerPinWarpImageOperation(); + converter.addOperation(warp_image_operation); + PlaneCornerPinMaskOperation *plane_mask_operation = new PlaneCornerPinMaskOperation(); + converter.addOperation(plane_mask_operation); - input_image->relinkConnections(warp_image_operation->getInputSocket(0), 0, graph); + converter.mapInputSocket(input_image, warp_image_operation->getInputSocket(0)); for (int i = 0; i < 4; ++i) { - int node_index = node_corner_index[i]; - getInputSocket(node_index)->relinkConnections(warp_image_operation->getInputSocket(i + 1), - node_index, graph); + NodeInput *corner_input = getInputSocket(node_corner_index[i]); + converter.mapInputSocket(corner_input, warp_image_operation->getInputSocket(i + 1)); + converter.mapInputSocket(corner_input, plane_mask_operation->getInputSocket(i)); } - output_warped_image->relinkConnections(warp_image_operation->getOutputSocket()); - - graph->addOperation(warp_image_operation); - - PlaneCornerPinMaskOperation *plane_mask_operation = new PlaneCornerPinMaskOperation(); - - /* connect mask op inputs to the same sockets as the warp image op */ - for (int i = 0; i < 4; ++i) - addLink(graph, - warp_image_operation->getInputSocket(i + 1)->getConnection()->getFromSocket(), - plane_mask_operation->getInputSocket(i)); - output_plane->relinkConnections(plane_mask_operation->getOutputSocket()); - - graph->addOperation(plane_mask_operation); + converter.mapOutputSocket(output_warped_image, warp_image_operation->getOutputSocket()); + converter.mapOutputSocket(output_plane, plane_mask_operation->getOutputSocket()); } |