Blender  V3.3
NOD_socket_declarations_geometry.hh
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
5 #include "BKE_geometry_set.hh"
6 
8 
9 namespace blender::nodes::decl {
10 
11 class GeometryBuilder;
12 
13 class Geometry : public SocketDeclaration {
14  private:
16  bool only_realized_data_ = false;
17  bool only_instances_ = false;
18 
19  friend GeometryBuilder;
20 
21  public:
23 
24  bNodeSocket &build(bNodeTree &ntree, bNode &node) const override;
25  bool matches(const bNodeSocket &socket) const override;
26  bool can_connect(const bNodeSocket &socket) const override;
27 
29  bool only_realized_data() const;
30  bool only_instances() const;
31 };
32 
33 class GeometryBuilder : public SocketDeclarationBuilder<Geometry> {
34  public:
37  GeometryBuilder &only_realized_data(bool value = true);
38  GeometryBuilder &only_instances(bool value = true);
39 };
40 
41 } // namespace blender::nodes::decl
GeometryComponentType
GeometryBuilder & only_realized_data(bool value=true)
GeometryBuilder & only_instances(bool value=true)
GeometryBuilder & supported_type(GeometryComponentType supported_type)
Span< GeometryComponentType > supported_types() const
bNodeSocket & build(bNodeTree &ntree, bNode &node) const override
bool can_connect(const bNodeSocket &socket) const override
bool matches(const bNodeSocket &socket) const override
OperationNode * node
bNodeTree * ntree