Cleanup: Use attribute API for Alembic crease import

This commit is contained in:
Hans Goudey
2024-12-30 11:08:19 -05:00
parent dacc9455ba
commit e8db6b9966

View File

@@ -948,17 +948,17 @@ static void read_edge_creases(Mesh *mesh,
return;
}
MutableSpan<int2> edges = mesh->edges_for_write();
const Span<int2> edges = mesh->edges_for_write();
Map<OrderedEdge, int> edge_hash;
edge_hash.reserve(edges.size());
float *creases = static_cast<float *>(CustomData_add_layer_named(
&mesh->edge_data, CD_PROP_FLOAT, CD_SET_DEFAULT, edges.size(), "crease_edge"));
for (const int i : edges.index_range()) {
edge_hash.add(edges[i], i);
}
bke::MutableAttributeAccessor attributes = mesh->attributes_for_write();
bke::SpanAttributeWriter<float> creases = attributes.lookup_or_add_for_write_span<float>(
"crease_edge", bke::AttrDomain::Edge);
for (int i = 0, s = 0, e = indices->size(); i < e; i += 2, s++) {
int v1 = (*indices)[i];
int v2 = (*indices)[i + 1];
@@ -967,7 +967,7 @@ static void read_edge_creases(Mesh *mesh,
continue;
}
creases[*index] = std::clamp((*sharpnesses)[s], 0.0f, 1.0f);
creases.span[*index] = std::clamp((*sharpnesses)[s], 0.0f, 1.0f);
}
}