Blender  V3.3
COM_CryptomatteNode.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2018 Blender Foundation. */
3 
4 #pragma once
5 
6 #include "BLI_string_ref.hh"
7 #include "BLI_vector.hh"
8 
10 #include "COM_Node.h"
11 
12 namespace blender::compositor {
13 
18 class CryptomatteBaseNode : public Node {
19  protected:
20  CryptomatteBaseNode(bNode *editor_node) : Node(editor_node)
21  {
22  /* pass */
23  }
24 
25  public:
26  void convert_to_operations(NodeConverter &converter,
27  const CompositorContext &context) const override;
28 
29  protected:
31  NodeConverter &converter,
33  const bNode &node,
34  const NodeCryptomatte *cryptomatte_settings) const = 0;
35 };
36 
38  public:
39  CryptomatteNode(bNode *editor_node) : CryptomatteBaseNode(editor_node)
40  {
41  /* pass */
42  }
43 
44  protected:
46  NodeConverter &converter,
48  const bNode &node,
49  const NodeCryptomatte *cryptomatte_settings) const override;
50 
51  private:
52  static Vector<NodeOperation *> create_input_operations(const CompositorContext &context,
53  const bNode &node);
54  static void input_operations_from_render_source(const CompositorContext &context,
55  const bNode &node,
56  Vector<NodeOperation *> &r_input_operations);
57  static void input_operations_from_image_source(const CompositorContext &context,
58  const bNode &node,
59  Vector<NodeOperation *> &r_input_operations);
60 };
61 
63  public:
64  CryptomatteLegacyNode(bNode *editor_node) : CryptomatteBaseNode(editor_node)
65  {
66  /* pass */
67  }
68 
69  protected:
71  NodeConverter &converter,
73  const bNode &node,
74  const NodeCryptomatte *cryptomatte_settings) const override;
75 };
76 
77 } // 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
OperationNode * node