[Bf-blender-cvs] [fbfa2f81ff5] refactor-mesh-position-generic: Fix possible to remove mesh position attribute
Hans Goudey
noreply at git.blender.org
Fri Sep 16 00:06:54 CEST 2022
Commit: fbfa2f81ff55ebdccbfcd2db3b94048aeec2cb1d
Author: Hans Goudey
Date: Thu Sep 15 13:30:47 2022 -0500
Branches: refactor-mesh-position-generic
https://developer.blender.org/rBfbfa2f81ff55ebdccbfcd2db3b94048aeec2cb1d
Fix possible to remove mesh position attribute
===================================================================
M source/blender/blenkernel/BKE_mesh.h
M source/blender/blenkernel/intern/attribute.cc
M source/blender/blenkernel/intern/mesh.cc
M source/blender/blenkernel/intern/mesh_convert.cc
===================================================================
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index e15fade91c8..333ad60025a 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -184,6 +184,8 @@ struct Mesh *BKE_mesh_new_nomain_from_curve(const struct Object *ob);
struct Mesh *BKE_mesh_new_nomain_from_curve_displist(const struct Object *ob,
const struct ListBase *dispbase);
+bool BKE_mesh_attribute_required(const char *name);
+
bool BKE_mesh_ensure_facemap_customdata(struct Mesh *me);
bool BKE_mesh_clear_facemap_customdata(struct Mesh *me);
diff --git a/source/blender/blenkernel/intern/attribute.cc b/source/blender/blenkernel/intern/attribute.cc
index bd3e452b7f2..747b17c6035 100644
--- a/source/blender/blenkernel/intern/attribute.cc
+++ b/source/blender/blenkernel/intern/attribute.cc
@@ -31,6 +31,7 @@
#include "BKE_curves.hh"
#include "BKE_customdata.h"
#include "BKE_editmesh.h"
+#include "BKE_mesh.h"
#include "BKE_pointcloud.h"
#include "BKE_report.h"
@@ -456,6 +457,8 @@ bool BKE_id_attribute_required(const ID *id, const char *name)
return BKE_pointcloud_attribute_required((const PointCloud *)id, name);
case ID_CV:
return BKE_curves_attribute_required((const Curves *)id, name);
+ case ID_ME:
+ return BKE_mesh_attribute_required(name);
default:
return false;
}
diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc
index 2a968567d2a..44c9e3e6c42 100644
--- a/source/blender/blenkernel/intern/mesh.cc
+++ b/source/blender/blenkernel/intern/mesh.cc
@@ -763,6 +763,11 @@ const char *BKE_mesh_cmp(Mesh *me1, Mesh *me2, float thresh)
return nullptr;
}
+bool BKE_mesh_attribute_required(const char *name)
+{
+ return StringRef(name) == "position";
+}
+
void BKE_mesh_ensure_skin_customdata(Mesh *me)
{
BMesh *bm = me->edit_mesh ? me->edit_mesh->bm : nullptr;
diff --git a/source/blender/blenkernel/intern/mesh_convert.cc b/source/blender/blenkernel/intern/mesh_convert.cc
index ed201106be2..21aa64f64e7 100644
--- a/source/blender/blenkernel/intern/mesh_convert.cc
+++ b/source/blender/blenkernel/intern/mesh_convert.cc
@@ -1331,7 +1331,7 @@ void BKE_mesh_nomain_to_meshkey(Mesh *mesh_src, Mesh *mesh_dst, KeyBlock *kb)
{
BLI_assert(mesh_src->id.tag & LIB_TAG_NO_MAIN);
- int a, totvert = mesh_src->totvert;
+ const int totvert = mesh_src->totvert;
if (totvert == 0 || mesh_dst->totvert == 0 || mesh_dst->totvert != totvert) {
return;
More information about the Bf-blender-cvs
mailing list