Cleanup: comment line length (editors)
[blender.git] / source / blender / compositor / nodes / COM_ColorMatteNode.cpp
1 /*
2  * Copyright 2011, Blender Foundation.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * Contributor:
19  *      Dalai Felinto
20  */
21
22 #include "COM_ColorMatteNode.h"
23 #include "BKE_node.h"
24 #include "COM_ColorMatteOperation.h"
25 #include "COM_ConvertOperation.h"
26 #include "COM_SetAlphaOperation.h"
27
28 ColorMatteNode::ColorMatteNode(bNode *editorNode) : Node(editorNode)
29 {
30         /* pass */
31 }
32
33 void ColorMatteNode::convertToOperations(NodeConverter &converter, const CompositorContext &/*context*/) const
34 {
35         bNode *editorsnode = getbNode();
36
37         NodeInput *inputSocketImage = this->getInputSocket(0);
38         NodeInput *inputSocketKey = this->getInputSocket(1);
39         NodeOutput *outputSocketImage = this->getOutputSocket(0);
40         NodeOutput *outputSocketMatte = this->getOutputSocket(1);
41
42         ConvertRGBToHSVOperation *operationRGBToHSV_Image = new ConvertRGBToHSVOperation();
43         ConvertRGBToHSVOperation *operationRGBToHSV_Key = new ConvertRGBToHSVOperation();
44         converter.addOperation(operationRGBToHSV_Image);
45         converter.addOperation(operationRGBToHSV_Key);
46
47         ColorMatteOperation *operation = new ColorMatteOperation();
48         operation->setSettings((NodeChroma *)editorsnode->storage);
49         converter.addOperation(operation);
50
51         SetAlphaOperation *operationAlpha = new SetAlphaOperation();
52         converter.addOperation(operationAlpha);
53
54         converter.mapInputSocket(inputSocketImage, operationRGBToHSV_Image->getInputSocket(0));
55         converter.mapInputSocket(inputSocketKey, operationRGBToHSV_Key->getInputSocket(0));
56         converter.addLink(operationRGBToHSV_Image->getOutputSocket(), operation->getInputSocket(0));
57         converter.addLink(operationRGBToHSV_Key->getOutputSocket(), operation->getInputSocket(1));
58         converter.mapOutputSocket(outputSocketMatte, operation->getOutputSocket(0));
59
60         converter.mapInputSocket(inputSocketImage, operationAlpha->getInputSocket(0));
61         converter.addLink(operation->getOutputSocket(), operationAlpha->getInputSocket(1));
62         converter.mapOutputSocket(outputSocketImage, operationAlpha->getOutputSocket());
63
64         converter.addPreview(operationAlpha->getOutputSocket());
65 }