[Bf-blender-cvs] [f5f2e685f55] soc-2021-porting-modifiers-to-nodes_all: Merge branch 'soc-2021-porting-modifiers-to-nodes-extrude' into soc-2021-porting-modifiers-to-nodes

Fabian Schempp noreply at git.blender.org
Thu Aug 19 22:07:11 CEST 2021


Commit: f5f2e685f5530ba5bc67b0f0285c0413afe3b8be
Author: Fabian Schempp
Date:   Tue Aug 17 22:33:55 2021 +0200
Branches: soc-2021-porting-modifiers-to-nodes_all
https://developer.blender.org/rBf5f2e685f5530ba5bc67b0f0285c0413afe3b8be

Merge branch 'soc-2021-porting-modifiers-to-nodes-extrude' into soc-2021-porting-modifiers-to-nodes

# Conflicts:
#	release/scripts/startup/nodeitems_builtins.py
#	source/blender/blenkernel/BKE_node.h
#	source/blender/bmesh/intern/bmesh_mesh.c
#	source/blender/bmesh/intern/bmesh_mesh.h

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



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

diff --cc release/scripts/startup/nodeitems_builtins.py
index 7a1c2c0a859,1bc1a2555a5..5d0c9218e5a
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@@ -553,9 -552,7 +553,10 @@@ geometry_node_categories = 
          NodeItem("GeometryNodeEdgeSplit"),
          NodeItem("GeometryNodeSubdivisionSurface"),
          NodeItem("GeometryNodeMeshSubdivide"),
