[Bf-blender-cvs] [08fc5f1d8ea] gsoc-2021-porting-modifiers-to-nodes-solidify: make selection work for complex mode

Fabian Schempp noreply at git.blender.org
Tue Jun 22 10:49:50 CEST 2021


Commit: 08fc5f1d8ea40d4b781c41f58e11f88b7729325b
Author: Fabian Schempp
Date:   Thu Jun 10 20:03:50 2021 +0200
Branches: gsoc-2021-porting-modifiers-to-nodes-solidify
https://developer.blender.org/rB08fc5f1d8ea40d4b781c41f58e11f88b7729325b

make selection work for complex mode

===================================================================

M	source/blender/blenkernel/intern/solidify_nonmanifold.c
M	source/blender/makesrna/intern/rna_nodetree.c

===================================================================

diff --git a/source/blender/blenkernel/intern/solidify_nonmanifold.c b/source/blender/blenkernel/intern/solidify_nonmanifold.c
index 3c987c22069..8f9e7a9c3a9 100644
--- a/source/blender/blenkernel/intern/solidify_nonmanifold.c
+++ b/source/blender/blenkernel/intern/solidify_nonmanifold.c
@@ -154,7 +154,9 @@ static void get_vgroup(
 /* NOLINTNEXTLINE: readability-function-size */
 Mesh *solidify_nonmanifold(const SolidifyData *solidify_data, Mesh *mesh)
 {
-  printf("solidify nonmanifold: %f, %i\n", solidify_data->offset, solidify_data->flag);
+  //printf("solidify nonmanifold: %f, %i\n", solidify_data->offset, solidify_data->flag);
+  printf("selection data non manifold %f\n",solidify_data->selection[3]);
+
   Mesh *result;
 
   MVert *mv, *mvert, *orig_mvert;
@@ -202,7 +204,7 @@ Mesh *solidify_nonmanifold(const SolidifyData *solidify_data, Mesh *mesh)
 
   get_vgroup(solidify_data->object, mesh, solidify_data->defgrp_name, &dvert, &defgrp_index);
 
-  const bool do_flat_faces = dvert && (solidify_data->flag & MOD_SOLIDIFY_NONMANIFOLD_FLAT_FACES);
+  const bool do_flat_faces = solidify_data->flag & MOD_SOLIDIFY_NONMANIFOLD_FLAT_FACES;
 
   orig_mvert = mesh->mvert;
   orig_medge = mesh->medge;
@@ -1400,6 +1402,7 @@ Mesh *solidify_nonmanifold(const SolidifyData *solidify_data, Mesh *mesh)
     float *face_weight = NULL;
 
     if (do_flat_faces) {
+      printf('DO FLAT FACES\n');
       face_weight = MEM_malloc_arrayN(numPolys, sizeof(*face_weight), "face_weight in solidify");
 
       mp = orig_mpoly;
@@ -1410,11 +1413,10 @@ Mesh *solidify_nonmanifold(const SolidifyData *solidify_data, Mesh *mesh)
         for (int j = mp->loopstart; j < loopend; j++, ml++) {
           MDeformVert *dv = &dvert[ml->v];
           if (defgrp_invert) {
-            scalar_vgroup = min_ff(1.0f - BKE_defvert_find_weight(dv, defgrp_index),
-                                   scalar_vgroup);
+            scalar_vgroup = min_ff(1.0f - solidify_data->selection[i],scalar_vgroup);
           }
           else {
-            scalar_vgroup = min_ff(BKE_defvert_find_weight(dv, defgrp_index), scalar_vgroup);
+            scalar_vgroup = min_ff(solidify_data->selection[i], scalar_vgroup);
           }
         }
         scalar_vgroup = offset_fac_vg + (scalar_vgroup * offset_fac_vg_inv);
@@ -1800,13 +1802,13 @@ Mesh *solidify_nonmanifold(const SolidifyData *solidify_data, Mesh *mesh)
             }
             float scalar_vgroup = 1;
             /* Use vertex group. */
-            if (dvert && !do_flat_faces) {
-              MDeformVert *dv = &dvert[i];
+            if (!do_flat_faces) {
+              //MDeformVert *dv = &dvert[i];
               if (defgrp_invert) {
-                scalar_vgroup = 1.0f - BKE_defvert_find_weight(dv, defgrp_index);
+                scalar_vgroup = 1.0f - solidify_data->selection[i];
               }
               else {
-                scalar_vgroup = BKE_defvert_find_weight(dv, defgrp_index);
+                scalar_vgroup = solidify_data->selection[i];
               }
               scalar_vgroup = offset_fac_vg + (scalar_vgroup * offset_fac_vg_inv);
             }
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index cd8bf90786d..7f0b2bcf0a6 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -499,9 +499,9 @@ static const EnumPropertyItem rna_node_geometry_solidify_offset_mode[] = {
 };
 
 static const EnumPropertyItem rna_node_geometry_solidify_boundary_mode[] = {
-    {0, "MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE", 0, "Simple", "Simple"},
-    {1, "MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_ROUND",0, "Complex", "Complex"},
-    {2, "MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_FLAT",0, "Complex", "Complex"},
+    {0, "MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE", 0, "None", "None"},
+    {1, "MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_ROUND",0, "Round", "Round"},
+    {2, "MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_FLAT",0, "Flat", "Flat"},
     {0, NULL, 0, NULL, NULL},
 };
 
@@ -9572,12 +9572,12 @@ static void def_geo_solidify(StructRNA *srna)
 
   prop = RNA_def_property(srna, "nonmanifold_offset_mode", PROP_ENUM, PROP_NONE);
   RNA_def_property_enum_items(prop, rna_node_geometry_solidify_offset_mode);
-  RNA_def_property_ui_text(prop, "Mode", "");
+  RNA_def_property_ui_text(prop, "Thickness", "");
   RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
 
   prop = RNA_def_property(srna, "nonmanifold_boundary_mode", PROP_ENUM, PROP_NONE);
   RNA_def_property_enum_items(prop, rna_node_geometry_solidify_boundary_mode);
-  RNA_def_property_ui_text(prop, "Mode", "");
+  RNA_def_property_ui_text(prop, "Boundary", "");
   RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
 }



More information about the Bf-blender-cvs mailing list