Blender
V3.3
|
#include <FN_multi_function.hh>
Classes | |
struct | ExecutionHints |
Public Member Functions | |
virtual | ~MultiFunction () |
void | call_auto (IndexMask mask, MFParams params, MFContext context) const |
virtual void | call (IndexMask mask, MFParams params, MFContext context) const =0 |
virtual uint64_t | hash () const |
virtual bool | equals (const MultiFunction &UNUSED(other)) const |
int | param_amount () const |
IndexRange | param_indices () const |
MFParamType | param_type (int param_index) const |
StringRefNull | param_name (int param_index) const |
StringRefNull | name () const |
virtual std::string | debug_name () const |
bool | depends_on_context () const |
const MFSignature & | signature () const |
ExecutionHints | execution_hints () const |
Protected Member Functions | |
void | set_signature (const MFSignature *signature) |
virtual ExecutionHints | get_execution_hints () const |
Definition at line 40 of file FN_multi_function.hh.
|
inlinevirtual |
Definition at line 45 of file FN_multi_function.hh.
|
pure virtual |
Implemented in blender::fn::MFProcedureExecutor, blender::fn::CustomMF_GenericCopy, blender::fn::CustomMF_DefaultOutput, blender::fn::CustomMF_GenericConstantArray, blender::fn::CustomMF_GenericConstant, and blender::nodes::node_shader_math_cc::ClampWrapperFunction.
Referenced by blender::nodes::node_shader_math_cc::ClampWrapperFunction::call(), call_auto(), blender::fn::execute_call_instruction(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_multi_function_node__value().
void blender::fn::MultiFunction::call_auto | ( | IndexMask | mask, |
MFParams | params, | ||
MFContext | context | ||
) | const |
The result is the same as using call directly but this method has some additional features.
Definition at line 55 of file multi_function.cc.
References BLI_assert_unreachable, call(), blender::fn::MFParamType::category(), blender::fn::compute_grain_size(), blender::compositor::context, execution_hints(), if(), blender::GMutableSpan::is_empty(), mask(), blender::IndexMask::min_array_size(), blender::threading::parallel_for(), param_indices(), param_type(), params, blender::fn::SingleInput, blender::fn::SingleMutable, blender::fn::SingleOutput, blender::GMutableSpan::slice(), blender::GVArray::slice(), blender::fn::supports_threading_by_slicing_params(), blender::fn::VectorInput, blender::fn::VectorMutable, and blender::fn::VectorOutput.
Referenced by blender::bke::DataTypeConversions::convert_to_initialized_n(), and blender::fn::execute_call_instruction().
|
virtual |
Definition at line 134 of file multi_function.cc.
Referenced by blender::fn::MFProcedureDotExport::instruction_to_string().
|
inline |
Definition at line 95 of file FN_multi_function.hh.
References blender::fn::MFSignature::depends_on_context.
Referenced by blender::fn::evaluate_as_one().
|
inlinevirtual |
Definition at line 63 of file FN_multi_function.hh.
ExecutionHints blender::fn::MultiFunction::execution_hints | ( | ) | const |
Definition at line 12 of file multi_function.cc.
References get_execution_hints().
Referenced by call_auto().
|
protectedvirtual |
Reimplemented in blender::nodes::node_shader_tex_voronoi_cc::VoronoiEdgeFunction, blender::nodes::node_shader_tex_voronoi_cc::VoronoiMetricFunction, blender::nodes::node_shader_tex_voronoi_cc::VoronoiMinowskiFunction, and blender::nodes::node_shader_tex_noise_cc::NoiseFunction.
Definition at line 17 of file multi_function.cc.
Referenced by execution_hints().
|
inlinevirtual |
Reimplemented in blender::fn::CustomMF_Constant< T >, and blender::fn::CustomMF_GenericConstant.
Definition at line 58 of file FN_multi_function.hh.
References blender::get_default_hash().
|
inline |
Definition at line 88 of file FN_multi_function.hh.
References blender::fn::MFSignature::function_name.
Referenced by blender::fn::CustomMF< ParamTags >::CustomMF(), and blender::fn::CustomMF_SM< Mut1 >::CustomMF_SM().
|
inline |
Definition at line 68 of file FN_multi_function.hh.
References blender::fn::MFSignature::param_types.
Referenced by blender::fn::build_multi_function_procedure_for_fields(), blender::nodes::node_shader_math_cc::ClampWrapperFunction::call(), blender::fn::execute_call_instruction(), blender::fn::MFProcedureDotExport::instruction_to_string(), and blender::fn::MFProcedure::new_call_instruction().
|
inline |
Definition at line 73 of file FN_multi_function.hh.
References blender::fn::MFSignature::param_types.
Referenced by blender::fn::MFProcedureBuilder::add_call(), blender::fn::VariableStates::add_initial_variable_states(), blender::fn::build_multi_function_procedure_for_fields(), blender::fn::CustomMF_DefaultOutput::call(), blender::fn::MFProcedureExecutor::call(), call_auto(), blender::fn::fill_params(), blender::fn::fill_params__one(), blender::fn::gather_parameter_variable_states(), blender::fn::MFProcedureDotExport::instruction_to_string(), blender::fn::FieldOperation::output_cpp_type(), and blender::fn::supports_threading_by_slicing_params().
|
inline |
Definition at line 83 of file FN_multi_function.hh.
References blender::fn::MFSignature::param_names.
Referenced by blender::fn::MFProcedureBuilder::add_call().
|
inline |
Definition at line 78 of file FN_multi_function.hh.
References blender::fn::MFSignature::param_types.
Referenced by blender::fn::MFProcedureBuilder::add_call(), blender::fn::VariableStates::add_initial_variable_states(), blender::fn::build_multi_function_procedure_for_fields(), blender::fn::CustomMF_DefaultOutput::call(), blender::fn::CustomMF_GenericCopy::call(), blender::fn::MFProcedureExecutor::call(), call_auto(), blender::fn::fill_params(), blender::fn::fill_params__one(), blender::fn::MFProcedureDotExport::instruction_to_string(), blender::fn::FieldOperation::output_cpp_type(), blender::fn::MFCallInstruction::set_param_variable(), and blender::fn::supports_threading_by_slicing_params().
|
inlineprotected |
Definition at line 136 of file FN_multi_function.hh.
References BLI_assert, and signature().
Referenced by blender::fn::tests::AddPrefixFunction::AddPrefixFunction(), blender::fn::tests::AppendFunction::AppendFunction(), blender::nodes::node_shader_tex_brick_cc::BrickFunction::BrickFunction(), blender::nodes::node_shader_math_cc::ClampWrapperFunction::ClampWrapperFunction(), blender::nodes::node_shader_color_ramp_cc::ColorBandFunction::ColorBandFunction(), blender::fn::tests::ConcatVectorsFunction::ConcatVectorsFunction(), blender::fn::tests::CreateRangeFunction::CreateRangeFunction(), blender::nodes::node_shader_curves_cc::CurveFloatFunction::CurveFloatFunction(), blender::nodes::node_shader_curves_cc::CurveRGBFunction::CurveRGBFunction(), blender::nodes::node_shader_curves_cc::CurveVecFunction::CurveVecFunction(), blender::fn::CustomMF< ParamTags >::CustomMF(), blender::fn::CustomMF_Constant< T >::CustomMF_Constant(), blender::fn::CustomMF_DefaultOutput::CustomMF_DefaultOutput(), blender::fn::CustomMF_GenericConstant::CustomMF_GenericConstant(), blender::fn::CustomMF_GenericConstantArray::CustomMF_GenericConstantArray(), blender::fn::CustomMF_GenericCopy::CustomMF_GenericCopy(), blender::fn::CustomMF_SM< Mut1 >::CustomMF_SM(), blender::fn::tests::GenericAppendFunction::GenericAppendFunction(), blender::nodes::node_shader_tex_gradient_cc::GradientFunction::GradientFunction(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::ImageFieldsFunction(), blender::nodes::node_shader_tex_magic_cc::MagicFunction::MagicFunction(), blender::nodes::node_shader_sepcomb_xyz_cc::MF_SeparateXYZ::MF_SeparateXYZ(), blender::nodes::node_fn_input_special_characters_cc::MF_SpecialCharacters::MF_SpecialCharacters(), blender::fn::MFProcedureExecutor::MFProcedureExecutor(), blender::nodes::node_shader_mix_rgb_cc::MixRGBFunction::MixRGBFunction(), blender::nodes::node_shader_tex_musgrave_cc::MusgraveFunction::MusgraveFunction(), blender::nodes::node_geo_transfer_attribute_cc::NearestInterpolatedTransferFunction::NearestInterpolatedTransferFunction(), blender::nodes::node_geo_transfer_attribute_cc::NearestTransferFunction::NearestTransferFunction(), blender::nodes::node_shader_tex_checker_cc::NodeTexChecker::NodeTexChecker(), blender::nodes::node_shader_tex_noise_cc::NoiseFunction::NoiseFunction(), blender::fn::tests::OptionalOutputsFunction::OptionalOutputsFunction(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::SampleCurveFunction(), blender::nodes::node_geo_curve_sample_cc::SampleFloatSegmentsFunction::SampleFloatSegmentsFunction(), blender::nodes::SeparateHSLAFunction::SeparateHSLAFunction(), blender::nodes::SeparateHSVAFunction::SeparateHSVAFunction(), blender::nodes::SeparateRGBAFunction::SeparateRGBAFunction(), blender::nodes::node_shader_sepcomb_rgb_cc::SeparateRGBFunction::SeparateRGBFunction(), blender::fn::tests::SumVectorFunction::SumVectorFunction(), blender::fn::tests::TwoOutputFunction::TwoOutputFunction(), blender::nodes::node_shader_tex_voronoi_cc::VoronoiEdgeFunction::VoronoiEdgeFunction(), blender::nodes::node_shader_tex_voronoi_cc::VoronoiMetricFunction::VoronoiMetricFunction(), blender::nodes::node_shader_tex_voronoi_cc::VoronoiMinowskiFunction::VoronoiMinowskiFunction(), blender::nodes::node_shader_tex_wave_cc::WaveFunction::WaveFunction(), and blender::nodes::node_shader_tex_white_noise_cc::WhiteNoiseFunction::WhiteNoiseFunction().
|
inline |
Definition at line 100 of file FN_multi_function.hh.
References BLI_assert.
Referenced by blender::fn::CustomMF< ParamTags >::add_signature_parameters(), blender::fn::tests::AddPrefixFunction::AddPrefixFunction(), blender::fn::tests::AppendFunction::AppendFunction(), blender::nodes::node_shader_tex_brick_cc::BrickFunction::BrickFunction(), blender::nodes::node_shader_math_cc::ClampWrapperFunction::ClampWrapperFunction(), blender::nodes::node_shader_color_ramp_cc::ColorBandFunction::ColorBandFunction(), blender::fn::tests::ConcatVectorsFunction::ConcatVectorsFunction(), blender::fn::tests::AddPrefixFunction::create_signature(), blender::fn::tests::CreateRangeFunction::create_signature(), blender::fn::tests::ConcatVectorsFunction::create_signature(), blender::fn::tests::AppendFunction::create_signature(), blender::fn::tests::SumVectorFunction::create_signature(), blender::fn::tests::OptionalOutputsFunction::create_signature(), blender::nodes::node_fn_input_special_characters_cc::MF_SpecialCharacters::create_signature(), blender::nodes::SeparateRGBAFunction::create_signature(), blender::nodes::SeparateHSVAFunction::create_signature(), blender::nodes::SeparateHSLAFunction::create_signature(), blender::nodes::node_geo_curve_sample_cc::SampleFloatSegmentsFunction::create_signature(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::create_signature(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::create_signature(), blender::nodes::node_geo_transfer_attribute_cc::NearestInterpolatedTransferFunction::create_signature(), blender::nodes::node_geo_transfer_attribute_cc::NearestTransferFunction::create_signature(), blender::nodes::node_shader_color_ramp_cc::ColorBandFunction::create_signature(), blender::nodes::node_shader_curves_cc::CurveVecFunction::create_signature(), blender::nodes::node_shader_curves_cc::CurveRGBFunction::create_signature(), blender::nodes::node_shader_curves_cc::CurveFloatFunction::create_signature(), blender::nodes::node_shader_mix_rgb_cc::MixRGBFunction::create_signature(), blender::nodes::node_shader_sepcomb_rgb_cc::SeparateRGBFunction::create_signature(), blender::nodes::node_shader_sepcomb_xyz_cc::MF_SeparateXYZ::create_signature(), blender::nodes::node_shader_tex_brick_cc::BrickFunction::create_signature(), blender::nodes::node_shader_tex_checker_cc::NodeTexChecker::create_signature(), blender::nodes::node_shader_tex_gradient_cc::GradientFunction::create_signature(), blender::nodes::node_shader_tex_magic_cc::MagicFunction::create_signature(), blender::nodes::node_shader_tex_wave_cc::WaveFunction::create_signature(), blender::nodes::node_shader_tex_musgrave_cc::MusgraveFunction::create_signature(), blender::nodes::node_shader_tex_noise_cc::NoiseFunction::create_signature(), blender::nodes::node_shader_tex_white_noise_cc::WhiteNoiseFunction::create_signature(), blender::nodes::node_shader_tex_voronoi_cc::VoronoiMinowskiFunction::create_signature(), blender::nodes::node_shader_tex_voronoi_cc::VoronoiMetricFunction::create_signature(), blender::nodes::node_shader_tex_voronoi_cc::VoronoiEdgeFunction::create_signature(), blender::fn::tests::CreateRangeFunction::CreateRangeFunction(), blender::nodes::node_shader_curves_cc::CurveFloatFunction::CurveFloatFunction(), blender::nodes::node_shader_curves_cc::CurveRGBFunction::CurveRGBFunction(), blender::nodes::node_shader_curves_cc::CurveVecFunction::CurveVecFunction(), blender::fn::CustomMF< ParamTags >::CustomMF(), blender::fn::CustomMF_Constant< T >::CustomMF_Constant(), blender::fn::CustomMF_DefaultOutput::CustomMF_DefaultOutput(), blender::fn::CustomMF_GenericConstant::CustomMF_GenericConstant(), blender::fn::CustomMF_GenericConstantArray::CustomMF_GenericConstantArray(), blender::fn::CustomMF_GenericCopy::CustomMF_GenericCopy(), blender::fn::CustomMF_SM< Mut1 >::CustomMF_SM(), blender::fn::tests::GenericAppendFunction::GenericAppendFunction(), blender::nodes::node_shader_tex_gradient_cc::GradientFunction::GradientFunction(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::ImageFieldsFunction(), blender::nodes::node_shader_tex_magic_cc::MagicFunction::MagicFunction(), blender::nodes::node_shader_sepcomb_xyz_cc::MF_SeparateXYZ::MF_SeparateXYZ(), blender::nodes::node_fn_input_special_characters_cc::MF_SpecialCharacters::MF_SpecialCharacters(), blender::fn::MFProcedureExecutor::MFProcedureExecutor(), blender::nodes::node_shader_mix_rgb_cc::MixRGBFunction::MixRGBFunction(), blender::nodes::node_shader_tex_checker_cc::NodeTexChecker::NodeTexChecker(), blender::fn::tests::OptionalOutputsFunction::OptionalOutputsFunction(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::SampleCurveFunction(), blender::nodes::node_geo_curve_sample_cc::SampleFloatSegmentsFunction::SampleFloatSegmentsFunction(), blender::nodes::SeparateHSLAFunction::SeparateHSLAFunction(), blender::nodes::SeparateHSVAFunction::SeparateHSVAFunction(), blender::nodes::SeparateRGBAFunction::SeparateRGBAFunction(), blender::nodes::node_shader_sepcomb_rgb_cc::SeparateRGBFunction::SeparateRGBFunction(), set_signature(), blender::fn::tests::SumVectorFunction::SumVectorFunction(), blender::fn::tests::TwoOutputFunction::TwoOutputFunction(), and blender::nodes::node_shader_tex_wave_cc::WaveFunction::WaveFunction().