[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