Blender V4.3
COM_CryptomatteNode.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2018 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
7#include "BLI_string_ref.hh"
8#include "BLI_vector.hh"
9
11#include "COM_Node.h"
12
13namespace blender::compositor {
14
19class CryptomatteBaseNode : public Node {
20 protected:
21 CryptomatteBaseNode(bNode *editor_node) : Node(editor_node)
22 {
23 /* pass */
24 }
25
26 public:
28 const CompositorContext &context) const override;
29
30 protected:
32 NodeConverter &converter,
33 const CompositorContext &context,
34 const bNode &node,
35 const NodeCryptomatte *cryptomatte_settings) const = 0;
36};
37
39 public:
40 CryptomatteNode(bNode *editor_node) : CryptomatteBaseNode(editor_node)
41 {
42 /* pass */
43 }
44
45 protected:
47 NodeConverter &converter,
48 const CompositorContext &context,
49 const bNode &node,
50 const NodeCryptomatte *cryptomatte_settings) const override;
51
52 private:
53 static Vector<NodeOperation *> create_input_operations(const CompositorContext &context,
54 const bNode &node);
55 static void input_operations_from_render_source(const CompositorContext &context,
56 const bNode &node,
57 Vector<NodeOperation *> &r_input_operations);
58 static void input_operations_from_image_source(const CompositorContext &context,
59 const bNode &node,
60 Vector<NodeOperation *> &r_input_operations);
61};
62
64 public:
65 CryptomatteLegacyNode(bNode *editor_node) : CryptomatteBaseNode(editor_node)
66 {
67 /* pass */
68 }
69
70 protected:
72 NodeConverter &converter,
73 const CompositorContext &context,
74 const bNode &node,
75 const NodeCryptomatte *cryptomatte_settings) const override;
76};
77
78} // namespace blender::compositor
Overall context of the compositor.
virtual CryptomatteOperation * create_cryptomatte_operation(NodeConverter &converter, const CompositorContext &context, const bNode &node, const NodeCryptomatte *cryptomatte_settings) const =0
void convert_to_operations(NodeConverter &converter, const CompositorContext &context) const override
convert node to operation
CryptomatteOperation * create_cryptomatte_operation(NodeConverter &converter, const CompositorContext &context, const bNode &node, const NodeCryptomatte *cryptomatte_settings) const override
CryptomatteOperation * create_cryptomatte_operation(NodeConverter &converter, const CompositorContext &context, const bNode &node, const NodeCryptomatte *cryptomatte_settings) const override