Cleanup: Add built-in check for an attribute ID
This commit is contained in:
parent
58043c0637
commit
31a0708cb1
|
@ -103,6 +103,7 @@ class GeometryComponent {
|
|||
virtual int attribute_domain_size(const AttributeDomain domain) const;
|
||||
|
||||
bool attribute_is_builtin(const blender::StringRef attribute_name) const;
|
||||
bool attribute_is_builtin(const blender::bke::AttributeIDRef &attribute_id) const;
|
||||
|
||||
/* Get read-only access to the highest priority attribute with the given name.
|
||||
* Returns null if the attribute does not exist. */
|
||||
|
|
|
@ -817,6 +817,12 @@ bool GeometryComponent::attribute_is_builtin(const blender::StringRef attribute_
|
|||
return providers->builtin_attribute_providers().contains_as(attribute_name);
|
||||
}
|
||||
|
||||
bool GeometryComponent::attribute_is_builtin(const AttributeIDRef &attribute_id) const
|
||||
{
|
||||
/* Anonymous attributes cannot be built-in. */
|
||||
return attribute_id.is_named() && this->attribute_is_builtin(attribute_id.name());
|
||||
}
|
||||
|
||||
blender::bke::ReadAttributeLookup GeometryComponent::attribute_try_get_for_read(
|
||||
const AttributeIDRef &attribute_id) const
|
||||
{
|
||||
|
@ -1210,7 +1216,7 @@ static OutputAttribute create_output_attribute(GeometryComponent &component,
|
|||
BLI_assert(cpp_type != nullptr);
|
||||
const nodes::DataTypeConversions &conversions = nodes::get_implicit_type_conversions();
|
||||
|
||||
if (attribute_id.is_named() && component.attribute_is_builtin(attribute_id.name())) {
|
||||
if (component.attribute_is_builtin(attribute_id)) {
|
||||
const StringRef attribute_name = attribute_id.name();
|
||||
WriteAttributeLookup attribute = component.attribute_try_get_for_write(attribute_name);
|
||||
if (!attribute) {
|
||||
|
|
Loading…
Reference in New Issue