[Bf-blender-cvs] [f35ea668a11] master: Geometry Nodes: Move more nodes to legacy - Curve to Points: Needs output sockets - Curve Endpoitns: Needs the same output sockets - Edge Split: Should have a selection input instead - Subdivision Surface: Should not use "crease" implicitly All new versions of these nodes should also not implicitly realize instances.

Hans Goudey noreply at git.blender.org
Tue Sep 28 18:03:45 CEST 2021


Commit: f35ea668a11d80fb37526f637f95db2c79eb1e91
Author: Hans Goudey
Date:   Tue Sep 28 11:03:12 2021 -0500
Branches: master
https://developer.blender.org/rBf35ea668a11d80fb37526f637f95db2c79eb1e91

Geometry Nodes: Move more nodes to legacy
- Curve to Points: Needs output sockets
- Curve Endpoitns: Needs the same output sockets
- Edge Split: Should have a selection input instead
- Subdivision Surface: Should not use "crease" implicitly
All new versions of these nodes should also not implicitly
realize instances.

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

M	release/scripts/startup/nodeitems_builtins.py
M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenloader/intern/versioning_300.c
M	source/blender/nodes/CMakeLists.txt
M	source/blender/nodes/NOD_static_types.h
R098	source/blender/nodes/geometry/nodes/node_geo_curve_endpoints.cc	source/blender/nodes/geometry/nodes/legacy/node_geo_curve_endpoints.cc
R099	source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc	source/blender/nodes/geometry/nodes/legacy/node_geo_curve_to_points.cc
R096	source/blender/nodes/geometry/nodes/node_geo_edge_split.cc	source/blender/nodes/geometry/nodes/legacy/node_geo_edge_split.cc
R098	source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc	source/blender/nodes/geometry/nodes/legacy/node_geo_subdivision_surface.cc

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

diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index 88a0782a102..2c13d4eac9b 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -519,11 +519,11 @@ geometry_node_categories = [
         NodeItem("GeometryNodeLegacyCurveSetHandles", poll=geometry_nodes_fields_legacy_poll),
         NodeItem("GeometryNodeLegacyCurveSelectHandles", poll=geometry_nodes_fields_legacy_poll),
         NodeItem("GeometryNodeLegacyMeshToCurve", poll=geometry_nodes_fields_legacy_poll),
+        NodeItem("GeometryNodeLegacyCurveToPoints", poll=geometry_nodes_fields_legacy_poll),
+        NodeItem("GeometryNodeLegacyCurveEndpoints", poll=geometry_nodes_fields_legacy_poll),
 
         NodeItem("GeometryNodeCurveToMesh"),
         NodeItem("GeometryNodeCurveResample"),
-        NodeItem("GeometryNodeCurveToPoints"),
-        NodeItem("GeometryNodeCurveEndpoints"),
         NodeItem("GeometryNodeCurveFill"),
         NodeItem("GeometryNodeCurveTrim"),
         NodeItem("GeometryNodeCurveLength"),
@@ -576,10 +576,11 @@ geometry_node_categories = [
         NodeItem("GeometryNodeMaterialReplace"),
     ]),
     GeometryNodeCategory("GEO_MESH", "Mesh", items=[
+        NodeItem("GeometryNodeLegacyEdgeSplit", poll=geometry_nodes_fields_legacy_poll),
+        NodeItem("GeometryNodeLegacySubdivisionSurface", poll=geometry_nodes_fields_legacy_poll),
+
         NodeItem("GeometryNodeBoolean"),
         NodeItem("GeometryNodeTriangulate"),
-        NodeItem("GeometryNodeEdgeSplit"),
-        NodeItem("GeometryNodeSubdivisionSurface"),
         NodeItem("GeometryNodeMeshSubdivide"),
     ]),
     GeometryNodeCategory("GEO_PRIMITIVES_MESH", "Mesh Primitives", items=[
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index eb146231b41..16d4eb51d31 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -1411,12 +1411,12 @@ int ntreeTexExecTree(struct bNodeTree *ntree,
  * \{ */
 
 #define GEO_NODE_TRIANGULATE 1000
-#define GEO_NODE_EDGE_SPLIT 1001
+#define GEO_NODE_LEGACY_EDGE_SPLIT 1001
 #define GEO_NODE_TRANSFORM 1002
 #define GEO_NODE_BOOLEAN 1003
 #define GEO_NODE_LEGACY_POINT_DISTRIBUTE 1004
 #define GEO_NODE_LEGACY_POINT_INSTANCE 1005
-#define GEO_NODE_SUBDIVISION_SURFACE 1006
+#define GEO_NODE_LEGACY_SUBDIVISION_SURFACE 1006
 #define GEO_NODE_OBJECT_INFO 1007
 #define GEO_NODE_LEGACY_ATTRIBUTE_RANDOMIZE 1008
 #define GEO_NODE_LEGACY_ATTRIBUTE_MATH 1009
@@ -1467,7 +1467,7 @@ int ntreeTexExecTree(struct bNodeTree *ntree,
 #define GEO_NODE_CURVE_LENGTH 1054
 #define GEO_NODE_LEGACY_SELECT_BY_MATERIAL 1055
 #define GEO_NODE_CONVEX_HULL 1056
-#define GEO_NODE_CURVE_TO_POINTS 1057
+#define GEO_NODE_LEGACY_CURVE_TO_POINTS 1057
 #define GEO_NODE_LEGACY_CURVE_REVERSE 1058
 #define GEO_NODE_SEPARATE_COMPONENTS 1059
 #define GEO_NODE_LEGACY_CURVE_SUBDIVIDE 1060
@@ -1479,7 +1479,7 @@ int ntreeTexExecTree(struct bNodeTree *ntree,
 #define GEO_NODE_CURVE_PRIMITIVE_CIRCLE 1066
 #define GEO_NODE_VIEWER 1067
 #define GEO_NODE_CURVE_PRIMITIVE_LINE 1068
-#define GEO_NODE_CURVE_ENDPOINTS 1069
+#define GEO_NODE_LEGACY_CURVE_ENDPOINTS 1069
 #define GEO_NODE_CURVE_PRIMITIVE_QUADRILATERAL 1070
 #define GEO_NODE_CURVE_TRIM 1071
 #define GEO_NODE_LEGACY_CURVE_SET_HANDLES 1072
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index b88978d1683..86755cbaf95 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -682,10 +682,8 @@ static bool geometry_node_is_293_legacy(const short node_type)
   switch (node_type) {
     /* Not legacy: No attribute inputs or outputs. */
     case GEO_NODE_TRIANGULATE:
-    case GEO_NODE_EDGE_SPLIT:
     case GEO_NODE_TRANSFORM:
     case GEO_NODE_BOOLEAN:
-    case GEO_NODE_SUBDIVISION_SURFACE:
     case GEO_NODE_IS_VIEWPORT:
     case GEO_NODE_MESH_SUBDIVIDE:
     case GEO_NODE_MESH_PRIMITIVE_CUBE:
@@ -732,16 +730,16 @@ static bool geometry_node_is_293_legacy(const short node_type)
     case GEO_NODE_COLLECTION_INFO:
       return false;
 
-    /* Maybe legacy: Transferred *all* attributes before, will not transfer all built-ins now. */
-    case GEO_NODE_CURVE_ENDPOINTS:
-    case GEO_NODE_CURVE_TO_POINTS:
-      return false;
-
-    /* Maybe legacy: Special case for grid names? Or finish patch from level set branch to generate
-     * a mesh for all grids in the volume. */
+    /* Maybe legacy: Special case for grid names? Or finish patch from level set branch to
+     * generate a mesh for all grids in the volume. */
     case GEO_NODE_VOLUME_TO_MESH:
       return false;
 
+    /* Legacy: Transferred *all* attributes before, will not transfer all built-ins now. */
+    case GEO_NODE_LEGACY_CURVE_ENDPOINTS:
+    case GEO_NODE_LEGACY_CURVE_TO_POINTS:
+      return true;
+
     /* Legacy: Attribute operation completely replaced by field nodes. */
     case GEO_NODE_LEGACY_ATTRIBUTE_RANDOMIZE:
     case GEO_NODE_LEGACY_ATTRIBUTE_MATH:
@@ -778,15 +776,17 @@ static bool geometry_node_is_293_legacy(const short node_type)
     case GEO_NODE_LEGACY_CURVE_SET_HANDLES:
       return true;
 
-    /* Legacy: More complex attribute inputs or outputs. */
-    case GEO_NODE_LEGACY_DELETE_GEOMETRY:    /* Needs field input, domain drop-down. */
-    case GEO_NODE_LEGACY_CURVE_SUBDIVIDE:    /* Needs field count input. */
-    case GEO_NODE_LEGACY_POINTS_TO_VOLUME:   /* Needs field radius input. */
-    case GEO_NODE_LEGACY_SELECT_BY_MATERIAL: /* Output anonymous attribute. */
-    case GEO_NODE_LEGACY_POINT_TRANSLATE:    /* Needs field inputs. */
-    case GEO_NODE_LEGACY_POINT_INSTANCE:     /* Needs field inputs. */
-    case GEO_NODE_LEGACY_POINT_DISTRIBUTE:   /* Needs field input, remove max for random mode. */
-    case GEO_NODE_LEGACY_ATTRIBUTE_CONVERT:  /* Attribute Capture, Store Attribute. */
+      /* Legacy: More complex attribute inputs or outputs. */
+    case GEO_NODE_LEGACY_SUBDIVISION_SURFACE: /* Used "crease" attribute. */
+    case GEO_NODE_LEGACY_EDGE_SPLIT:          /* Needs selection input version. */
+    case GEO_NODE_LEGACY_DELETE_GEOMETRY:     /* Needs field input, domain drop-down. */
+    case GEO_NODE_LEGACY_CURVE_SUBDIVIDE:     /* Needs field count input. */
+    case GEO_NODE_LEGACY_POINTS_TO_VOLUME:    /* Needs field radius input. */
+    case GEO_NODE_LEGACY_SELECT_BY_MATERIAL:  /* Output anonymous attribute. */
+    case GEO_NODE_LEGACY_POINT_TRANSLATE:     /* Needs field inputs. */
+    case GEO_NODE_LEGACY_POINT_INSTANCE:      /* Needs field inputs. */
+    case GEO_NODE_LEGACY_POINT_DISTRIBUTE:    /* Needs field input, remove max for random mode. */
+    case GEO_NODE_LEGACY_ATTRIBUTE_CONVERT:   /* Attribute Capture, Store Attribute. */
       return true;
   }
   return false;
@@ -1269,7 +1269,7 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
     FOREACH_NODETREE_BEGIN (bmain, ntree, id) {
       if (ntree->type == NTREE_GEOMETRY) {
         LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
-          if (node->type == GEO_NODE_SUBDIVISION_SURFACE) {
+          if (node->type == GEO_NODE_LEGACY_SUBDIVISION_SURFACE) {
             if (node->storage == NULL) {
               NodeGeometrySubdivisionSurface *data = MEM_callocN(
                   sizeof(NodeGeometrySubdivisionSurface), __func__);
@@ -1340,11 +1340,6 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
   }
 
   if (!MAIN_VERSION_ATLEAST(bmain, 300, 22)) {
-    LISTBASE_FOREACH (bNodeTree *, ntree, &bmain->nodetrees) {
-      if (ntree->type == NTREE_GEOMETRY) {
-        version_geometry_nodes_change_legacy_names(ntree);
-      }
-    }
     if (!DNA_struct_elem_find(
             fd->filesdna, "LineartGpencilModifierData", "bool", "use_crease_on_smooth")) {
       LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
@@ -1536,5 +1531,11 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
         }
       }
     }
+
+    LISTBASE_FOREACH (bNodeTree *, ntree, &bmain->nodetrees) {
+      if (ntree->type == NTREE_GEOMETRY) {
+        version_geometry_nodes_change_legacy_names(ntree);
+      }
+    }
   }
 }
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index bb67d931963..9ce3d59c121 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -165,12 +165,15 @@ set(SRC
   geometry/nodes/legacy/node_geo_attribute_transfer.cc
   geometry/nodes/legacy/node_geo_attribute_vector_math.cc
   geometry/nodes/legacy/node_geo_attribute_vector_rotate.cc
+  geometry/nodes/legacy/node_geo_curve_endpoints.cc
   geometry/nodes/legacy/node_geo_curve_reverse.cc
   geometry/nodes/legacy/node_geo_curve_select_by_handle_type.cc
   geometry/nodes/legacy/node_geo_curve_set_handles.cc
   geometry/nodes/legacy/node_geo_curve_spline_type.cc
   geometry/nodes/legacy/node_geo_curve_subdivide.cc
+  geometry/nodes/legacy/node_geo_curve_to_points.cc
   geometry/nodes/legacy/node_geo_delete_geometry.cc
+  geometry/nodes/legacy/node_geo_edge_split.cc
   geometry/nodes/legacy/node_geo_material_assign.cc
   geometry/nodes/legacy/node_geo_mesh_to_curve.cc
   geometry/nodes/legacy/node_geo_point_distribute.cc
@@ -182,6 +185,7 @@ set(SRC
   geometry/nodes/legacy/node_geo_points_to_volume.cc
   geometry/nodes/legacy/node_geo_raycast.cc
   geometry/nodes/legacy/node_geo_select_by_material.cc
+  geometry/nodes/legacy/node_geo_subdivision_surface.cc
 
   geometry/nodes/node_geo_attribute_capture.cc
   geometry/nodes/node_geo_attribute_remove.cc
@@ -192,7 +196,6 @@ set(SRC
   geometry/nodes/node_geo_common.cc
   geometry/nodes/node_geo_convex_hull.cc
   geometry/nodes/node_geo_curve_sample.cc
-  geometry/nodes/node_geo_curve_endpoints.cc
   geometry/nodes/node_geo_curve_fill.cc
   geometry/nodes/node_geo_curve_length.cc
   geometry/nodes/node_geo_curve_parameter.cc
@@ -206,10 +209,8 @@ set(SRC
   geometry/nodes/node_geo_curve_resample.cc
   geometry/nodes/node_geo_curve_fillet.cc
   geometry/nodes/node_geo_curve_to_mesh.cc
-  geometry/nodes/node_geo_curve_to_poin

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list