[Bf-blender-cvs] [b56736aaf19] refactor-mesh-bevel-weight-generic: Proper fix for legacy mesh format
Hans Goudey
noreply at git.blender.org
Mon May 30 20:31:15 CEST 2022
Commit: b56736aaf197c0d95db8b02c81b35e7b959f136d
Author: Hans Goudey
Date: Mon May 30 20:31:07 2022 +0200
Branches: refactor-mesh-bevel-weight-generic
https://developer.blender.org/rBb56736aaf197c0d95db8b02c81b35e7b959f136d
Proper fix for legacy mesh format
===================================================================
M source/blender/blenkernel/intern/mesh.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc
index 3d39fe63c2d..a1a0777f81a 100644
--- a/source/blender/blenkernel/intern/mesh.cc
+++ b/source/blender/blenkernel/intern/mesh.cc
@@ -252,18 +252,6 @@ static void mesh_blend_write(BlendWriter *writer, ID *id, const void *id_address
}
if (BLO_write_use_legacy_mesh_format(writer)) {
- MutableSpan<MEdge> edges(mesh->medge, mesh->totedge);
- const float *edge_bevel = (const float *)CustomData_get_layer(&mesh->edata, CD_BWEIGHT);
- if (edge_bevel == nullptr) {
- for (const int i : edges.index_range()) {
- edges[i].bweight = 0;
- }
- }
- else {
- for (const int i : edges.index_range()) {
- edges[i].bweight = std::clamp(edge_bevel[i], 0.0f, 1.0f) * 255.0f;
- }
- }
MutableSpan<MVert> verts(mesh->mvert, mesh->totvert);
const float *vert_bevel = (const float *)CustomData_get_layer(&mesh->vdata, CD_BWEIGHT);
if (vert_bevel == nullptr) {
@@ -272,10 +260,24 @@ static void mesh_blend_write(BlendWriter *writer, ID *id, const void *id_address
}
}
else {
+ mesh->cd_flag |= ME_CDFLAG_VERT_BWEIGHT;
for (const int i : verts.index_range()) {
verts[i].bweight = std::clamp(vert_bevel[i], 0.0f, 1.0f) * 255.0f;
}
}
+ MutableSpan<MEdge> edges(mesh->medge, mesh->totedge);
+ const float *edge_bevel = (const float *)CustomData_get_layer(&mesh->edata, CD_BWEIGHT);
+ if (edge_bevel == nullptr) {
+ for (const int i : edges.index_range()) {
+ edges[i].bweight = 0;
+ }
+ }
+ else {
+ mesh->cd_flag |= ME_CDFLAG_EDGE_BWEIGHT;
+ for (const int i : edges.index_range()) {
+ edges[i].bweight = std::clamp(edge_bevel[i], 0.0f, 1.0f) * 255.0f;
+ }
+ }
}
BLO_write_id_struct(writer, Mesh, id_address, &mesh->id);
More information about the Bf-blender-cvs
mailing list