+         NodeItem("GeometryNodeMeshInset"),
 +        NodeItem("GeometryNodeCollapse"),
 +        NodeItem("GeometryNodeUnsubdivide"),
 +        NodeItem("GeometryNodeDissolve"),
      ]),
      GeometryNodeCategory("GEO_PRIMITIVES_MESH", "Mesh Primitives", items=[
          NodeItem("GeometryNodeMeshCircle"),
diff --cc source/blender/blenkernel/BKE_node.h
index 14448bd7c85,c9f5777109a..94a64694601
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@@ -1476,10 -1476,8 +1476,11 @@@ int ntreeTexExecTree(struct bNodeTree *
  #define GEO_NODE_CURVE_TRIM 1071
  #define GEO_NODE_CURVE_SET_HANDLES 1072
  #define GEO_NODE_CURVE_SPLINE_TYPE 1073
- #define GEO_NODE_CURVE_SELECT_HANDLES 1074
- #define GEO_NODE_COLLAPSE 1075
- #define GEO_NODE_UNSUBDIVIDE 1076
- #define GEO_NODE_DISSOLVE 1077
+ #define GEO_NODE_MESH_INSET 1074
 -
++#define GEO_NODE_CURVE_SELECT_HANDLES 1075
++#define GEO_NODE_COLLAPSE 1076
++#define GEO_NODE_UNSUBDIVIDE 1077
++#define GEO_NODE_DISSOLVE 1078
  /** \} */
  
  /* -------------------------------------------------------------------- */
diff --cc source/blender/blenkernel/intern/node.cc
index 8a8fb7561b6,1c990c409f6..27c6a27cc3b
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@@ -5157,8 -5155,8 +5157,9 @@@ static void registerGeometryNodes(
    register_node_type_geo_curve_to_points();
    register_node_type_geo_curve_trim();
    register_node_type_geo_delete_geometry();
 +  register_node_type_geo_dissolve();
    register_node_type_geo_edge_split();
+   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 --cc source/blender/bmesh/intern/bmesh_mesh.c
index ef89451a587,bf123ee23f2..5ab9e803467
--- a/source/blender/bmesh/intern/bmesh_mesh.c
+++ b/source/blender/bmesh/intern/bmesh_mesh.c
@@@ -1446,78 -1446,120 +1446,194 @@@ void BM_mesh_vert_coords_apply_with_mat
    }
  }
  
+ /**
+ * Use to select  bmesh vertex data based on an array of bool.
+ */
+ void BM_select_vertices(BMesh *bm, const bool *mask)
+ {
+   BMIter iter;
+   BMVert *v;
+   int i;
+   BM_ITER_MESH_INDEX (v, &iter, bm, BM_VERTS_OF_MESH, i) {
+     BM_elem_flag_set(v, BM_ELEM_SELECT, mask[i]);
+   }
+ }
+ 
+ /**
+  * Use to select bmesh edge data based on an array of bool.
+  */
+ void BM_select_edges(BMesh *bm, const bool *mask)
+ {
+   BMIter iter;
+   BMEdge *e;
+   int i;
+   BM_ITER_MESH_INDEX (e, &iter, bm, BM_EDGES_OF_MESH, i) {
+     BM_elem_flag_set(e, BM_ELEM_SELECT, mask[i]);
+   }
+ }
+ 
+ /**
+  * Use to select bmesh face data based on an array of bool.
+  */
+ void BM_select_faces(BMesh *bm, const bool *mask)
+ {
+   BMIter iter;
+   BMFace *f;
+   int i = 0;
+   BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
+     BM_elem_flag_set(f, BM_ELEM_SELECT, mask[i]);
+   }
+ }
+ 
+ void BM_get_selected_faces(BMesh *bm, bool *selection)
+ {
+   BMIter iter;
+   BMFace *f;
+   int i = 0;
+   BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
+     selection[i] = BM_elem_flag_test(f, BM_ELEM_SELECT);
+   }
+ }
+ 
+ void BM_get_tagged_faces(BMesh *bm, bool *selection)
+ {
+   BMIter iter;
+   BMFace *f;
+   int i;
+   BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
+     selection[i] = BM_elem_flag_test(f, BM_ELEM_TAG);
+   }
+ }
+ 
+ void BM_tag_new_faces(BMesh *bm, BMOperator *b_mesh_operator)
+ {
+   BMIter iter;
+   BMFace *f;
+   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);
+   }
+ }
+ 
+ void BM_tag_vertices(BMesh *bm, const bool *mask)
+ {
+   BMIter iter;
+   BMVert *v;
+   int i;
+   BM_ITER_MESH_INDEX (v, &iter, bm, BM_VERTS_OF_MESH, i) {
+     BM_elem_flag_set(v, BM_ELEM_TAG, mask[i]);
+   }
+ }
+ 
+ /**
+  * Use to temporary tag bmesh edge data based on an array of bool.
+  */
+ void BM_tag_edges(BMesh *bm, const bool *mask)
+ {
+   BMIter iter;
+   BMEdge *e;
+   int i;
+   BM_ITER_MESH_INDEX (e, &iter, bm, BM_EDGES_OF_MESH, i) {
+     BM_elem_flag_set(e, BM_ELEM_TAG, mask[i]);
+   }
+ }
+ 
+ /**
+  * Use to temporary tag bmesh face data based on an array of bool.
+  */
+ void BM_tag_faces(BMesh *bm, const bool *mask)
+ {
+   BMIter iter;
+   BMFace *f;
+   int i;
+   BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
+     BM_elem_flag_set(f, BM_ELEM_TAG, mask[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);
+     }
+   }
+ }
 +/**
 + * Use to select  bmesh vertex data based on an array of bool.
 + */
 +void BM_select_vertices(BMesh *bm, const bool *mask)
 +{
 +  BMIter iter;
 +  BMVert *v;
 +  int i;
 +  BM_ITER_MESH_INDEX (v, &iter, bm, BM_VERTS_OF_MESH, i) {
 +    BM_elem_flag_set(v, BM_ELEM_SELECT, mask[i]);
 +  }
 +}
 +
 +/**
 + * Use to select bmesh edge data based on an array of bool.
 + */
 +void BM_select_edges(BMesh *bm, const bool *mask)
 +{
 +  BMIter iter;
 +  BMEdge *e;
 +  int i;
 +  BM_ITER_MESH_INDEX (e, &iter, bm, BM_EDGES_OF_MESH, i) {
 +    BM_elem_flag_set(e, BM_ELEM_SELECT, mask[i]);
 +  }
 +}
 +
 +/**
 + * Use to select bmesh face data based on an array of bool.
 + */
 +void BM_select_faces(BMesh *bm, const bool *mask)
 +{
 +  BMIter iter;
 +  BMFace *f;
 +  int i;
 +  BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
 +    BM_elem_flag_set(f, BM_ELEM_SELECT, mask[i]);
 +  }
 +}
 +
 +void BM_tag_vertices(BMesh *bm, const bool *mask)
 +{
 +  BMIter iter;
 +  BMVert *v;
 +  int i;
 +  BM_ITER_MESH_INDEX (v, &iter, bm, BM_VERTS_OF_MESH, i) {
 +    BM_elem_flag_set(v, BM_ELEM_TAG, mask[i]);
 +  }
 +}
 +
 +/**
 + * Use to temporary tag bmesh edge data based on an array of bool.
 + */
 +void BM_tag_edges(BMesh *bm, const bool *mask)
 +{
 +  BMIter iter;
 +  BMEdge *e;
 +  int i;
 +  BM_ITER_MESH_INDEX (e, &iter, bm, BM_EDGES_OF_MESH, i) {
 +    BM_elem_flag_set(e, BM_ELEM_TAG, mask[i]);
 +  }
 +}
 +
 +/**
 + * Use to temporary tag bmesh face data based on an array of bool.
 + */
 +void BM_tag_faces(BMesh *bm, const bool *mask)
 +{
 +  BMIter iter;
 +  BMFace *f;
 +  int i;
 +  BM_ITER_MESH_INDEX (f, &iter, bm, BM_FACES_OF_MESH, i) {
 +    BM_elem_flag_set(f, BM_ELEM_TAG, mask[i]);
 +  }
 +}
  /** \} */
