Blender
V2.93
source
blender
compositor
nodes
COM_LensDistortionNode.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_LensDistortionNode.h
"
20
#include "
COM_ExecutionSystem.h
"
21
#include "
COM_ProjectorLensDistortionOperation.h
"
22
#include "
COM_ScreenLensDistortionOperation.h
"
23
24
namespace
blender::compositor
{
25
26
LensDistortionNode::LensDistortionNode
(
bNode
*editorNode) :
Node
(editorNode)
27
{
28
/* pass */
29
}
30
31
void
LensDistortionNode::convertToOperations
(
NodeConverter
&converter,
32
const
CompositorContext
&
/*context*/
)
const
33
{
34
bNode
*editorNode = this->
getbNode
();
35
NodeLensDist
*
data
= (
NodeLensDist
*)editorNode->
storage
;
36
if
(
data
->proj) {
37
ProjectorLensDistortionOperation
*operation =
new
ProjectorLensDistortionOperation
();
38
converter.
addOperation
(operation);
39
40
converter.
mapInputSocket
(
getInputSocket
(0), operation->
getInputSocket
(0));
41
converter.
mapInputSocket
(
getInputSocket
(2), operation->
getInputSocket
(1));
42
converter.
mapOutputSocket
(
getOutputSocket
(0), operation->
getOutputSocket
(0));
43
}
44
else
{
45
ScreenLensDistortionOperation
*operation =
new
ScreenLensDistortionOperation
();
46
operation->
setFit
(
data
->fit);
47
operation->
setJitter
(
data
->jit);
48
49
if
(!
getInputSocket
(1)->isLinked()) {
50
operation->
setDistortion
(
getInputSocket
(1)->getEditorValueFloat());
51
}
52
if
(!
getInputSocket
(2)->isLinked()) {
53
operation->
setDispersion
(
getInputSocket
(2)->getEditorValueFloat());
54
}
55
56
converter.
addOperation
(operation);
57
58
converter.
mapInputSocket
(
getInputSocket
(0), operation->
getInputSocket
(0));
59
converter.
mapInputSocket
(
getInputSocket
(1), operation->
getInputSocket
(1));
60
converter.
mapInputSocket
(
getInputSocket
(2), operation->
getInputSocket
(2));
61
converter.
mapOutputSocket
(
getOutputSocket
(0), operation->
getOutputSocket
(0));
62
}
63
}
64
65
}
// namespace blender::compositor
COM_ExecutionSystem.h
COM_LensDistortionNode.h
COM_ProjectorLensDistortionOperation.h
COM_ScreenLensDistortionOperation.h
data
data
Definition:
bmesh_operator_api_inline.h:176
if
if(data)
Definition:
bmesh_operator_api_inline.h:177
blender::compositor::CompositorContext
Overall context of the compositor.
Definition:
COM_CompositorContext.h:37
blender::compositor::LensDistortionNode::convertToOperations
void convertToOperations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
Definition:
COM_LensDistortionNode.cc:31
blender::compositor::LensDistortionNode::LensDistortionNode
LensDistortionNode(bNode *editorNode)
Definition:
COM_LensDistortionNode.cc:26
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::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::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::ProjectorLensDistortionOperation
Definition:
COM_ProjectorLensDistortionOperation.h:26
blender::compositor::ScreenLensDistortionOperation
Definition:
COM_ScreenLensDistortionOperation.h:28
blender::compositor::ScreenLensDistortionOperation::setJitter
void setJitter(bool jitter)
Definition:
COM_ScreenLensDistortionOperation.h:73
blender::compositor::ScreenLensDistortionOperation::setFit
void setFit(bool fit)
Definition:
COM_ScreenLensDistortionOperation.h:69
blender::compositor::ScreenLensDistortionOperation::setDispersion
void setDispersion(float dispersion)
Definition:
COM_ScreenLensDistortionOperation.cc:50
blender::compositor::ScreenLensDistortionOperation::setDistortion
void setDistortion(float distortion)
Definition:
COM_ScreenLensDistortionOperation.cc:44
blender::compositor
Definition:
COM_defines.h:21
NodeLensDist
Definition:
DNA_node_types.h:822
bNode
Definition:
DNA_node_types.h:212
bNode::storage
void * storage
Definition:
DNA_node_types.h:244
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1