Blender
V3.3
source
blender
compositor
nodes
COM_MathNode.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_MathNode.h
"
5
#include "
COM_MathBaseOperation.h
"
6
7
namespace
blender::compositor
{
8
9
void
MathNode::convert_to_operations
(
NodeConverter
&converter,
10
const
CompositorContext
&
/*context*/
)
const
11
{
12
MathBaseOperation
*operation =
nullptr
;
13
14
switch
(this->
get_bnode
()->custom1) {
15
case
NODE_MATH_ADD
:
16
operation =
new
MathAddOperation
();
17
break
;
18
case
NODE_MATH_SUBTRACT
:
19
operation =
new
MathSubtractOperation
();
20
break
;
21
case
NODE_MATH_MULTIPLY
:
22
operation =
new
MathMultiplyOperation
();
23
break
;
24
case
NODE_MATH_DIVIDE
:
25
operation =
new
MathDivideOperation
();
26
break
;
27
case
NODE_MATH_SINE
:
28
operation =
new
MathSineOperation
();
29
break
;
30
case
NODE_MATH_COSINE
:
31
operation =
new
MathCosineOperation
();
32
break
;
33
case
NODE_MATH_TANGENT
:
34
operation =
new
MathTangentOperation
();
35
break
;
36
case
NODE_MATH_ARCSINE
:
37
operation =
new
MathArcSineOperation
();
38
break
;
39
case
NODE_MATH_ARCCOSINE
:
40
operation =
new
MathArcCosineOperation
();
41
break
;
42
case
NODE_MATH_ARCTANGENT
:
43
operation =
new
MathArcTangentOperation
();
44
break
;
45
case
NODE_MATH_SINH
:
46
operation =
new
MathHyperbolicSineOperation
();
47
break
;
48
case
NODE_MATH_COSH
:
49
operation =
new
MathHyperbolicCosineOperation
();
50
break
;
51
case
NODE_MATH_TANH
:
52
operation =
new
MathHyperbolicTangentOperation
();
53
break
;
54
case
NODE_MATH_POWER
:
55
operation =
new
MathPowerOperation
();
56
break
;
57
case
NODE_MATH_LOGARITHM
:
58
operation =
new
MathLogarithmOperation
();
59
break
;
60
case
NODE_MATH_MINIMUM
:
61
operation =
new
MathMinimumOperation
();
62
break
;
63
case
NODE_MATH_MAXIMUM
:
64
operation =
new
MathMaximumOperation
();
65
break
;
66
case
NODE_MATH_ROUND
:
67
operation =
new
MathRoundOperation
();
68
break
;
69
case
NODE_MATH_LESS_THAN
:
70
operation =
new
MathLessThanOperation
();
71
break
;
72
case
NODE_MATH_GREATER_THAN
:
73
operation =
new
MathGreaterThanOperation
();
74
break
;
75
case
NODE_MATH_MODULO
:
76
operation =
new
MathModuloOperation
();
77
break
;
78
case
NODE_MATH_ABSOLUTE
:
79
operation =
new
MathAbsoluteOperation
();
80
break
;
81
case
NODE_MATH_RADIANS
:
82
operation =
new
MathRadiansOperation
();
83
break
;
84
case
NODE_MATH_DEGREES
:
85
operation =
new
MathDegreesOperation
();
86
break
;
87
case
NODE_MATH_ARCTAN2
:
88
operation =
new
MathArcTan2Operation
();
89
break
;
90
case
NODE_MATH_FLOOR
:
91
operation =
new
MathFloorOperation
();
92
break
;
93
case
NODE_MATH_CEIL
:
94
operation =
new
MathCeilOperation
();
95
break
;
96
case
NODE_MATH_FRACTION
:
97
operation =
new
MathFractOperation
();
98
break
;
99
case
NODE_MATH_SQRT
:
100
operation =
new
MathSqrtOperation
();
101
break
;
102
case
NODE_MATH_INV_SQRT
:
103
operation =
new
MathInverseSqrtOperation
();
104
break
;
105
case
NODE_MATH_SIGN
:
106
operation =
new
MathSignOperation
();
107
break
;
108
case
NODE_MATH_EXPONENT
:
109
operation =
new
MathExponentOperation
();
110
break
;
111
case
NODE_MATH_TRUNC
:
112
operation =
new
MathTruncOperation
();
113
break
;
114
case
NODE_MATH_SNAP
:
115
operation =
new
MathSnapOperation
();
116
break
;
117
case
NODE_MATH_WRAP
:
118
operation =
new
MathWrapOperation
();
119
break
;
120
case
NODE_MATH_PINGPONG
:
121
operation =
new
MathPingpongOperation
();
122
break
;
123
case
NODE_MATH_COMPARE
:
124
operation =
new
MathCompareOperation
();
125
break
;
126
case
NODE_MATH_MULTIPLY_ADD
:
127
operation =
new
MathMultiplyAddOperation
();
128
break
;
129
case
NODE_MATH_SMOOTH_MIN
:
130
operation =
new
MathSmoothMinOperation
();
131
break
;
132
case
NODE_MATH_SMOOTH_MAX
:
133
operation =
new
MathSmoothMaxOperation
();
134
break
;
135
}
136
137
if
(operation) {
138
bool
use_clamp =
get_bnode
()->
custom2
;
139
operation->
set_use_clamp
(use_clamp);
140
converter.
add_operation
(operation);
141
142
converter.
map_input_socket
(
get_input_socket
(0), operation->
get_input_socket
(0));
143
converter.
map_input_socket
(
get_input_socket
(1), operation->
get_input_socket
(1));
144
converter.
map_input_socket
(
get_input_socket
(2), operation->
get_input_socket
(2));
145
converter.
map_output_socket
(
get_output_socket
(0), operation->
get_output_socket
());
146
}
147
}
148
149
}
// namespace blender::compositor
COM_MathBaseOperation.h
COM_MathNode.h
NODE_MATH_SINH
@ NODE_MATH_SINH
Definition:
DNA_node_types.h:1705
NODE_MATH_SMOOTH_MIN
@ NODE_MATH_SMOOTH_MIN
Definition:
DNA_node_types.h:1714
NODE_MATH_TRUNC
@ NODE_MATH_TRUNC
Definition:
DNA_node_types.h:1708
NODE_MATH_COSH
@ NODE_MATH_COSH
Definition:
DNA_node_types.h:1706
NODE_MATH_SIGN
@ NODE_MATH_SIGN
Definition:
DNA_node_types.h:1701
NODE_MATH_DEGREES
@ NODE_MATH_DEGREES
Definition:
DNA_node_types.h:1704
NODE_MATH_MODULO
@ NODE_MATH_MODULO
Definition:
DNA_node_types.h:1693
NODE_MATH_ABSOLUTE
@ NODE_MATH_ABSOLUTE
Definition:
DNA_node_types.h:1694
NODE_MATH_DIVIDE
@ NODE_MATH_DIVIDE
Definition:
DNA_node_types.h:1679
NODE_MATH_SINE
@ NODE_MATH_SINE
Definition:
DNA_node_types.h:1680
NODE_MATH_ARCTAN2
@ NODE_MATH_ARCTAN2
Definition:
DNA_node_types.h:1695
NODE_MATH_ARCCOSINE
@ NODE_MATH_ARCCOSINE
Definition:
DNA_node_types.h:1684
NODE_MATH_MULTIPLY_ADD
@ NODE_MATH_MULTIPLY_ADD
Definition:
DNA_node_types.h:1712
NODE_MATH_POWER
@ NODE_MATH_POWER
Definition:
DNA_node_types.h:1686
NODE_MATH_WRAP
@ NODE_MATH_WRAP
Definition:
DNA_node_types.h:1710
NODE_MATH_ARCTANGENT
@ NODE_MATH_ARCTANGENT
Definition:
DNA_node_types.h:1685
NODE_MATH_MINIMUM
@ NODE_MATH_MINIMUM
Definition:
DNA_node_types.h:1688
NODE_MATH_SQRT
@ NODE_MATH_SQRT
Definition:
DNA_node_types.h:1699
NODE_MATH_CEIL
@ NODE_MATH_CEIL
Definition:
DNA_node_types.h:1697
NODE_MATH_TANH
@ NODE_MATH_TANH
Definition:
DNA_node_types.h:1707
NODE_MATH_GREATER_THAN
@ NODE_MATH_GREATER_THAN
Definition:
DNA_node_types.h:1692
NODE_MATH_ADD
@ NODE_MATH_ADD
Definition:
DNA_node_types.h:1676
NODE_MATH_FRACTION
@ NODE_MATH_FRACTION
Definition:
DNA_node_types.h:1698
NODE_MATH_EXPONENT
@ NODE_MATH_EXPONENT
Definition:
DNA_node_types.h:1702
NODE_MATH_LESS_THAN
@ NODE_MATH_LESS_THAN
Definition:
DNA_node_types.h:1691
NODE_MATH_ARCSINE
@ NODE_MATH_ARCSINE
Definition:
DNA_node_types.h:1683
NODE_MATH_MAXIMUM
@ NODE_MATH_MAXIMUM
Definition:
DNA_node_types.h:1689
NODE_MATH_LOGARITHM
@ NODE_MATH_LOGARITHM
Definition:
DNA_node_types.h:1687
NODE_MATH_COMPARE
@ NODE_MATH_COMPARE
Definition:
DNA_node_types.h:1711
NODE_MATH_INV_SQRT
@ NODE_MATH_INV_SQRT
Definition:
DNA_node_types.h:1700
NODE_MATH_MULTIPLY
@ NODE_MATH_MULTIPLY
Definition:
DNA_node_types.h:1678
NODE_MATH_PINGPONG
@ NODE_MATH_PINGPONG
Definition:
DNA_node_types.h:1713
NODE_MATH_ROUND
@ NODE_MATH_ROUND
Definition:
DNA_node_types.h:1690
NODE_MATH_FLOOR
@ NODE_MATH_FLOOR
Definition:
DNA_node_types.h:1696
NODE_MATH_SUBTRACT
@ NODE_MATH_SUBTRACT
Definition:
DNA_node_types.h:1677
NODE_MATH_COSINE
@ NODE_MATH_COSINE
Definition:
DNA_node_types.h:1681
NODE_MATH_SNAP
@ NODE_MATH_SNAP
Definition:
DNA_node_types.h:1709
NODE_MATH_TANGENT
@ NODE_MATH_TANGENT
Definition:
DNA_node_types.h:1682
NODE_MATH_SMOOTH_MAX
@ NODE_MATH_SMOOTH_MAX
Definition:
DNA_node_types.h:1715
NODE_MATH_RADIANS
@ NODE_MATH_RADIANS
Definition:
DNA_node_types.h:1703
blender::compositor::CompositorContext
Overall context of the compositor.
Definition:
COM_CompositorContext.h:19
blender::compositor::MathAbsoluteOperation
Definition:
COM_MathBaseOperation.h:226
blender::compositor::MathAddOperation
Definition:
COM_MathBaseOperation.h:90
blender::compositor::MathArcCosineOperation
Definition:
COM_MathBaseOperation.h:160
blender::compositor::MathArcSineOperation
Definition:
COM_MathBaseOperation.h:153
blender::compositor::MathArcTan2Operation
Definition:
COM_MathBaseOperation.h:250
blender::compositor::MathArcTangentOperation
Definition:
COM_MathBaseOperation.h:167
blender::compositor::MathBaseOperation
Definition:
COM_MathBaseOperation.h:14
blender::compositor::MathBaseOperation::set_use_clamp
void set_use_clamp(bool value)
Definition:
COM_MathBaseOperation.h:65
blender::compositor::MathCeilOperation
Definition:
COM_MathBaseOperation.h:266
blender::compositor::MathCompareOperation
Definition:
COM_MathBaseOperation.h:346
blender::compositor::MathCosineOperation
Definition:
COM_MathBaseOperation.h:116
blender::compositor::MathDegreesOperation
Definition:
COM_MathBaseOperation.h:242
blender::compositor::MathDivideOperation
Definition:
COM_MathBaseOperation.h:102
blender::compositor::MathExponentOperation
Definition:
COM_MathBaseOperation.h:306
blender::compositor::MathFloorOperation
Definition:
COM_MathBaseOperation.h:258
blender::compositor::MathFractOperation
Definition:
COM_MathBaseOperation.h:274
blender::compositor::MathGreaterThanOperation
Definition:
COM_MathBaseOperation.h:213
blender::compositor::MathHyperbolicCosineOperation
Definition:
COM_MathBaseOperation.h:138
blender::compositor::MathHyperbolicSineOperation
Definition:
COM_MathBaseOperation.h:131
blender::compositor::MathHyperbolicTangentOperation
Definition:
COM_MathBaseOperation.h:145
blender::compositor::MathInverseSqrtOperation
Definition:
COM_MathBaseOperation.h:290
blender::compositor::MathLessThanOperation
Definition:
COM_MathBaseOperation.h:209
blender::compositor::MathLogarithmOperation
Definition:
COM_MathBaseOperation.h:181
blender::compositor::MathMaximumOperation
Definition:
COM_MathBaseOperation.h:195
blender::compositor::MathMinimumOperation
Definition:
COM_MathBaseOperation.h:188
blender::compositor::MathModuloOperation
Definition:
COM_MathBaseOperation.h:218
blender::compositor::MathMultiplyAddOperation
Definition:
COM_MathBaseOperation.h:354
blender::compositor::MathMultiplyOperation
Definition:
COM_MathBaseOperation.h:98
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:9
blender::compositor::MathPingpongOperation
Definition:
COM_MathBaseOperation.h:338
blender::compositor::MathPowerOperation
Definition:
COM_MathBaseOperation.h:174
blender::compositor::MathRadiansOperation
Definition:
COM_MathBaseOperation.h:234
blender::compositor::MathRoundOperation
Definition:
COM_MathBaseOperation.h:202
blender::compositor::MathSignOperation
Definition:
COM_MathBaseOperation.h:298
blender::compositor::MathSineOperation
Definition:
COM_MathBaseOperation.h:109
blender::compositor::MathSmoothMaxOperation
Definition:
COM_MathBaseOperation.h:370
blender::compositor::MathSmoothMinOperation
Definition:
COM_MathBaseOperation.h:362
blender::compositor::MathSnapOperation
Definition:
COM_MathBaseOperation.h:322
blender::compositor::MathSqrtOperation
Definition:
COM_MathBaseOperation.h:282
blender::compositor::MathSubtractOperation
Definition:
COM_MathBaseOperation.h:94
blender::compositor::MathTangentOperation
Definition:
COM_MathBaseOperation.h:123
blender::compositor::MathTruncOperation
Definition:
COM_MathBaseOperation.h:314
blender::compositor::MathWrapOperation
Definition:
COM_MathBaseOperation.h:330
blender::compositor::NodeConverter
Definition:
COM_NodeConverter.h:28
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::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: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
blender::compositor
Definition:
COM_defines.h:10
bNode::custom2
short custom2
Definition:
DNA_node_types.h:308
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1