diff --cc source/blender/bmesh/intern/bmesh_mesh.h
index 5928da51d1e,f1cb8bf0880..674f46373c6
--- a/source/blender/bmesh/intern/bmesh_mesh.h
+++ b/source/blender/bmesh/intern/bmesh_mesh.h
@@@ -134,9 -134,14 +134,21 @@@ void BM_mesh_vert_coords_apply(BMesh *b
  void BM_mesh_vert_coords_apply_with_mat4(BMesh *bm,
                                           const float (*vert_coords)[3],
                                           const float mat[4][4]);
+ 
+ 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_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_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);
++
 +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_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);
diff --cc source/blender/nodes/CMakeLists.txt
index d8041b646f2,10dcf942b91..f726bc79ada
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@@ -184,8 -182,8 +184,9 @@@ set(SR
    geometry/nodes/node_geo_curve_to_points.cc
    geometry/nodes/node_geo_curve_trim.cc
    geometry/nodes/node_geo_delete_geometry.cc
 +  geometry/nodes/node_geo_dissolve.cc
    geometry/nodes/node_geo_edge_split.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 --cc source/blender/nodes/NOD_geometry.h
index 176c3eac289,26f81efca72..78da83d98eb
--- a/source/blender/nodes/NOD_geometry.h
+++ b/source/blender/nodes/NOD_geometry.h
@@@ -70,8 -69,8 +70,9 @@@ void register_node_type_geo_curve_to_me
  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_dissolve(void);
  void register_node_type_geo_edge_split(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 --cc source/blender/nodes/NOD_static_types.h
index 40a0d60fc51,cc5be95208c..bcf08764438
--- a/source/blender/nodes/NOD_static_types.h
+++ b/source/blender/nodes/NOD_static_types.h
@@@ -311,8 -309,8 +311,9 @@@ DefNode(GeometryNode, GEO_NODE_CURVE_TO
  DefNode(GeometryNode, GEO_NODE_CURVE_TO_POINTS, def_geo_curve_to_points, "CURVE_TO_POINTS", CurveToPoints, "Curve to Points", "")
  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_DISSOLVE, def_geo_dissolve, "DISSOLVE", Dissolve, "Dissolve

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list