Blender
V2.93
source
blender
compositor
nodes
COM_CryptomatteNode.h
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 2018, Blender Foundation.
17
*/
18
19
#pragma once
20
21
#include "
BLI_string_ref.hh
"
22
#include "
BLI_vector.hh
"
23
24
#include "
COM_CryptomatteOperation.h
"
25
#include "
COM_Node.h
"
26
27
namespace
blender::compositor
{
28
33
class
CryptomatteBaseNode
:
public
Node
{
34
protected
:
35
CryptomatteBaseNode
(
bNode
*editor_node) :
Node
(editor_node)
36
{
37
/* pass */
38
}
39
40
public
:
41
void
convertToOperations
(
NodeConverter
&converter,
42
const
CompositorContext
&
context
)
const override
;
43
44
protected
:
45
virtual
CryptomatteOperation
*
create_cryptomatte_operation
(
46
NodeConverter
&converter,
47
const
CompositorContext
&
context
,
48
const
bNode
&
node
,
49
const
NodeCryptomatte
*cryptomatte_settings)
const
= 0;
50
};
51
52
class
CryptomatteNode
:
public
CryptomatteBaseNode
{
53
public
:
54
CryptomatteNode
(
bNode
*editor_node) :
CryptomatteBaseNode
(editor_node)
55
{
56
/* pass */
57
}
58
59
protected
:
60
CryptomatteOperation
*
create_cryptomatte_operation
(
61
NodeConverter
&converter,
62
const
CompositorContext
&
context
,
63
const
bNode
&
node
,
64
const
NodeCryptomatte
*cryptomatte_settings)
const override
;
65
66
private
:
67
static
Vector<NodeOperation *>
create_input_operations(
const
CompositorContext
&
context
,
68
const
bNode
&
node
);
69
static
void
input_operations_from_render_source(
const
CompositorContext
&
context
,
70
const
bNode
&
node
,
71
Vector<NodeOperation *>
&r_input_operations);
72
static
void
input_operations_from_image_source(
const
CompositorContext
&
context
,
73
const
bNode
&
node
,
74
Vector<NodeOperation *>
&r_input_operations);
75
};
76
77
class
CryptomatteLegacyNode
:
public
CryptomatteBaseNode
{
78
public
:
79
CryptomatteLegacyNode
(
bNode
*editor_node) :
CryptomatteBaseNode
(editor_node)
80
{
81
/* pass */
82
}
83
84
protected
:
85
CryptomatteOperation
*
create_cryptomatte_operation
(
86
NodeConverter
&converter,
87
const
CompositorContext
&
context
,
88
const
bNode
&
node
,
89
const
NodeCryptomatte
*cryptomatte_settings)
const override
;
90
};
91
92
}
// namespace blender::compositor
BLI_string_ref.hh
BLI_vector.hh
COM_CryptomatteOperation.h
COM_Node.h
blender::Vector
Definition:
BLI_vector.hh:78
blender::compositor::CompositorContext
Overall context of the compositor.
Definition:
COM_CompositorContext.h:37
blender::compositor::CryptomatteBaseNode
CryptomatteNode.
Definition:
COM_CryptomatteNode.h:33
blender::compositor::CryptomatteBaseNode::create_cryptomatte_operation
virtual CryptomatteOperation * create_cryptomatte_operation(NodeConverter &converter, const CompositorContext &context, const bNode &node, const NodeCryptomatte *cryptomatte_settings) const =0
blender::compositor::CryptomatteBaseNode::CryptomatteBaseNode
CryptomatteBaseNode(bNode *editor_node)
Definition:
COM_CryptomatteNode.h:35
blender::compositor::CryptomatteBaseNode::convertToOperations
void convertToOperations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
Definition:
COM_CryptomatteNode.cc:39
blender::compositor::CryptomatteLegacyNode
Definition:
COM_CryptomatteNode.h:77
blender::compositor::CryptomatteLegacyNode::create_cryptomatte_operation
CryptomatteOperation * create_cryptomatte_operation(NodeConverter &converter, const CompositorContext &context, const bNode &node, const NodeCryptomatte *cryptomatte_settings) const override
Definition:
COM_CryptomatteNode.cc:251
blender::compositor::CryptomatteLegacyNode::CryptomatteLegacyNode
CryptomatteLegacyNode(bNode *editor_node)
Definition:
COM_CryptomatteNode.h:79
blender::compositor::CryptomatteNode
Definition:
COM_CryptomatteNode.h:52
blender::compositor::CryptomatteNode::create_cryptomatte_operation
CryptomatteOperation * create_cryptomatte_operation(NodeConverter &converter, const CompositorContext &context, const bNode &node, const NodeCryptomatte *cryptomatte_settings) const override
Definition:
COM_CryptomatteNode.cc:228
blender::compositor::CryptomatteNode::CryptomatteNode
CryptomatteNode(bNode *editor_node)
Definition:
COM_CryptomatteNode.h:54
blender::compositor::CryptomatteOperation
Definition:
COM_CryptomatteOperation.h:25
blender::compositor::NodeConverter
Definition:
COM_NodeConverter.h:43
blender::compositor::Node
Definition:
COM_Node.h:42
node
OperationNode * node
Definition:
deg_builder_cycle.cc:54
blender::compositor
Definition:
COM_defines.h:21
blender::compositor::context
cl_context context
Definition:
COM_WorkScheduler.cc:90
NodeCryptomatte
Definition:
DNA_node_types.h:1092
bNode
Definition:
DNA_node_types.h:212
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1