[Bf-blender-cvs] [a102b60d92e] refactor-mesh-sharp-face-generic: Merge branch 'master' into refactor-mesh-sharp-face-generic
Hans Goudey
noreply at git.blender.org
Sun Jan 22 17:16:51 CET 2023
Commit: a102b60d92e85a02576a6d4c2eafaece4fa0ddd8
Author: Hans Goudey
Date: Sat Jan 21 15:52:35 2023 -0600
Branches: refactor-mesh-sharp-face-generic
https://developer.blender.org/rBa102b60d92e85a02576a6d4c2eafaece4fa0ddd8
Merge branch 'master' into refactor-mesh-sharp-face-generic
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/key.cc
index 3f17416e1e6,7d835c2464d..bb8375d0cd4
--- a/source/blender/blenkernel/intern/key.cc
+++ b/source/blender/blenkernel/intern/key.cc
@@@ -2272,12 -2272,10 +2272,12 @@@ void BKE_keyblock_mesh_calc_normals(con
vert_normals);
}
if (loop_normals_needed) {
- short(*clnors)[2] = static_cast<short(*)[2]>(
- CustomData_get_layer(&mesh->ldata, CD_CUSTOMLOOPNORMAL)); /* May be nullptr. */
+ short(*clnors)[2] = static_cast<short(*)[2]>(CustomData_get_layer_for_write(
+ &mesh->ldata, CD_CUSTOMLOOPNORMAL, mesh->totloop)); /* May be nullptr. */
const bool *sharp_edges = static_cast<const bool *>(
CustomData_get_layer_named(&mesh->edata, CD_PROP_BOOL, "sharp_edge"));
+ const bool *sharp_faces = static_cast<const bool *>(
+ CustomData_get_layer_named(&mesh->pdata, CD_PROP_BOOL, "sharp_face"));
BKE_mesh_normals_loop_split(positions,
vert_normals,
mesh->totvert,
diff --cc source/blender/blenkernel/intern/mesh.cc
index c1f9bba7659,71275444028..9de9d829562
--- a/source/blender/blenkernel/intern/mesh.cc
+++ b/source/blender/blenkernel/intern/mesh.cc
@@@ -1841,11 -1843,11 +1845,12 @@@ void BKE_mesh_calc_normals_split_ex(Mes
const float split_angle = (mesh->flag & ME_AUTOSMOOTH) != 0 ? mesh->smoothresh : float(M_PI);
/* may be nullptr */
- short(*clnors)[2] = (short(*)[2])CustomData_get_layer(&mesh->ldata, CD_CUSTOMLOOPNORMAL);
+ short(*clnors)[2] = (short(*)[2])CustomData_get_layer_for_write(
+ &mesh->ldata, CD_CUSTOMLOOPNORMAL, mesh->totloop);
const bool *sharp_edges = static_cast<const bool *>(
CustomData_get_layer_named(&mesh->edata, CD_PROP_BOOL, "sharp_edge"));
-
+ const bool *sharp_faces = static_cast<const bool *>(
+ CustomData_get_layer_named(&mesh->pdata, CD_PROP_BOOL, "sharp_face"));
const Span<float3> positions = mesh->vert_positions();
const Span<MEdge> edges = mesh->edges();
const Span<MPoly> polys = mesh->polys();
diff --cc source/blender/blenkernel/intern/subdiv_ccg_material.cc
index d10b162f426,23f5371b504..424a11f0941
--- a/source/blender/blenkernel/intern/subdiv_ccg_material.cc
+++ b/source/blender/blenkernel/intern/subdiv_ccg_material.cc
@@@ -13,11 -13,11 +13,11 @@@
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
- typedef struct CCGMaterialFromMeshData {
+ struct CCGMaterialFromMeshData {
const Mesh *mesh;
- const MPoly *polys;
+ const bool *sharp_faces;
const int *material_indices;
- } CCGMaterialFromMeshData;
+ };
static DMFlagMat subdiv_ccg_material_flags_eval(
SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator, const int coarse_face_index)
diff --cc source/blender/blenkernel/intern/subsurf_ccg.cc
index ad4d902fb41,a3c634bff89..a4e043556b4
--- a/source/blender/blenkernel/intern/subsurf_ccg.cc
+++ b/source/blender/blenkernel/intern/subsurf_ccg.cc
@@@ -1594,15 -1568,15 +1565,18 @@@ static void set_ccgdm_all_geometry(CCGD
medge = dm->getEdgeArray(dm);
- const int *material_indices = CustomData_get_layer_named(
- &dm->polyData, CD_MPOLY, "material_index");
- const bool *sharp_faces = CustomData_get_layer_named(&dm->polyData, CD_PROP_BOOL, "sharp_face");
- const int *base_polyOrigIndex = CustomData_get_layer(&dm->polyData, CD_ORIGINDEX);
+ const MPoly *mpoly = static_cast<const MPoly *>(CustomData_get_layer(&dm->polyData, CD_MPOLY));
+ const int *material_indices = static_cast<const int *>(
+ CustomData_get_layer_named(&dm->polyData, CD_MPOLY, "material_index"));
++ const bool *sharp_faces = static_cast<const bool *>(
++ CustomData_get_layer_named(&dm->polyData, CD_PROP_BOOL, "sharp_face"));
+
- int *vertOrigIndex = DM_get_vert_data_layer(&ccgdm->dm, CD_ORIGINDEX);
- int *edgeOrigIndex = DM_get_edge_data_layer(&ccgdm->dm, CD_ORIGINDEX);
+ const int *base_polyOrigIndex = static_cast<const int *>(
+ CustomData_get_layer(&dm->polyData, CD_ORIGINDEX));
- int *polyOrigIndex = DM_get_poly_data_layer(&ccgdm->dm, CD_ORIGINDEX);
+ int *vertOrigIndex = static_cast<int *>(DM_get_vert_data_layer(&ccgdm->dm, CD_ORIGINDEX));
+ int *edgeOrigIndex = static_cast<int *>(DM_get_edge_data_layer(&ccgdm->dm, CD_ORIGINDEX));
+ int *polyOrigIndex = static_cast<int *>(DM_get_poly_data_layer(&ccgdm->dm, CD_ORIGINDEX));
has_edge_cd = ((ccgdm->dm.edgeData.totlayer - (edgeOrigIndex ? 1 : 0)) != 0);
diff --cc source/blender/io/collada/MeshImporter.cpp
index 9719b1ffa47,52eb852e1ed..5531e62de6c
--- a/source/blender/io/collada/MeshImporter.cpp
+++ b/source/blender/io/collada/MeshImporter.cpp
@@@ -625,12 -625,6 +625,12 @@@ void MeshImporter::read_polys(COLLADAFW
MaterialIdPrimitiveArrayMap mat_prim_map;
int *material_indices = BKE_mesh_material_indices_for_write(me);
- bool *sharp_faces = (bool *)CustomData_duplicate_referenced_layer_named(
- &me->pdata, CD_PROP_BOOL, "material_index", me->totpoly);
++ bool *sharp_faces = (bool *)CustomData_get_layer_named_for_write(
++ &me->pdata, CD_PROP_BOOL, "sharp_face", me->totpoly);
+ if (sharp_faces) {
+ sharp_faces = (bool *)CustomData_add_layer_named(
+ &me->pdata, CD_PROP_BOOL, CD_SET_DEFAULT, NULL, me->totpoly, "sharp_face");
+ }
COLLADAFW::MeshPrimitiveArray &prim_arr = collada_mesh->getMeshPrimitives();
COLLADAFW::MeshVertexData &nor = collada_mesh->getNormals();
diff --cc source/blender/makesdna/intern/dna_rename_defs.h
index c386c303534,ab543eb611f..66257873c9d
--- a/source/blender/makesdna/intern/dna_rename_defs.h
+++ b/source/blender/makesdna/intern/dna_rename_defs.h
@@@ -84,8 -87,17 +87,18 @@@ DNA_STRUCT_RENAME_ELEM(LineartGpencilMo
DNA_STRUCT_RENAME_ELEM(LineartGpencilModifierData, transparency_flags, mask_switches)
DNA_STRUCT_RENAME_ELEM(LineartGpencilModifierData, transparency_mask, material_mask_bits)
DNA_STRUCT_RENAME_ELEM(MDefCell, totinfluence, influences_num)
+ DNA_STRUCT_RENAME_ELEM(MEdge, bweight, bweight_legacy)
+ DNA_STRUCT_RENAME_ELEM(MEdge, crease, crease_legacy)
++DNA_STRUCT_RENAME_ELEM(MPoly, flag, flag_legacy)
+ DNA_STRUCT_RENAME_ELEM(MPoly, mat_nr, mat_nr_legacy)
+ DNA_STRUCT_RENAME_ELEM(MVert, bweight, bweight_legacy)
+ DNA_STRUCT_RENAME_ELEM(MVert, co, co_legacy)
+ DNA_STRUCT_RENAME_ELEM(MVert, flag, flag_legacy)
DNA_STRUCT_RENAME_ELEM(MaskLayer, restrictflag, visibility_flag)
DNA_STRUCT_RENAME_ELEM(MaterialLineArt, transparency_mask, material_mask_bits)
+ DNA_STRUCT_RENAME_ELEM(Mesh, loc, texspace_location)
+ DNA_STRUCT_RENAME_ELEM(Mesh, size, texspace_size)
+ DNA_STRUCT_RENAME_ELEM(Mesh, texflag, texspace_flag)
DNA_STRUCT_RENAME_ELEM(MeshDeformModifierData, totcagevert, cage_verts_num)
DNA_STRUCT_RENAME_ELEM(MeshDeformModifierData, totinfluence, influences_num)
DNA_STRUCT_RENAME_ELEM(MeshDeformModifierData, totvert, verts_num)
diff --cc source/blender/modifiers/intern/MOD_normal_edit.cc
index 8ec68021069,d6089372da6..9b373bbe121
--- a/source/blender/modifiers/intern/MOD_normal_edit.cc
+++ b/source/blender/modifiers/intern/MOD_normal_edit.cc
@@@ -557,14 -562,14 +566,15 @@@ static Mesh *normalEditModifier_do(Norm
bke::SpanAttributeWriter<bool> sharp_edges = attributes.lookup_or_add_for_write_span<bool>(
"sharp_edge", ATTR_DOMAIN_EDGE);
- short(*clnors)[2] = static_cast<short(*)[2]>(CustomData_get_layer(ldata, CD_CUSTOMLOOPNORMAL));
+ short(*clnors)[2] = static_cast<short(*)[2]>(
+ CustomData_get_layer_for_write(ldata, CD_CUSTOMLOOPNORMAL, loops_num));
if (use_current_clnors) {
clnors = static_cast<short(*)[2]>(
- CustomData_duplicate_referenced_layer(ldata, CD_CUSTOMLOOPNORMAL, loops_num));
+ CustomData_get_layer_for_write(ldata, CD_CUSTOMLOOPNORMAL, loops_num));
loop_normals = static_cast<float(*)[3]>(
MEM_malloc_arrayN(size_t(loops_num), sizeof(*loop_normals), __func__));
-
+ const bool *sharp_faces = static_cast<const bool *>(
+ CustomData_get_layer_named(&result->pdata, CD_PROP_BOOL, "sharp_face"));
BKE_mesh_normals_loop_split(positions,
vert_normals,
verts_num,
diff --cc source/blender/modifiers/intern/MOD_solidify_extrude.cc
index 2f671b041e4,2c51c430e1e..3ef6099959f
--- a/source/blender/modifiers/intern/MOD_solidify_extrude.cc
+++ b/source/blender/modifiers/intern/MOD_solidify_extrude.cc
@@@ -1082,8 -1088,9 +1088,8 @@@ Mesh *MOD_solidify_extrude_modifyMesh(M
/* copy most of the face settings */
CustomData_copy_data(
- &mesh->pdata, &result->pdata, (int)pidx, (int)((polys_num * stride) + i), 1);
- mp->loopstart = (int)(j + (loops_num * stride));
+ &mesh->pdata, &result->pdata, int(pidx), int((polys_num * stride) + i), 1);
+ mp->loopstart = int(j + (loops_num * stride));
- mp->flag = mpoly[pidx].flag;
/* notice we use 'mp->totloop' which is later overwritten,
* we could lookup the original face but there's no point since this is a copy
diff --cc source/blender/modifiers/intern/MOD_solidify_nonmanifold.cc
index 8a5f9a2c8e1,53ebf814a26..cec4c040710
--- a/source/blender/modifiers/intern/MOD_solidify_nonmanifold.cc
+++ b/source/blender/modifiers/intern/MOD_solidify_nonmanifold.cc
@@@ -2564,8 -2595,9 +2593,8 @@@ Mesh *MOD_solidify_nonmanifold_modifyMe
0) +
(fr->reversed != do_flip ? mat_ofs : 0);
CLAMP(dst_material_index[poly_index], 0, mat_nr_max);
- mpoly[poly_index].flag = fr->face->flag;
if (fr->reversed != do_flip) {
- for (int l = (int)k - 1; l >= 0; l--) {
+ for (int l = int(k) - 1; l >= 0; l--) {
if (shell_defgrp_index != -1) {
BKE_defvert_ensure_index(&dst_dvert[face_verts[l]], shell_defgrp_index)->weight =
1.0f;
More information about the Bf-blender-cvs
mailing list