Blender
V2.93
source
blender
compositor
nodes
COM_HueSaturationValueCorrectNode.cc
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or
3
* modify it under the terms of the GNU General Public License
4
* as published by the Free Software Foundation; either version 2
5
* of the License, or (at your option) any later version.
6
*
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
* GNU General Public License for more details.
11
*
12
* You should have received a copy of the GNU General Public License
13
* along with this program; if not, write to the Free Software Foundation,
14
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15
*
16
* Copyright 2011, Blender Foundation.
17
*/
18
19
#include "
COM_HueSaturationValueCorrectNode.h
"
20
21
#include "
COM_ConvertOperation.h
"
22
#include "
COM_ExecutionSystem.h
"
23
#include "
COM_HueSaturationValueCorrectOperation.h
"
24
#include "
COM_MixOperation.h
"
25
#include "
COM_SetColorOperation.h
"
26
#include "
COM_SetValueOperation.h
"
27
#include "
DNA_node_types.h
"
28
29
namespace
blender::compositor
{
30
31
HueSaturationValueCorrectNode::HueSaturationValueCorrectNode
(
bNode
*editorNode) :
Node
(editorNode)
32
{
33
/* pass */
34
}
35
36
void
HueSaturationValueCorrectNode::convertToOperations
(
37
NodeConverter
&converter,
const
CompositorContext
&
/*context*/
)
const
38
{
39
NodeInput
*valueSocket = this->
getInputSocket
(0);
40
NodeInput
*colorSocket = this->
getInputSocket
(1);
41
NodeOutput
*outputSocket = this->
getOutputSocket
(0);
42
bNode
*editorsnode =
getbNode
();
43
CurveMapping
*storage = (
CurveMapping
*)editorsnode->
storage
;
44
45
ConvertRGBToHSVOperation
*rgbToHSV =
new
ConvertRGBToHSVOperation
();
46
converter.
addOperation
(rgbToHSV);
47
48
ConvertHSVToRGBOperation
*hsvToRGB =
new
ConvertHSVToRGBOperation
();
49
converter.
addOperation
(hsvToRGB);
50
51
HueSaturationValueCorrectOperation
*changeHSV =
new
HueSaturationValueCorrectOperation
();
52
changeHSV->
setCurveMapping
(storage);
53
converter.
addOperation
(changeHSV);
54
55
MixBlendOperation
*
blend
=
new
MixBlendOperation
();
56
blend
->setResolutionInputSocketIndex(1);
57
converter.
addOperation
(
blend
);
58
59
converter.
mapInputSocket
(colorSocket, rgbToHSV->getInputSocket(0));
60
converter.
addLink
(rgbToHSV->getOutputSocket(), changeHSV->
getInputSocket
(0));
61
converter.
addLink
(changeHSV->
getOutputSocket
(), hsvToRGB->
getInputSocket
(0));
62
converter.
addLink
(hsvToRGB->
getOutputSocket
(),
blend
->getInputSocket(2));
63
converter.
mapInputSocket
(colorSocket,
blend
->getInputSocket(1));
64
converter.
mapInputSocket
(valueSocket,
blend
->getInputSocket(0));
65
converter.
mapOutputSocket
(outputSocket,
blend
->getOutputSocket());
66
}
67
68
}
// namespace blender::compositor
COM_ConvertOperation.h
COM_ExecutionSystem.h
COM_HueSaturationValueCorrectNode.h
COM_HueSaturationValueCorrectOperation.h
COM_MixOperation.h
COM_SetColorOperation.h
COM_SetValueOperation.h
DNA_node_types.h
blender::compositor::CompositorContext
Overall context of the compositor.
Definition:
COM_CompositorContext.h:37
blender::compositor::ConvertHSVToRGBOperation
Definition:
COM_ConvertOperation.h:134
blender::compositor::ConvertRGBToHSVOperation
Definition:
COM_ConvertOperation.h:127
blender::compositor::CurveBaseOperation::setCurveMapping
void setCurveMapping(CurveMapping *mapping)
Definition:
COM_CurveBaseOperation.cc:50
blender::compositor::HueSaturationValueCorrectNode::HueSaturationValueCorrectNode
HueSaturationValueCorrectNode(bNode *editorNode)
Definition:
COM_HueSaturationValueCorrectNode.cc:31
blender::compositor::HueSaturationValueCorrectNode::convertToOperations
void convertToOperations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
Definition:
COM_HueSaturationValueCorrectNode.cc:36
blender::compositor::HueSaturationValueCorrectOperation
Definition:
COM_HueSaturationValueCorrectOperation.h:26
blender::compositor::MixBlendOperation
Definition:
COM_MixOperation.h:91
blender::compositor::NodeConverter
Definition:
COM_NodeConverter.h:43
blender::compositor::NodeConverter::mapInputSocket
void mapInputSocket(NodeInput *node_socket, NodeOperationInput *operation_socket)
Definition:
COM_NodeConverter.cc:43
blender::compositor::NodeConverter::addOperation
void addOperation(NodeOperation *operation)
Definition:
COM_NodeConverter.cc:38
blender::compositor::NodeConverter::mapOutputSocket
void mapOutputSocket(NodeOutput *node_socket, NodeOperationOutput *operation_socket)
Definition:
COM_NodeConverter.cc:48
blender::compositor::NodeConverter::addLink
void addLink(NodeOperationOutput *from, NodeOperationInput *to)
Definition:
COM_NodeConverter.cc:53
blender::compositor::NodeInput
NodeInput are sockets that can receive data/input.
Definition:
COM_Node.h:210
blender::compositor::NodeOperation::getInputSocket
NodeOperationInput * getInputSocket(unsigned int index)
Definition:
COM_NodeOperation.cc:47
blender::compositor::NodeOperation::getOutputSocket
NodeOperationOutput * getOutputSocket(unsigned int index=0)
Definition:
COM_NodeOperation.cc:42
blender::compositor::NodeOutput
NodeOutput are sockets that can send data/input.
Definition:
COM_Node.h:258
blender::compositor::Node
Definition:
COM_Node.h:42
blender::compositor::Node::getOutputSocket
NodeOutput * getOutputSocket(const unsigned int index=0) const
Definition:
COM_Node.cc:108
blender::compositor::Node::getbNode
bNode * getbNode() const
get the reference to the SDNA bNode struct
Definition:
COM_Node.h:82
blender::compositor::Node::getInputSocket
NodeInput * getInputSocket(const unsigned int index) const
Definition:
COM_Node.cc:113
blender::compositor
Definition:
COM_defines.h:21
CurveMapping
Definition:
DNA_color_types.h:75
bNode
Definition:
DNA_node_types.h:212
bNode::storage
void * storage
Definition:
DNA_node_types.h:244
blend
static int blend(const Tex *tex, const float texvec[3], TexResult *texres)
Definition:
texture_procedural.c:108
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1