[Bf-blender-cvs] [a28e5189178] soc-2021-porting-modifiers-to-nodes-extrude: Changes based on review by Hans Goudey (HooglyBoogly)

Fabian Schempp noreply at git.blender.org
Fri Aug 13 23:57:21 CEST 2021


Commit: a28e5189178359d09b1869528f0a97030ab309bd
Author: Fabian Schempp
Date:   Fri Aug 13 23:57:13 2021 +0200
Branches: soc-2021-porting-modifiers-to-nodes-extrude
https://developer.blender.org/rBa28e5189178359d09b1869528f0a97030ab309bd

Changes based on review by Hans Goudey (HooglyBoogly)

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

M	release/scripts/startup/nodeitems_builtins.py
M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/node.cc
M	source/blender/bmesh/intern/bmesh_mesh.c
M	source/blender/bmesh/intern/bmesh_mesh.h
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/NOD_geometry.h
M	source/blender/nodes/NOD_static_types.h
R053	source/blender/nodes/geometry/nodes/node_geo_extrude.cc	source/blender/nodes/geometry/nodes/node_geo_mesh_inset.cc

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

diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index c66d8d3feac..1bc1a2555a5 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -552,7 +552,7 @@ geometry_node_categories = [
         NodeItem("GeometryNodeEdgeSplit"),
         NodeItem("GeometryNodeSubdivisionSurface"),
         NodeItem("GeometryNodeMeshSubdivide"),
-        NodeItem("GeometryNodeExtrude"),
+        NodeItem("GeometryNodeMeshInset"),
     ]),
     GeometryNodeCategory("GEO_PRIMITIVES_MESH", "Mesh Primitives", items=[
         NodeItem("GeometryNodeMeshCircle"),
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index bfa3c58cbe2..c9f5777109a 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -1476,7 +1476,7 @@ int ntreeTexExecTree(struct bNodeTree *ntree,
 #define GEO_NODE_CURVE_TRIM 1071
 #define GEO_NODE_CURVE_SET_HANDLES 1072
 #define GEO_NODE_CURVE_SPLINE_TYPE 1073
-#define GEO_NODE_EXTRUDE 1074
+#define GEO_NODE_MESH_INSET 1074
 
 /** \} */
 
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index d30d0509867..1c990c409f6 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -5156,7 +5156,7 @@ static void registerGeometryNodes()
   register_node_type_geo_curve_trim();
   register_node_type_geo_delete_geometry();
   register_node_type_geo_edge_split();
-  register_node_type_geo_extrude();
+  register_node_type_geo_mesh_inset();
   register_node_type_geo_input_material();
   register_node_type_geo_is_viewport();
   register_node_type_geo_join_geometry();
diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c
index 217c3502b40..bf123ee23f2 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.c
+++ b/source/blender/bmesh/intern/bmesh_mesh.c
@@ -1453,10 +1453,9 @@ void BM_select_vertices(BMesh *bm, const bool *mask)
 {
   BMIter iter;
   BMVert *v;
-  int i = 0;
-  BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
+  int i;
+  BM_ITER_MESH_INDEX (v, &iter, bm, BM_VERTS_OF_MESH, i) {
     BM_elem_flag_set(v, BM_ELEM_SELECT, mask[i]);
-    i++;
   }
 }
 
@@ -1467,10 +1466,9 @@ void BM_select_edges(BMesh *bm, const bool *mask)
 {
   BMIter iter;
   BMEdge *e;
-  int i = 0;
-  BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) {
+  int i;
+  BM_ITER_MESH_INDEX (e, &iter, bm, BM_EDGES_OF_MESH, i) {
     BM_elem_flag_set(e, BM_ELEM_SELECT, mask[i]);
-    i++;
   }
 }
 
@@ -1482,34 +1480,28 @@ void BM_select_faces(BMesh *bm, const bool *mask)
   BMIter iter;
   BMFace *f;
   int i = 0;
-  BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
+  BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
     BM_elem_flag_set(f, BM_ELEM_SELECT, mask[i]);
-    i++;
   }
 }
 
-void BM_get_selected_faces(BMesh *bm, bool **selection)
+void BM_get_selected_faces(BMesh *bm, bool *selection)
 {
   BMIter iter;
   BMFace *f;
   int i = 0;
-  *selection = MEM_malloc_arrayN((size_t)bm->totface, sizeof(bool), "bm faces");
-  BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
-    (*selection)[i] = BM_elem_flag_test(f, BM_ELEM_SELECT);
-    i++;
+  BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
+    selection[i] = BM_elem_flag_test(f, BM_ELEM_SELECT);
   }
-  // BMO_slot_map_elem_get()
 }
 
