diff options
Diffstat (limited to 'source/blender/nodes')
7 files changed, 56 insertions, 7 deletions
diff --git a/source/blender/nodes/function/nodes/node_fn_object_transforms.cc b/source/blender/nodes/function/nodes/node_fn_object_transforms.cc index 55f592d7879..a73049776e5 100644 --- a/source/blender/nodes/function/nodes/node_fn_object_transforms.cc +++ b/source/blender/nodes/function/nodes/node_fn_object_transforms.cc @@ -32,10 +32,17 @@ class ObjectTransformsFunction : public blender::fn::MultiFunction { public: ObjectTransformsFunction() { - blender::fn::MFSignatureBuilder signature = this->get_builder("Object Transforms"); + static blender::fn::MFSignature signature = create_signature(); + this->set_signature(&signature); + } + + static blender::fn::MFSignature create_signature() + { + blender::fn::MFSignatureBuilder signature{"Object Transforms"}; signature.depends_on_context(); signature.single_input<blender::bke::PersistentObjectHandle>("Object"); signature.single_output<blender::float3>("Location"); + return signature.build(); } void call(blender::IndexMask mask, diff --git a/source/blender/nodes/function/nodes/node_fn_random_float.cc b/source/blender/nodes/function/nodes/node_fn_random_float.cc index 84ded73c601..d156cd431e0 100644 --- a/source/blender/nodes/function/nodes/node_fn_random_float.cc +++ b/source/blender/nodes/function/nodes/node_fn_random_float.cc @@ -37,11 +37,18 @@ class RandomFloatFunction : public blender::fn::MultiFunction { public: RandomFloatFunction(uint32_t function_seed) : function_seed_(function_seed) { - blender::fn::MFSignatureBuilder signature = this->get_builder("Random float"); + static blender::fn::MFSignature signature = create_signature(); + this->set_signature(&signature); + } + + static blender::fn::MFSignature create_signature() + { + blender::fn::MFSignatureBuilder signature{"Random float"}; signature.single_input<float>("Min"); signature.single_input<float>("Max"); signature.single_input<int>("Seed"); signature.single_output<float>("Value"); + return signature.build(); } void call(blender::IndexMask mask, diff --git a/source/blender/nodes/intern/node_socket.cc b/source/blender/nodes/intern/node_socket.cc index 0ddea0051bc..26df3f77738 100644 --- a/source/blender/nodes/intern/node_socket.cc +++ b/source/blender/nodes/intern/node_socket.cc @@ -637,9 +637,16 @@ class ObjectSocketMultiFunction : public blender::fn::MultiFunction { public: ObjectSocketMultiFunction(Object *object) : object_(object) { - blender::fn::MFSignatureBuilder signature = this->get_builder("Object Socket"); + static blender::fn::MFSignature signature = create_signature(); + this->set_signature(&signature); + } + + static blender::fn::MFSignature create_signature() + { + blender::fn::MFSignatureBuilder signature{"Object Socket"}; signature.depends_on_context(); signature.single_output<blender::bke::PersistentObjectHandle>("Object"); + return signature.build(); } void call(blender::IndexMask mask, diff --git a/source/blender/nodes/shader/nodes/node_shader_map_range.cc b/source/blender/nodes/shader/nodes/node_shader_map_range.cc index 3aa533599cf..3b4ea3d1bdf 100644 --- a/source/blender/nodes/shader/nodes/node_shader_map_range.cc +++ b/source/blender/nodes/shader/nodes/node_shader_map_range.cc @@ -95,13 +95,20 @@ class MapRangeFunction : public blender::fn::MultiFunction { public: MapRangeFunction(bool clamp) : clamp_(clamp) { - blender::fn::MFSignatureBuilder signature = this->get_builder("Map Range"); + static blender::fn::MFSignature signature = create_signature(); + this->set_signature(&signature); + } + + static blender::fn::MFSignature create_signature() + { + blender::fn::MFSignatureBuilder signature{"Map Range"}; signature.single_input<float>("Value"); signature.single_input<float>("From Min"); signature.single_input<float>("From Max"); signature.single_input<float>("To Min"); signature.single_input<float>("To Max"); signature.single_output<float>("Result"); + return signature.build(); } void call(blender::IndexMask mask, diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc index a9057428981..8ca4a6bab5f 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombRGB.cc @@ -63,11 +63,18 @@ class SeparateRGBFunction : public blender::fn::MultiFunction { public: SeparateRGBFunction() { - blender::fn::MFSignatureBuilder signature = this->get_builder("Separate RGB"); + static blender::fn::MFSignature signature = create_signature(); + this->set_signature(&signature); + } + + static blender::fn::MFSignature create_signature() + { + blender::fn::MFSignatureBuilder signature{"Separate RGB"}; signature.single_input<blender::Color4f>("Color"); signature.single_output<float>("R"); signature.single_output<float>("G"); signature.single_output<float>("B"); + return signature.build(); } void call(blender::IndexMask mask, diff --git a/source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc b/source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc index c0dc66b3342..efa9581c414 100644 --- a/source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc +++ b/source/blender/nodes/shader/nodes/node_shader_sepcombXYZ.cc @@ -48,11 +48,18 @@ class MF_SeparateXYZ : public blender::fn::MultiFunction { public: MF_SeparateXYZ() { - blender::fn::MFSignatureBuilder signature = this->get_builder("Separate XYZ"); + static blender::fn::MFSignature signature = create_signature(); + this->set_signature(&signature); + } + + static blender::fn::MFSignature create_signature() + { + blender::fn::MFSignatureBuilder signature{"Separate XYZ"}; signature.single_input<blender::float3>("XYZ"); signature.single_output<float>("X"); signature.single_output<float>("Y"); signature.single_output<float>("Z"); + return signature.build(); } void call(blender::IndexMask mask, diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc b/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc index 0d50582e23a..90e8161c09f 100644 --- a/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc +++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.cc @@ -132,10 +132,17 @@ class ColorBandFunction : public blender::fn::MultiFunction { public: ColorBandFunction(const ColorBand &color_band) : color_band_(color_band) { - blender::fn::MFSignatureBuilder signature = this->get_builder("Color Band"); + static blender::fn::MFSignature signature = create_signature(); + this->set_signature(&signature); + } + + static blender::fn::MFSignature create_signature() + { + blender::fn::MFSignatureBuilder signature{"Color Band"}; signature.single_input<float>("Value"); signature.single_output<blender::Color4f>("Color"); signature.single_output<float>("Alpha"); + return signature.build(); } void call(blender::IndexMask mask, |