Fix #142202: missing anonymous attribute propagation when using some field nodes
Some fields were missing `for_each_field_input_recursive` implementations which are required for anonymous attribute propagation to work. Pull Request: https://projects.blender.org/blender/blender/pulls/143031
This commit is contained in:
@@ -259,6 +259,12 @@ class AccumulateFieldInput final : public bke::GeometryFieldInput {
|
||||
return attributes.adapt_domain(std::move(g_output), source_domain_, context.domain());
|
||||
}
|
||||
|
||||
void for_each_field_input_recursive(FunctionRef<void(const FieldInput &)> fn) const final
|
||||
{
|
||||
input_.node().for_each_field_input_recursive(fn);
|
||||
group_index_.node().for_each_field_input_recursive(fn);
|
||||
}
|
||||
|
||||
uint64_t hash() const override
|
||||
{
|
||||
return get_default_hash(input_, group_index_, source_domain_, accumulation_mode_);
|
||||
@@ -348,6 +354,12 @@ class TotalFieldInput final : public bke::GeometryFieldInput {
|
||||
return attributes.adapt_domain(std::move(g_outputs), source_domain_, context.domain());
|
||||
}
|
||||
|
||||
void for_each_field_input_recursive(FunctionRef<void(const FieldInput &)> fn) const final
|
||||
{
|
||||
input_.node().for_each_field_input_recursive(fn);
|
||||
group_index_.node().for_each_field_input_recursive(fn);
|
||||
}
|
||||
|
||||
uint64_t hash() const override
|
||||
{
|
||||
return get_default_hash(input_, group_index_, source_domain_);
|
||||
|
||||
@@ -243,6 +243,12 @@ class FieldAverageInput final : public bke::GeometryFieldInput {
|
||||
return attributes.adapt_domain(std::move(g_outputs), source_domain_, context.domain());
|
||||
}
|
||||
|
||||
void for_each_field_input_recursive(FunctionRef<void(const FieldInput &)> fn) const final
|
||||
{
|
||||
input_.node().for_each_field_input_recursive(fn);
|
||||
group_index_.node().for_each_field_input_recursive(fn);
|
||||
}
|
||||
|
||||
uint64_t hash() const override
|
||||
{
|
||||
return get_default_hash(input_, group_index_, source_domain_, operation_);
|
||||
|
||||
@@ -229,6 +229,12 @@ class FieldMinMaxInput final : public bke::GeometryFieldInput {
|
||||
return attributes.adapt_domain(std::move(g_outputs), source_domain_, context.domain());
|
||||
}
|
||||
|
||||
void for_each_field_input_recursive(FunctionRef<void(const FieldInput &)> fn) const final
|
||||
{
|
||||
input_.node().for_each_field_input_recursive(fn);
|
||||
group_index_.node().for_each_field_input_recursive(fn);
|
||||
}
|
||||
|
||||
uint64_t hash() const override
|
||||
{
|
||||
return get_default_hash(input_, group_index_, source_domain_, operation_);
|
||||
|
||||
@@ -244,6 +244,12 @@ class FieldVarianceInput final : public bke::GeometryFieldInput {
|
||||
return attributes.adapt_domain(std::move(g_outputs), source_domain_, context.domain());
|
||||
}
|
||||
|
||||
void for_each_field_input_recursive(FunctionRef<void(const FieldInput &)> fn) const final
|
||||
{
|
||||
input_.node().for_each_field_input_recursive(fn);
|
||||
group_index_.node().for_each_field_input_recursive(fn);
|
||||
}
|
||||
|
||||
uint64_t hash() const override
|
||||
{
|
||||
return get_default_hash(input_, group_index_, source_domain_, operation_);
|
||||
|
||||
Reference in New Issue
Block a user