-void BM_get_tagged_faces(BMesh *bm, bool **selection)
+void BM_get_tagged_faces(BMesh *bm, bool *selection)
 {
   BMIter iter;
   BMFace *f;
-  int i = 0;
-  *selection = MEM_malloc_arrayN((size_t)bm->totface, sizeof(bool), "bm faces");
-  BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
-    (*selection)[i] = BM_elem_flag_test(f, BM_ELEM_TAG);
-    i++;
+  int i;
+  BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
+    selection[i] = BM_elem_flag_test(f, BM_ELEM_TAG);
   }
 }
 
@@ -1517,23 +1509,19 @@ void BM_tag_new_faces(BMesh *bm, BMOperator *b_mesh_operator)
 {
   BMIter iter;
   BMFace *f;
-  int i = 0;
-  //*selection = MEM_malloc_arrayN((size_t)bm->totface, sizeof(bool), "bm faces");
   BM_mesh_elem_hflag_disable_all(bm, BM_FACE, BM_ELEM_TAG, false);
   BMO_ITER (f, &iter, b_mesh_operator->slots_out, "faces.out", BM_FACE) {
     BM_elem_flag_enable(f, BM_ELEM_TAG);
   }
-  // BMO_slot_map_elem_get()
 }
 
 void BM_tag_vertices(BMesh *bm, const bool *mask)
 {
   BMIter iter;
   BMVert *v;
-  int i = 0;
-  BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
+  int i;
+  BM_ITER_MESH_INDEX (v, &iter, bm, BM_VERTS_OF_MESH, i) {
     BM_elem_flag_set(v, BM_ELEM_TAG, mask[i]);
-    i++;
   }
 }
 
@@ -1544,10 +1532,9 @@ void BM_tag_edges(BMesh *bm, const bool *mask)
 {
   BMIter iter;
   BMEdge *e;
-  int i = 0;
-  BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) {
+  int i;
+  BM_ITER_MESH_INDEX (e, &iter, bm, BM_EDGES_OF_MESH, i) {
     BM_elem_flag_set(e, BM_ELEM_TAG, mask[i]);
-    i++;
   }
 }
 
@@ -1558,10 +1545,21 @@ void BM_tag_faces(BMesh *bm, const bool *mask)
 {
   BMIter iter;
   BMFace *f;
-  int i = 0;
-  BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
+  int i;
+  BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
     BM_elem_flag_set(f, BM_ELEM_TAG, mask[i]);
-    i++;
+  }
+}
+
+void BM_untag_faces_by_tag(BMesh *bm, int tag)
+{
+  BMIter iter;
+  BMFace *f;
+  int i;
+  BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
+    if (BM_elem_flag_test(f, tag)) {
+      BM_elem_flag_disable(f, BM_ELEM_TAG);
+    }
   }
 }
 /** \} */
diff --git a/source/blender/bmesh/intern/bmesh_mesh.h b/source/blender/bmesh/intern/bmesh_mesh.h
index 99baaa1421f..f1cb8bf0880 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.h
+++ b/source/blender/bmesh/intern/bmesh_mesh.h
@@ -138,9 +138,10 @@ void BM_mesh_vert_coords_apply_with_mat4(BMesh *bm,
 void BM_select_vertices(BMesh *bm, const bool *mask);
 void BM_select_edges(BMesh *bm, const bool *mask);
 void BM_select_faces(BMesh *bm, const bool *mask);
-void BM_get_selected_faces(BMesh *bm, bool **selection);
+void BM_get_selected_faces(BMesh *bm, bool *selection);
 void BM_tag_vertices(BMesh *bm, const bool *mask);
 void BM_tag_edges(BMesh *bm, const bool *mask);
 void BM_tag_faces(BMesh *bm, const bool *mask);
-void BM_get_tagged_faces(BMesh *bm, bool **selection);
-void BM_tag_new_faces(BMesh *bm, BMOperator *b_mesh_operator);
\ No newline at end of file
+void BM_untag_faces_by_tag(BMesh *bm, int tag);
+void BM_get_tagged_faces(BMesh *bm, bool *selection);
+void BM_tag_new_faces(BMesh *bm, BMOperator *b_mesh_operator);
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 01e0f84f87e..802690b4bb6 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -10160,7 +10160,7 @@ static void def_geo_attribute_transfer(StructRNA *srna)
   RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
 }
 
