forked from blender/blender
index-of-nearest-104619 #2
@ -1451,18 +1451,17 @@ Mesh *BKE_mball_polygonize(Depsgraph *depsgraph, Scene *scene, Object *ob)
|
||||
|
||||
freepolygonize(&process);
|
||||
|
||||
Mesh *mesh = (Mesh *)BKE_id_new_nomain(ID_ME, ((ID *)ob->data)->name + 2);
|
||||
int corners_num = 0;
|
||||
for (uint i = 0; i < process.curindex; i++) {
|
||||
const int *indices = process.indices[i];
|
||||
const int count = indices[2] != indices[3] ? 4 : 3;
|
||||
corners_num += count;
|
||||
}
|
||||
|
||||
mesh->totvert = int(process.co.size());
|
||||
CustomData_add_layer_named(
|
||||
&mesh->vdata, CD_PROP_FLOAT3, CD_CONSTRUCT, mesh->totvert, "position");
|
||||
Mesh *mesh = BKE_mesh_new_nomain(int(process.co.size()), 0, int(process.curindex), corners_num);
|
||||
mesh->vert_positions_for_write().copy_from(process.co);
|
||||
|
||||
mesh->totpoly = int(process.curindex);
|
||||
BKE_mesh_poly_offsets_ensure_alloc(mesh);
|
||||
blender::MutableSpan<int> poly_offsets = mesh->poly_offsets_for_write();
|
||||
int *corner_verts = static_cast<int *>(CustomData_add_layer_named(
|
||||
&mesh->ldata, CD_PROP_INT32, CD_CONSTRUCT, mesh->totpoly * 4, ".corner_vert"));
|
||||
blender::MutableSpan<int> corner_verts = mesh->corner_verts_for_write();
|
||||
|
||||
int loop_offset = 0;
|
||||
for (int i = 0; i < mesh->totpoly; i++) {
|
||||
@ -1490,9 +1489,6 @@ Mesh *BKE_mball_polygonize(Depsgraph *depsgraph, Scene *scene, Object *ob)
|
||||
sizeof(float[3]) * size_t(mesh->totvert));
|
||||
BKE_mesh_vert_normals_clear_dirty(mesh);
|
||||
|
||||
mesh->totloop = loop_offset;
|
||||
poly_offsets.last() = loop_offset;
|
||||
|
||||
BKE_mesh_calc_edges(mesh, false, false);
|
||||
|
||||
return mesh;
|
||||
|
Loading…
Reference in New Issue
Block a user