Blender  V3.3
node_fn_input_special_characters.cc
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include "node_function_util.hh"
4 
6 
8 {
9  b.add_output<decl::String>(N_("Line Break"));
10  b.add_output<decl::String>(N_("Tab"));
11 }
12 
14  public:
16  {
18  this->set_signature(&signature);
19  }
20 
22  {
23  fn::MFSignatureBuilder signature{"Special Characters"};
24  signature.single_output<std::string>("Line Break");
25  signature.single_output<std::string>("Tab");
26  return signature.build();
27  }
28 
30  {
31  MutableSpan<std::string> lb = params.uninitialized_single_output<std::string>(0, "Line Break");
32  MutableSpan<std::string> tab = params.uninitialized_single_output<std::string>(1, "Tab");
33 
34  for (const int i : mask) {
35  new (&lb[i]) std::string("\n");
36  new (&tab[i]) std::string("\t");
37  }
38  }
39 };
40 
42  NodeMultiFunctionBuilder &builder)
43 {
44  static MF_SpecialCharacters special_characters_fn;
45  builder.set_matching_fn(special_characters_fn);
46 }
47 
48 } // namespace blender::nodes::node_fn_input_special_characters_cc
49 
51 {
53 
54  static bNodeType ntype;
55 
57  &ntype, FN_NODE_INPUT_SPECIAL_CHARACTERS, "Special Characters", NODE_CLASS_INPUT);
60  nodeRegisterType(&ntype);
61 }
#define FN_NODE_INPUT_SPECIAL_CHARACTERS
Definition: BKE_node.h:1528
#define NODE_CLASS_INPUT
Definition: BKE_node.h:345
void nodeRegisterType(struct bNodeType *ntype)
Definition: node.cc:1357
#define UNUSED(x)
void set_signature(const MFSignature *signature)
const MFSignature & signature() const
void set_matching_fn(const MultiFunction *fn)
void call(IndexMask mask, fn::MFParams params, fn::MFContext UNUSED(context)) const override
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
Definition: math_float4.h:513
static void fn_node_input_special_characters_declare(NodeDeclarationBuilder &b)
static void fn_node_input_special_characters_build_multi_function(NodeMultiFunctionBuilder &builder)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void register_node_type_fn_input_special_characters()
void fn_node_type_base(bNodeType *ntype, int type, const char *name, short nclass)
Defines a node type.
Definition: BKE_node.h:226
NodeMultiFunctionBuildFunction build_multi_function
Definition: BKE_node.h:313
NodeDeclareFunction declare
Definition: BKE_node.h:324
#define N_(msgid)