[Bf-blender-cvs] [943b919fe80] master: Geometry Nodes: Remove legacy node code

Hans Goudey noreply at git.blender.org
Wed Mar 16 14:51:27 CET 2022


Commit: 943b919fe807b53558631bcbc688c2d712d6b0cc
Author: Hans Goudey
Date:   Wed Mar 16 08:51:11 2022 -0500
Branches: master
https://developer.blender.org/rB943b919fe807b53558631bcbc688c2d712d6b0cc

Geometry Nodes: Remove legacy node code

This commit removes the implementations of legacy nodes,
their type definitions, and related code that becomes unused.
Now that we have two releases that included the legacy nodes,
there is not much reason to include them still. Removing the
code means refactoring will be easier, and old code doesn't
have to be tested and maintained.

After this commit, the legacy nodes will be undefined in the UI,
so 3.0 or 3.1 should be used to convert files to the fields system.

The net change is 12184 lines removed!

The tooltip for legacy nodes mentioned that we would remove
them before 4.0, which was purposefully a bit vague to allow
us this flexibility. In a poll in a devtalk post showed that the
majority of people were okay with removing the nodes.
https://devtalk.blender.org/t/geometry-nodes-backward-compatibility-poll/20199

Differential Revision: https://developer.blender.org/D14353

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

M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/node.cc
M	source/blender/blenloader/intern/versioning_290.c
M	source/blender/blenloader/intern/versioning_300.c
M	source/blender/editors/space_node/link_drag_search.cc
M	source/blender/editors/space_node/node_add.cc
M	source/blender/editors/space_node/node_draw.cc
M	source/blender/editors/space_node/node_intern.hh
M	source/blender/editors/space_node/node_ops.cc
M	source/blender/editors/space_node/node_view.cc
M	source/blender/editors/space_node/space_node.cc
M	source/blender/makesdna/DNA_node_types.h
M	source/blender/makesrna/intern/rna_color.c
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/modifiers/intern/MOD_nodes.cc
M	source/blender/modifiers/intern/MOD_nodes_evaluator.cc
M	source/blender/nodes/NOD_function.h
M	source/blender/nodes/NOD_geometry.h
M	source/blender/nodes/NOD_geometry_nodes_eval_log.hh
M	source/blender/nodes/NOD_static_types.h
M	source/blender/nodes/function/CMakeLists.txt
D	source/blender/nodes/function/nodes/legacy/node_fn_random_float.cc
M	source/blender/nodes/geometry/CMakeLists.txt
M	source/blender/nodes/geometry/node_geometry_util.cc
M	source/blender/nodes/geometry/node_geometry_util.hh
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_align_rotation_to_vector.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_clamp.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_color_ramp.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_combine_xyz.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_compare.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_convert.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_curve_map.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_fill.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_map_range.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_math.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_mix.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_proximity.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_randomize.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_remove.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_sample_texture.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_separate_xyz.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_transfer.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_vector_math.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_attribute_vector_rotate.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_curve_endpoints.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_curve_reverse.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_curve_select_by_handle_type.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_curve_set_handles.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_curve_spline_type.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_curve_subdivide.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_curve_to_points.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_delete_geometry.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_edge_split.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_material_assign.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_mesh_to_curve.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_distribute.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_instance.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_rotate.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_scale.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_separate.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_translate.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_points_to_volume.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_raycast.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_select_by_material.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_subdivision_surface.cc
D	source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_volume_to_mesh.cc
M	source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc

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

diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 904f06f2734..3e964b038c4 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -1363,37 +1363,13 @@ struct TexResult;
  * \{ */
 
 #define GEO_NODE_TRIANGULATE 1000
-#define GEO_NODE_LEGACY_EDGE_SPLIT 1001
 #define GEO_NODE_TRANSFORM 1002
 #define GEO_NODE_MESH_BOOLEAN 1003
-#define GEO_NODE_LEGACY_POINT_DISTRIBUTE 1004
-#define GEO_NODE_LEGACY_POINT_INSTANCE 1005
-#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
 #define GEO_NODE_JOIN_GEOMETRY 1010
-#define GEO_NODE_LEGACY_ATTRIBUTE_FILL 1011
-#define GEO_NODE_LEGACY_ATTRIBUTE_MIX 1012
-#define GEO_NODE_LEGACY_ATTRIBUTE_COLOR_RAMP 1013
-#define GEO_NODE_LEGACY_POINT_SEPARATE 1014
-#define GEO_NODE_LEGACY_ATTRIBUTE_COMPARE 1015
-#define GEO_NODE_LEGACY_POINT_ROTATE 1016
-#define GEO_NODE_LEGACY_ATTRIBUTE_VECTOR_MATH 1017
-#define GEO_NODE_LEGACY_ALIGN_ROTATION_TO_VECTOR 1018
-#define GEO_NODE_LEGACY_POINT_TRANSLATE 1019
-#define GEO_NODE_LEGACY_POINT_SCALE 1020
-#define GEO_NODE_LEGACY_ATTRIBUTE_SAMPLE_TEXTURE 1021
-#define GEO_NODE_LEGACY_POINTS_TO_VOLUME 1022
 #define GEO_NODE_COLLECTION_INFO 1023
 #define GEO_NODE_IS_VIEWPORT 1024
-#define GEO_NODE_LEGACY_ATTRIBUTE_PROXIMITY 1025
-#define GEO_NODE_LEGACY_VOLUME_TO_MESH 1026
-#define GEO_NODE_LEGACY_ATTRIBUTE_COMBINE_XYZ 1027
-#define GEO_NODE_LEGACY_ATTRIBUTE_SEPARATE_XYZ 1028
 #define GEO_NODE_SUBDIVIDE_MESH 1029
-#define GEO_NODE_LEGACY_ATTRIBUTE_REMOVE 1030
-#define GEO_NODE_LEGACY_ATTRIBUTE_CONVERT 1031
 #define GEO_NODE_MESH_PRIMITIVE_CUBE 1032
 #define GEO_NODE_MESH_PRIMITIVE_CIRCLE 1033
 #define GEO_NODE_MESH_PRIMITIVE_UV_SPHERE 1034
@@ -1402,28 +1378,15 @@ struct TexResult;
 #define GEO_NODE_MESH_PRIMITIVE_CONE 1037
 #define GEO_NODE_MESH_PRIMITIVE_LINE 1038
 #define GEO_NODE_MESH_PRIMITIVE_GRID 1039
-#define GEO_NODE_LEGACY_ATTRIBUTE_MAP_RANGE 1040
-#define GEO_NODE_LEGACY_ATTRIBUTE_CLAMP 1041
 #define GEO_NODE_BOUNDING_BOX 1042
 #define GEO_NODE_SWITCH 1043
-#define GEO_NODE_LEGACY_ATTRIBUTE_TRANSFER 1044
 #define GEO_NODE_CURVE_TO_MESH 1045
-#define GEO_NODE_LEGACY_ATTRIBUTE_CURVE_MAP 1046
 #define GEO_NODE_RESAMPLE_CURVE 1047
-#define GEO_NODE_LEGACY_ATTRIBUTE_VECTOR_ROTATE 1048
-#define GEO_NODE_LEGACY_MATERIAL_ASSIGN 1049
 #define GEO_NODE_INPUT_MATERIAL 1050
 #define GEO_NODE_REPLACE_MATERIAL 1051
-#define GEO_NODE_LEGACY_MESH_TO_CURVE 1052
-#define GEO_NODE_LEGACY_DELETE_GEOMETRY 1053
 #define GEO_NODE_CURVE_LENGTH 1054
-#define GEO_NODE_LEGACY_SELECT_BY_MATERIAL 1055
 #define GEO_NODE_CONVEX_HULL 1056
-#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
-#define GEO_NODE_LEGACY_RAYCAST 1061
 #define GEO_NODE_CURVE_PRIMITIVE_STAR 1062
 #define GEO_NODE_CURVE_PRIMITIVE_SPIRAL 1063
 #define GEO_NODE_CURVE_PRIMITIVE_QUADRATIC_BEZIER 1064
@@ -1431,12 +1394,8 @@ struct TexResult;
 #define GEO_NODE_CURVE_PRIMITIVE_CIRCLE 1066
 #define GEO_NODE_VIEWER 1067
 #define GEO_NODE_CURVE_PRIMITIVE_LINE 1068
-#define GEO_NODE_LEGACY_CURVE_ENDPOINTS 1069
 #define GEO_NODE_CURVE_PRIMITIVE_QUADRILATERAL 1070
 #define GEO_NODE_TRIM_CURVE 1071
-#define GEO_NODE_LEGACY_CURVE_SET_HANDLES 1072
-#define GEO_NODE_LEGACY_CURVE_SPLINE_TYPE 1073
-#define GEO_NODE_LEGACY_CURVE_SELECT_HANDLES 1074
 #define GEO_NODE_FILL_CURVE 1075
 #define GEO_NODE_INPUT_POSITION 1076
 #define GEO_NODE_SET_POSITION 1077
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index 9a573919165..83eb831b177 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -532,13 +532,6 @@ void ntreeBlendWrite(BlendWriter *writer, bNodeTree *ntree)
           ELEM(node->type, SH_NODE_CURVE_VEC, SH_NODE_CURVE_RGB, SH_NODE_CURVE_FLOAT)) {
         BKE_curvemapping_blend_write(writer, (const CurveMapping *)node->storage);
       }
