Blender
V3.3
source
blender
compositor
nodes
COM_HueSaturationValueCorrectNode.cc
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2011 Blender Foundation. */
3
4
#include "
COM_HueSaturationValueCorrectNode.h
"
5
6
#include "
COM_ConvertOperation.h
"
7
#include "
COM_HueSaturationValueCorrectOperation.h
"
8
#include "
COM_MixOperation.h
"
9
10
namespace
blender::compositor
{
11
12
HueSaturationValueCorrectNode::HueSaturationValueCorrectNode
(
bNode
*editor_node)
13
:
Node
(editor_node)
14
{
15
/* pass */
16
}
17
18
void
HueSaturationValueCorrectNode::convert_to_operations
(
19
NodeConverter
&converter,
const
CompositorContext
&
/*context*/
)
const
20
{
21
NodeInput
*value_socket = this->
get_input_socket
(0);
22
NodeInput
*
color_socket
= this->
get_input_socket
(1);
23
NodeOutput
*output_socket = this->
get_output_socket
(0);
24
bNode
*editorsnode =
get_bnode
();
25
CurveMapping
*storage = (
CurveMapping
*)editorsnode->
storage
;
26
27
ConvertRGBToHSVOperation
*rgbToHSV =
new
ConvertRGBToHSVOperation
();
28
converter.
add_operation
(rgbToHSV);
29
30
ConvertHSVToRGBOperation
*hsvToRGB =
new
ConvertHSVToRGBOperation
();
31
converter.
add_operation
(hsvToRGB);
32
33
HueSaturationValueCorrectOperation
*changeHSV =
new
HueSaturationValueCorrectOperation
();
34
changeHSV->
set_curve_mapping
(storage);
35
converter.
add_operation
(changeHSV);
36
37
MixBlendOperation
*
blend
=
new
MixBlendOperation
();
38
blend
->set_canvas_input_index(1);
39
converter.
add_operation
(
blend
);
40
41
converter.
map_input_socket
(
color_socket
, rgbToHSV->get_input_socket(0));
42
converter.
add_link
(rgbToHSV->get_output_socket(), changeHSV->
get_input_socket
(0));
43
converter.
add_link
(changeHSV->
get_output_socket
(), hsvToRGB->
get_input_socket
(0));
44
converter.
add_link
(hsvToRGB->
get_output_socket
(),
blend
->get_input_socket(2));
45
converter.
map_input_socket
(
color_socket
,
blend
->get_input_socket(1));
46
converter.
map_input_socket
(value_socket,
blend
->get_input_socket(0));
47
converter.
map_output_socket
(output_socket,
blend
->get_output_socket());
48
}
49
50
}
// namespace blender::compositor
COM_ConvertOperation.h
COM_HueSaturationValueCorrectNode.h
COM_HueSaturationValueCorrectOperation.h
COM_MixOperation.h
blender::compositor::CompositorContext
Overall context of the compositor.
Definition:
COM_CompositorContext.h:19
blender::compositor::ConvertHSVToRGBOperation
Definition:
COM_ConvertOperation.h:165
blender::compositor::ConvertRGBToHSVOperation
Definition:
COM_ConvertOperation.h:155
blender::compositor::CurveBaseOperation::set_curve_mapping
void set_curve_mapping(CurveMapping *mapping)
Definition:
COM_CurveBaseOperation.cc:36
blender::compositor::HueSaturationValueCorrectNode::HueSaturationValueCorrectNode
HueSaturationValueCorrectNode(bNode *editor_node)
Definition:
COM_HueSaturationValueCorrectNode.cc:12
blender::compositor::HueSaturationValueCorrectNode::convert_to_operations
void convert_to_operations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
Definition:
COM_HueSaturationValueCorrectNode.cc:18
blender::compositor::HueSaturationValueCorrectOperation
Definition:
COM_HueSaturationValueCorrectOperation.h:11
blender::compositor::MixBlendOperation
Definition:
COM_MixOperation.h:106
blender::compositor::NodeConverter
Definition:
COM_NodeConverter.h:28
blender::compositor::NodeConverter::add_link
void add_link(NodeOperationOutput *from, NodeOperationInput *to)
Definition:
COM_NodeConverter.cc:37
blender::compositor::NodeConverter::map_output_socket
void map_output_socket(NodeOutput *node_socket, NodeOperationOutput *operation_socket)
Definition:
COM_NodeConverter.cc:31
blender::compositor::NodeConverter::add_operation
void add_operation(NodeOperation *operation)
Definition:
COM_NodeConverter.cc:21
blender::compositor::NodeConverter::map_input_socket
void map_input_socket(NodeInput *node_socket, NodeOperationInput *operation_socket)
Definition:
COM_NodeConverter.cc:26
blender::compositor::NodeInput
NodeInput are sockets that can receive data/input.
Definition:
COM_Node.h:190
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::NodeOutput
NodeOutput are sockets that can send data/input.
Definition:
COM_Node.h:238
blender::compositor::Node
Definition:
COM_Node.h:24
blender::compositor::Node::get_output_socket
NodeOutput * get_output_socket(unsigned int index=0) const
Definition:
COM_Node.cc:84
blender::compositor::Node::get_bnode
bNode * get_bnode() const
get the reference to the SDNA bNode struct
Definition:
COM_Node.h:64
blender::compositor::Node::get_input_socket
NodeInput * get_input_socket(unsigned int index) const
Definition:
COM_Node.cc:89
color_socket
bNodeSocketValueRGBA * color_socket
Definition:
eevee_shaders.c:156
blender::compositor
Definition:
COM_defines.h:10
CurveMapping
Definition:
DNA_color_types.h:59
bNode
Definition:
DNA_node_types.h:252
bNode::storage
void * storage
Definition:
DNA_node_types.h:283
blend
static int blend(const Tex *tex, const float texvec[3], TexResult *texres)
Definition:
texture_procedural.c:64
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1