Blender
V4.3
source
blender
compositor
nodes
COM_MathNode.cc
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#include "
COM_MathNode.h
"
6
#include "
COM_MathBaseOperation.h
"
7
8
namespace
blender::compositor
{
9
10
void
MathNode::convert_to_operations
(
NodeConverter
&converter,
11
const
CompositorContext
&
/*context*/
)
const
12
{
13
MathBaseOperation
*operation =
nullptr
;
14
15
switch
(this->
get_bnode
()->custom1) {
16
case
NODE_MATH_ADD
:
17
operation =
new
MathAddOperation
();
18
break
;
19
case
NODE_MATH_SUBTRACT
:
20
operation =
new
MathSubtractOperation
();
21
break
;
22
case
NODE_MATH_MULTIPLY
:
23
operation =
new
MathMultiplyOperation
();
24
break
;
25
case
NODE_MATH_DIVIDE
:
26
operation =
new
MathDivideOperation
();
27
break
;
28
case
NODE_MATH_SINE
:
29
operation =
new
MathSineOperation
();
30
break
;
31
case
NODE_MATH_COSINE
:
32
operation =
new
MathCosineOperation
();
33
break
;
34
case
NODE_MATH_TANGENT
:
35
operation =
new
MathTangentOperation
();
36
break
;
37
case
NODE_MATH_ARCSINE
:
38
operation =
new
MathArcSineOperation
();
39
break
;
40
case
NODE_MATH_ARCCOSINE
:
41
operation =
new
MathArcCosineOperation
();
42
break
;
43
case
NODE_MATH_ARCTANGENT
:
44
operation =
new
MathArcTangentOperation
();
45
break
;
46
case
NODE_MATH_SINH
:
47
operation =
new
MathHyperbolicSineOperation
();
48
break
;
49
case
NODE_MATH_COSH
:
50
operation =
new
MathHyperbolicCosineOperation
();
51
break
;
52
case
NODE_MATH_TANH
:
53
operation =
new
MathHyperbolicTangentOperation
();
54
break
;
55
case
NODE_MATH_POWER
:
56
operation =
new
MathPowerOperation
();
57
break
;
58
case
NODE_MATH_LOGARITHM
:
59
operation =
new
MathLogarithmOperation
();
60
break
;
61
case
NODE_MATH_MINIMUM
:
62
operation =
new
MathMinimumOperation
();
63
break
;
64
case
NODE_MATH_MAXIMUM
:
65
operation =
new
MathMaximumOperation
();
66
break
;
67
case
NODE_MATH_ROUND
:
68
operation =
new
MathRoundOperation
();
69
break
;
70
case
NODE_MATH_LESS_THAN
:
71
operation =
new
MathLessThanOperation
();
72
break
;
73
case
NODE_MATH_GREATER_THAN
:
74
operation =
new
MathGreaterThanOperation
();
75
break
;
76
case
NODE_MATH_MODULO
:
77
operation =
new
MathModuloOperation
();
78
break
;
79
case
NODE_MATH_FLOORED_MODULO
:
80
operation =
new
MathFlooredModuloOperation
();
81
break
;
82
case
NODE_MATH_ABSOLUTE
:
83
operation =
new
MathAbsoluteOperation
();
84
break
;
85
case
NODE_MATH_RADIANS
:
86
operation =
new
MathRadiansOperation
();
87
break
;
88
case
NODE_MATH_DEGREES
:
89
operation =
new
MathDegreesOperation
();
90
break
;
91
case
NODE_MATH_ARCTAN2
:
92
operation =
new
MathArcTan2Operation
();
93
break
;
94
case
NODE_MATH_FLOOR
:
95
operation =
new
MathFloorOperation
();
96
break
;
97
case
NODE_MATH_CEIL
:
98
operation =
new
MathCeilOperation
();
99
break
;
100
case
NODE_MATH_FRACTION
:
101
operation =
new
MathFractOperation
();
102
break
;
103
case
NODE_MATH_SQRT
:
104
operation =
new
MathSqrtOperation
();
105
break
;
106
case
NODE_MATH_INV_SQRT
:
107
operation =
new
MathInverseSqrtOperation
();
108
break
;
109
case
NODE_MATH_SIGN
:
110
operation =
new
MathSignOperation
();
111
break
;
112
case
NODE_MATH_EXPONENT
:
113
operation =
new
MathExponentOperation
();
114
break
;
115
case
NODE_MATH_TRUNC
:
116
operation =
new
MathTruncOperation
();
117
break
;
118
case
NODE_MATH_SNAP
:
119
operation =
new
MathSnapOperation
();
120
break
;
121
case
NODE_MATH_WRAP
:
122
operation =
new
MathWrapOperation
();
123
break
;
124
case
NODE_MATH_PINGPONG
:
125
operation =
new
MathPingpongOperation
();
126
break
;
127
case
NODE_MATH_COMPARE
:
128
operation =
new
MathCompareOperation
();
129
break
;
130
case
NODE_MATH_MULTIPLY_ADD
:
131
operation =
new
MathMultiplyAddOperation
();
132
break
;
133
case
NODE_MATH_SMOOTH_MIN
:
134
operation =
new
MathSmoothMinOperation
();
135
break
;
136
case
NODE_MATH_SMOOTH_MAX
:
137
operation =
new
MathSmoothMaxOperation
();
138
break
;
139
}
140
141
if
(operation) {
142
bool
use_clamp =
get_bnode
()->
custom2
;
143
operation->
set_use_clamp
(use_clamp);
144
converter.
add_operation
(operation);
145
146
converter.
map_input_socket
(
get_input_socket
(0), operation->
get_input_socket
(0));
147
converter.
map_input_socket
(
get_input_socket
(1), operation->
get_input_socket
(1));
148
converter.
map_input_socket
(
get_input_socket
(2), operation->
get_input_socket
(2));
149
converter.
map_output_socket
(
get_output_socket
(0), operation->
get_output_socket
());
150
}
151
}
152
153
}
// namespace blender::compositor
COM_MathBaseOperation.h
COM_MathNode.h
NODE_MATH_SINH
@ NODE_MATH_SINH
Definition
DNA_node_types.h:2485
NODE_MATH_SMOOTH_MIN
@ NODE_MATH_SMOOTH_MIN
Definition
DNA_node_types.h:2494
NODE_MATH_TRUNC
@ NODE_MATH_TRUNC
Definition
DNA_node_types.h:2488
NODE_MATH_COSH
@ NODE_MATH_COSH
Definition
DNA_node_types.h:2486
NODE_MATH_SIGN
@ NODE_MATH_SIGN
Definition
DNA_node_types.h:2481
NODE_MATH_DEGREES
@ NODE_MATH_DEGREES
Definition
DNA_node_types.h:2484
NODE_MATH_MODULO
@ NODE_MATH_MODULO
Definition
DNA_node_types.h:2473
NODE_MATH_ABSOLUTE
@ NODE_MATH_ABSOLUTE
Definition
DNA_node_types.h:2474
NODE_MATH_DIVIDE
@ NODE_MATH_DIVIDE
Definition
DNA_node_types.h:2459
NODE_MATH_SINE
@ NODE_MATH_SINE
Definition
DNA_node_types.h:2460
NODE_MATH_FLOORED_MODULO
@ NODE_MATH_FLOORED_MODULO
Definition
DNA_node_types.h:2496
NODE_MATH_ARCTAN2
@ NODE_MATH_ARCTAN2
Definition
DNA_node_types.h:2475
NODE_MATH_ARCCOSINE
@ NODE_MATH_ARCCOSINE
Definition
DNA_node_types.h:2464
NODE_MATH_MULTIPLY_ADD
@ NODE_MATH_MULTIPLY_ADD
Definition
DNA_node_types.h:2492
NODE_MATH_POWER
@ NODE_MATH_POWER
Definition
DNA_node_types.h:2466
NODE_MATH_WRAP
@ NODE_MATH_WRAP
Definition
DNA_node_types.h:2490
NODE_MATH_ARCTANGENT
@ NODE_MATH_ARCTANGENT
Definition
DNA_node_types.h:2465
NODE_MATH_MINIMUM
@ NODE_MATH_MINIMUM
Definition
DNA_node_types.h:2468
NODE_MATH_SQRT
@ NODE_MATH_SQRT
Definition
DNA_node_types.h:2479
NODE_MATH_CEIL
@ NODE_MATH_CEIL
Definition
DNA_node_types.h:2477
NODE_MATH_TANH
@ NODE_MATH_TANH
Definition
DNA_node_types.h:2487
NODE_MATH_GREATER_THAN
@ NODE_MATH_GREATER_THAN
Definition
DNA_node_types.h:2472
NODE_MATH_ADD
@ NODE_MATH_ADD
Definition
DNA_node_types.h:2456
NODE_MATH_FRACTION
@ NODE_MATH_FRACTION
Definition
DNA_node_types.h:2478
NODE_MATH_EXPONENT
@ NODE_MATH_EXPONENT
Definition
DNA_node_types.h:2482
NODE_MATH_LESS_THAN
@ NODE_MATH_LESS_THAN
Definition
DNA_node_types.h:2471
NODE_MATH_ARCSINE
@ NODE_MATH_ARCSINE
Definition
DNA_node_types.h:2463
NODE_MATH_MAXIMUM
@ NODE_MATH_MAXIMUM
Definition
DNA_node_types.h:2469
NODE_MATH_LOGARITHM
@ NODE_MATH_LOGARITHM
Definition
DNA_node_types.h:2467
NODE_MATH_COMPARE
@ NODE_MATH_COMPARE
Definition
DNA_node_types.h:2491
NODE_MATH_INV_SQRT
@ NODE_MATH_INV_SQRT
Definition
DNA_node_types.h:2480
NODE_MATH_MULTIPLY
@ NODE_MATH_MULTIPLY
Definition
DNA_node_types.h:2458
NODE_MATH_PINGPONG
@ NODE_MATH_PINGPONG
Definition
DNA_node_types.h:2493
NODE_MATH_ROUND
@ NODE_MATH_ROUND
Definition
DNA_node_types.h:2470
NODE_MATH_FLOOR
@ NODE_MATH_FLOOR
Definition
DNA_node_types.h:2476
NODE_MATH_SUBTRACT
@ NODE_MATH_SUBTRACT
Definition
DNA_node_types.h:2457
NODE_MATH_COSINE
@ NODE_MATH_COSINE
Definition
DNA_node_types.h:2461
NODE_MATH_SNAP
@ NODE_MATH_SNAP
Definition
DNA_node_types.h:2489
NODE_MATH_TANGENT
@ NODE_MATH_TANGENT
Definition
DNA_node_types.h:2462
NODE_MATH_SMOOTH_MAX
@ NODE_MATH_SMOOTH_MAX
Definition
DNA_node_types.h:2495
NODE_MATH_RADIANS
@ NODE_MATH_RADIANS
Definition
DNA_node_types.h:2483
blender::compositor::CompositorContext
Overall context of the compositor.
Definition
COM_CompositorContext.h:27
blender::compositor::MathAbsoluteOperation
Definition
COM_MathBaseOperation.h:146
blender::compositor::MathAddOperation
Definition
COM_MathBaseOperation.h:68
blender::compositor::MathArcCosineOperation
Definition
COM_MathBaseOperation.h:105
blender::compositor::MathArcSineOperation
Definition
COM_MathBaseOperation.h:101
blender::compositor::MathArcTan2Operation
Definition
COM_MathBaseOperation.h:161
blender::compositor::MathArcTangentOperation
Definition
COM_MathBaseOperation.h:109
blender::compositor::MathBaseOperation
Definition
COM_MathBaseOperation.h:15
blender::compositor::MathBaseOperation::set_use_clamp
void set_use_clamp(bool value)
Definition
COM_MathBaseOperation.h:43
blender::compositor::MathCeilOperation
Definition
COM_MathBaseOperation.h:171
blender::compositor::MathCompareOperation
Definition
COM_MathBaseOperation.h:221
blender::compositor::MathCosineOperation
Definition
COM_MathBaseOperation.h:79
blender::compositor::MathDegreesOperation
Definition
COM_MathBaseOperation.h:156
blender::compositor::MathDivideOperation
Definition
COM_MathBaseOperation.h:71
blender::compositor::MathExponentOperation
Definition
COM_MathBaseOperation.h:196
blender::compositor::MathFloorOperation
Definition
COM_MathBaseOperation.h:166
blender::compositor::MathFlooredModuloOperation
Definition
COM_MathBaseOperation.h:141
blender::compositor::MathFractOperation
Definition
COM_MathBaseOperation.h:176
blender::compositor::MathGreaterThanOperation
Definition
COM_MathBaseOperation.h:134
blender::compositor::MathHyperbolicCosineOperation
Definition
COM_MathBaseOperation.h:92
blender::compositor::MathHyperbolicSineOperation
Definition
COM_MathBaseOperation.h:88
blender::compositor::MathHyperbolicTangentOperation
Definition
COM_MathBaseOperation.h:96
blender::compositor::MathInverseSqrtOperation
Definition
COM_MathBaseOperation.h:186
blender::compositor::MathLessThanOperation
Definition
COM_MathBaseOperation.h:133
blender::compositor::MathLogarithmOperation
Definition
COM_MathBaseOperation.h:117
blender::compositor::MathMaximumOperation
Definition
COM_MathBaseOperation.h:125
blender::compositor::MathMinimumOperation
Definition
COM_MathBaseOperation.h:121
blender::compositor::MathModuloOperation
Definition
COM_MathBaseOperation.h:136
blender::compositor::MathMultiplyAddOperation
Definition
COM_MathBaseOperation.h:226
blender::compositor::MathMultiplyOperation
Definition
COM_MathBaseOperation.h:70
blender::compositor::MathNode::convert_to_operations
void convert_to_operations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
Definition
COM_MathNode.cc:10
blender::compositor::MathPingpongOperation
Definition
COM_MathBaseOperation.h:216
blender::compositor::MathPowerOperation
Definition
COM_MathBaseOperation.h:113
blender::compositor::MathRadiansOperation
Definition
COM_MathBaseOperation.h:151
blender::compositor::MathRoundOperation
Definition
COM_MathBaseOperation.h:129
blender::compositor::MathSignOperation
Definition
COM_MathBaseOperation.h:191
blender::compositor::MathSineOperation
Definition
COM_MathBaseOperation.h:75
blender::compositor::MathSmoothMaxOperation
Definition
COM_MathBaseOperation.h:236
blender::compositor::MathSmoothMinOperation
Definition
COM_MathBaseOperation.h:231
blender::compositor::MathSnapOperation
Definition
COM_MathBaseOperation.h:206
blender::compositor::MathSqrtOperation
Definition
COM_MathBaseOperation.h:181
blender::compositor::MathSubtractOperation
Definition
COM_MathBaseOperation.h:69
blender::compositor::MathTangentOperation
Definition
COM_MathBaseOperation.h:83
blender::compositor::MathTruncOperation
Definition
COM_MathBaseOperation.h:201
blender::compositor::MathWrapOperation
Definition
COM_MathBaseOperation.h:211
blender::compositor::NodeConverter
Definition
COM_NodeConverter.h:29
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::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::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::Node::get_bnode
const bNode * get_bnode() const
get the reference to the SDNA bNode struct
Definition
COM_Node.h:65
blender::compositor
Definition
COM_JumpFloodingAlgorithm.cc:20
bNode::custom2
int16_t custom2
Definition
DNA_node_types.h:400
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0