[Bf-blender-cvs] [0a96b035cf3] gsoc-2021-porting-modifiers-to-nodes-solidify: make selection work for complex mode
Fabian Schempp
noreply at git.blender.org
Thu Jun 10 21:02:06 CEST 2021
Commit: 0a96b035cf39c4d1f4e7e7a5359ea264fc0405a3
Author: Fabian Schempp
Date: Thu Jun 10 20:03:50 2021 +0200
Branches: gsoc-2021-porting-modifiers-to-nodes-solidify
https://developer.blender.org/rB0a96b035cf39c4d1f4e7e7a5359ea264fc0405a3
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 21db024d3a6..84facf0fba2 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -494,9 +494,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},
};
@@ -9555,12 +9555,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