-static void def_geo_extrude(StructRNA *srna)
+static void def_geo_mesh_inset(StructRNA *srna)
 {
   PropertyRNA *prop;
 
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index 7668d0f4f04..10dcf942b91 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -183,7 +183,7 @@ set(SRC
   geometry/nodes/node_geo_curve_trim.cc
   geometry/nodes/node_geo_delete_geometry.cc
   geometry/nodes/node_geo_edge_split.cc
-  geometry/nodes/node_geo_extrude.cc
+        geometry/nodes/node_geo_mesh_inset.cc
   geometry/nodes/node_geo_input_material.cc
   geometry/nodes/node_geo_is_viewport.cc
   geometry/nodes/node_geo_join_geometry.cc
diff --git a/source/blender/nodes/NOD_geometry.h b/source/blender/nodes/NOD_geometry.h
index 868c79ed2f6..26f81efca72 100644
--- a/source/blender/nodes/NOD_geometry.h
+++ b/source/blender/nodes/NOD_geometry.h
@@ -70,7 +70,7 @@ void register_node_type_geo_curve_to_points(void);
 void register_node_type_geo_curve_trim(void);
 void register_node_type_geo_delete_geometry(void);
 void register_node_type_geo_edge_split(void);
-void register_node_type_geo_extrude(void);
+void register_node_type_geo_mesh_inset(void);
 void register_node_type_geo_input_material(void);
 void register_node_type_geo_is_viewport(void);
 void register_node_type_geo_join_geometry(void);
diff --git a/source/blender/nodes/NOD_static_types.h b/source/blender/nodes/NOD_static_types.h
index 16ba3000fba..cc5be95208c 100644
--- a/source/blender/nodes/NOD_static_types.h
+++ b/source/blender/nodes/NOD_static_types.h
@@ -310,7 +310,7 @@ DefNode(GeometryNode, GEO_NODE_CURVE_TO_POINTS, def_geo_curve_to_points, "CURVE_
 DefNode(GeometryNode, GEO_NODE_CURVE_TRIM, def_geo_curve_trim, "CURVE_TRIM", CurveTrim, "Curve Trim", "")
 DefNode(GeometryNode, GEO_NODE_DELETE_GEOMETRY, 0, "DELETE_GEOMETRY", DeleteGeometry, "Delete Geometry", "")
 DefNode(GeometryNode, GEO_NODE_EDGE_SPLIT, 0, "EDGE_SPLIT", EdgeSplit, "Edge Split", "")
-DefNode(GeometryNode, GEO_NODE_EXTRUDE, def_geo_extrude, "EXTRUDE", Extrude, "Extrude", "")
+DefNode(GeometryNode, GEO_NODE_MESH_INSET, def_geo_mesh_inset, "MESH_INSET", MeshInset, "Mesh Inset", "")
 DefNode(GeometryNode, GEO_NODE_INPUT_MATERIAL, def_geo_input_material, "INPUT_MATERIAL", InputMaterial, "Material", "")
 DefNode(GeometryNode, GEO_NODE_IS_VIEWPORT, 0, "IS_VIEWPORT", IsViewport, "Is Viewport", "")
 DefNode(GeometryNode, GEO_NODE_JOIN_GEOMETRY, 0, "JOIN_GEOMETRY", JoinGeometry, "Join Geometry", "")
diff --git a/source/blender/nodes/geometry/nodes/node_geo_extrude.cc b/source/blender/nodes/geometry/nodes/node_geo_mesh_inset.cc
similarity index 53%
rename from source/blender/nodes/geometry/nodes/node_geo_extrude.cc
rename to source/blender/nodes/geometry/nodes/node_geo_mesh_inset.cc
index 67645b060dc..461e2303b95 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_extrude.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_mesh_inset.cc
@@ -28,12 +28,12 @@
 
 #include "node_geometry_util.hh"
 
-static bNodeSocketTemplate geo_node_extrude_in[] = {
+static bNodeSocketTemplate geo_node_mesh_inset_in[] = {
     {SOCK_GEOMETRY, N_("Geometry")},
     {SOCK_STRING, N_("Distance")},
     {SOCK_FLOAT, N_("Distance"), 0.0f, 0, 0, 0, FLT

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list