Fix T51856: `BKE_mesh_new_from_object()` would often generate default 'Mesh' named datablock.
This is annoying especially for exporters who do use mesh name, since it broke any relation with actual Mesh naming in original Blend file. Unfortunately, we cannot avoid the extra .xxx digits. ;)
This commit is contained in:
parent
9e08019b74
commit
af35455912
Notes:
blender-bot
2023-02-14 19:37:43 +01:00
Referenced by issue blender/blender-addons#51856, FBX: Apply Modifiers in the export settings causes mesh data block names to change for meshes with applied modifier
|
@ -110,7 +110,8 @@ int BKE_mesh_nurbs_displist_to_mdata(
|
|||
struct MEdge **r_alledge, int *r_totedge,
|
||||
struct MLoop **r_allloop, struct MPoly **r_allpoly,
|
||||
struct MLoopUV **r_alluv, int *r_totloop, int *r_totpoly);
|
||||
void BKE_mesh_from_nurbs_displist(struct Object *ob, struct ListBase *dispbase, const bool use_orco_uv);
|
||||
void BKE_mesh_from_nurbs_displist(
|
||||
struct Object *ob, struct ListBase *dispbase, const bool use_orco_uv, const char *obdata_name);
|
||||
void BKE_mesh_from_nurbs(struct Object *ob);
|
||||
void BKE_mesh_to_curve_nurblist(struct DerivedMesh *dm, struct ListBase *nurblist, const int edge_users_test);
|
||||
void BKE_mesh_to_curve(struct Scene *scene, struct Object *ob);
|
||||
|
|
|
@ -1339,7 +1339,7 @@ int BKE_mesh_nurbs_displist_to_mdata(
|
|||
|
||||
|
||||
/* this may fail replacing ob->data, be sure to check ob->type */
|
||||
void BKE_mesh_from_nurbs_displist(Object *ob, ListBase *dispbase, const bool use_orco_uv)
|
||||
void BKE_mesh_from_nurbs_displist(Object *ob, ListBase *dispbase, const bool use_orco_uv, const char *obdata_name)
|
||||
{
|
||||
Main *bmain = G.main;
|
||||
Object *ob1;
|
||||
|
@ -1366,7 +1366,7 @@ void BKE_mesh_from_nurbs_displist(Object *ob, ListBase *dispbase, const bool use
|
|||
}
|
||||
|
||||
/* make mesh */
|
||||
me = BKE_mesh_add(bmain, "Mesh");
|
||||
me = BKE_mesh_add(bmain, obdata_name);
|
||||
me->totvert = totvert;
|
||||
me->totedge = totedge;
|
||||
me->totloop = totloop;
|
||||
|
@ -1386,7 +1386,7 @@ void BKE_mesh_from_nurbs_displist(Object *ob, ListBase *dispbase, const bool use
|
|||
BKE_mesh_calc_normals(me);
|
||||
}
|
||||
else {
|
||||
me = BKE_mesh_add(bmain, "Mesh");
|
||||
me = BKE_mesh_add(bmain, obdata_name);
|
||||
DM_to_mesh(dm, me, ob, CD_MASK_MESH, false);
|
||||
}
|
||||
|
||||
|
@ -1428,7 +1428,7 @@ void BKE_mesh_from_nurbs(Object *ob)
|
|||
disp = ob->curve_cache->disp;
|
||||
}
|
||||
|
||||
BKE_mesh_from_nurbs_displist(ob, &disp, use_orco_uv);
|
||||
BKE_mesh_from_nurbs_displist(ob, &disp, use_orco_uv, cu->id.name);
|
||||
}
|
||||
|
||||
typedef struct EdgeLink {
|
||||
|
@ -2487,7 +2487,7 @@ Mesh *BKE_mesh_new_from_object(
|
|||
|
||||
/* convert object type to mesh */
|
||||
uv_from_orco = (tmpcu->flag & CU_UV_ORCO) != 0;
|
||||
BKE_mesh_from_nurbs_displist(tmpobj, &dispbase, uv_from_orco);
|
||||
BKE_mesh_from_nurbs_displist(tmpobj, &dispbase, uv_from_orco, tmpcu->id.name + 2);
|
||||
|
||||
tmpmesh = tmpobj->data;
|
||||
|
||||
|
@ -2523,7 +2523,7 @@ Mesh *BKE_mesh_new_from_object(
|
|||
if (ob != basis_ob)
|
||||
return NULL; /* only do basis metaball */
|
||||
|
||||
tmpmesh = BKE_mesh_add(bmain, "Mesh");
|
||||
tmpmesh = BKE_mesh_add(bmain, ((ID *)ob->data)->name + 2);
|
||||
/* BKE_mesh_add gives us a user count we don't need */
|
||||
id_us_min(&tmpmesh->id);
|
||||
|
||||
|
@ -2578,7 +2578,7 @@ Mesh *BKE_mesh_new_from_object(
|
|||
else
|
||||
dm = mesh_create_derived_view(sce, ob, mask);
|
||||
|
||||
tmpmesh = BKE_mesh_add(bmain, "Mesh");
|
||||
tmpmesh = BKE_mesh_add(bmain, ((ID *)ob->data)->name + 2);
|
||||
DM_to_mesh(dm, tmpmesh, ob, mask, true);
|
||||
|
||||
/* Copy autosmooth settings from original mesh. */
|
||||
|
|
Loading…
Reference in New Issue