-      else if ((ntree->type == NTREE_GEOMETRY) &&
-               (node->type == GEO_NODE_LEGACY_ATTRIBUTE_CURVE_MAP)) {
-        BLO_write_struct_by_name(writer, node->typeinfo->storagename, node->storage);
-        NodeAttributeCurveMap *data = (NodeAttributeCurveMap *)node->storage;
-        BKE_curvemapping_blend_write(writer, (const CurveMapping *)data->curve_vec);
-        BKE_curvemapping_blend_write(writer, (const CurveMapping *)data->curve_rgb);
-      }
       else if (ntree->type == NTREE_SHADER && (node->type == SH_NODE_SCRIPT)) {
         NodeShaderScript *nss = (NodeShaderScript *)node->storage;
         if (nss->bytecode) {
@@ -715,18 +708,6 @@ void ntreeBlendReadData(BlendDataReader *reader, bNodeTree *ntree)
           BKE_curvemapping_blend_read(reader, (CurveMapping *)node->storage);
           break;
         }
-        case GEO_NODE_LEGACY_ATTRIBUTE_CURVE_MAP: {
-          NodeAttributeCurveMap *data = (NodeAttributeCurveMap *)node->storage;
-          BLO_read_data_address(reader, &data->curve_vec);
-          if (data->curve_vec) {
-            BKE_curvemapping_blend_read(reader, data->curve_vec);
-          }
-          BLO_read_data_address(reader, &data->curve_rgb);
-          if (data->curve_rgb) {
-            BKE_curvemapping_blend_read(reader, data->curve_rgb);
-          }
-          break;
-        }
         case SH_NODE_SCRIPT: {
           NodeShaderScript *nss = (NodeShaderScript *)node->storage;
           BLO_read_data_address(reader, &nss->bytecode);
@@ -3616,15 +3597,13 @@ void nodeSetActive(bNodeTree *ntree, bNode *node)
   LISTBASE_FOREACH (bNode *, tnode, &ntree->nodes) {
     tnode->flag &= ~NODE_ACTIVE;
 
-    if ((node->typeinfo->nclass == NODE_CLASS_TEXTURE) ||
-        (node->typeinfo->type == GEO_NODE_LEGACY_ATTRIBUTE_SAMPLE_TEXTURE)) {
+    if ((node->typeinfo->nclass == NODE_CLASS_TEXTURE)) {
       tnode->flag &= ~NODE_ACTIVE_TEXTURE;
     }
   }
 
   node->flag |= NODE_ACTIVE;
-  if ((node->typeinfo->nclass == NODE_CLASS_TEXTURE) ||
-      (node->typeinfo->type == GEO_NODE_LEGACY_ATTRIBUTE_SAMPLE_TEXTURE)) {
+  if ((node->typeinfo->nclass == NODE_CLASS_TEXTURE)) {
     node->flag |= NODE_ACTIVE_TEXTURE;
   }
 }
@@ -4692,45 +4671,10 @@ static void registerGeometryNodes()
 {
   register_node_type_geo_group();
 
-  register_node_type_geo_legacy_attribute_proximity();
-  register_node_type_geo_legacy_attribute_randomize();
-  register_node_type_geo_legacy_attribute_remove();
-  register_node_type_geo_legacy_attribute_transfer();
-  register_node_type_geo_legacy_curve_endpoints();
-  register_node_type_geo_legacy_curve_reverse();
-  register_node_type_geo_legacy_curve_set_handles();
-  register_node_type_geo_legacy_curve_spline_type();
-  register_node_type_geo_legacy_curve_subdivide();
-  register_node_type_geo_legacy_curve_to_points();
-  register_node_type_geo_legacy_delete_geometry();
-  register_node_type_geo_legacy_edge_split();
-  register_node_type_geo_legacy_material_assign();
-  register_node_type_geo_legacy_mesh_to_curve();
-  register_node_type_geo_legacy_points_to_volume();
-  register_node_type_geo_legacy_raycast();
-  register_node_type_geo_legacy_select_by_handle_type();
-  register_node_type_geo_legacy_select_by_material();
-  register_node_type_geo_legacy_subdivision_surface();
-  register_node_type_geo_legacy_volume_to_mesh();
-
   register_node_type_geo_accumulate_field();
-  register_node_type_geo_align_rotation_to_vector();
   register_node_type_geo_attribute_capture();
-  register_node_type_geo_attribute_clamp();
-  register_node_type_geo_attribute_color_ramp();
-  register_node_type_geo_attribute_combine_xyz();
-  register_node_type_geo_attribute_compare();
-  register_node_type_geo_attribute_convert();
-  register_node_type_geo_attribute_curve_map();
   register_node_type_geo_attribute_domain_size();
-  register_node_type_geo_attribute_fill();
-  register_node_type_geo_attribute_map_range();
-  register_node_type_geo_attribute_math();
-  register_node_type_geo_attribute_mix();
-  register_node_type_geo_attribute_separate_xyz();
   register_node_type_geo_attribute_statistic();
-  register_node_type_geo_attribute_vector_math();
-  register_node_type_geo_attribute_vector_rotate();
   register_node_type_geo_boolean();
   register_node_type_geo_bounding_box();
   register_node_type_geo_collection_info();
@@ -4811,12 +4755,6 @@ static void registerGeometryNodes()
   register_node_type_geo_mesh_to_curve();
   register_node_type_geo_mesh_to_points();
   register_node_type_geo_object_info();
-  register_node_type_geo_point_distribute();
-  register_node_type_geo_point_instance();
-  register_node_type_geo_point_rotate();
-  register_node_type_geo_point_scale();
-  register_node_type_geo_point_separate();
-  register_node_type_geo_point_translate();
   register_node_type_geo_points_to_vertices();
   register_node_type_geo_points_to_volume();
   register_node_type_geo_proximity();
@@ -4824,7 +4762,6 @@ static void registerGeometryNodes()
   register_node_type_geo_realize_instances();
   register_node_type_geo_remove_attribute();
   register_node_type_geo_rotate_instances();
-  register_node_type_geo_sample_texture();
   register_node_type_geo_scale_elements();
   register_node_type_geo_scale_instances();
   register_node_type_geo_separate_components();
@@ -4855,8 +4792,6 @@ static void registerGeometryNodes()
 
 static void registerFunctionNodes()
 {
-  register_node_type_fn_legacy_random_float();
-
   register_node_type_fn_align_euler_to_vector();
   register_node_type_fn_boolean_math();
   register_node_type_fn_compare();
diff --git a/source/blender/blenloader/intern/versioning_290.c b/source/blender/blenloader/intern/versioning_290.c
index 3ae26dea767..079d69be4d9 100644
--- a/source/blender/blenloader/intern/versioning_290.c
+++ b/source/blender/blenloader/intern/versioning_290.c
@@ -1510,27 +1510,6 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
   }
 
   if (!MAIN_VERSION_ATLEAST(bmain, 292, 9)) {
-    FOREACH_NODETREE_BEGIN (bmain, ntree, id) {
-      if (ntree->type == NTREE_GEOMETRY) {
-  

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list