Commit: 6e58f6b30451725d7a28623f48c93c2a15eec166 Author: Fabian Schempp Date: Tue Aug 17 22:39:49 2021 +0200 Branches: soc-2021-porting-modifiers-to-nodes_all https://developer.blender.org/rB6e58f6b30451725d7a28623f48c93c2a15eec166
Merge branch 'soc-2021-porting-modifiers-to-nodes-remesh-blocks' into soc-2021-porting-modifiers-to-nodes # Conflicts: # release/scripts/startup/nodeitems_builtins.py # source/blender/blenkernel/BKE_node.h # source/blender/geometry/CMakeLists.txt # source/blender/makesrna/intern/rna_nodetree.c =================================================================== =================================================================== diff --cc release/scripts/startup/nodeitems_builtins.py index 05681087d57,b63fc0030a4..8c3ac752c14 --- a/release/scripts/startup/nodeitems_builtins.py +++ b/release/scripts/startup/nodeitems_builtins.py @@@ -554,11 -553,7 +554,12 @@@ geometry_node_categories = NodeItem("GeometryNodeEdgeSplit"), NodeItem("GeometryNodeSubdivisionSurface"), NodeItem("GeometryNodeMeshSubdivide"), + NodeItem("GeometryNodeRemeshBlocks"), + NodeItem("GeometryNodeMeshExtrude"), + 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 81257a8196c,ffcb3390c55..7c5853ab566 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@@ -1477,13 -1477,8 +1477,14 @@@ int ntreeTexExecTree(struct bNodeTree * #define GEO_NODE_CURVE_SET_HANDLES 1072 #define GEO_NODE_CURVE_SPLINE_TYPE 1073 #define GEO_NODE_CURVE_SELECT_HANDLES 1074 - #define GEO_NODE_MERGE_BY_DISTANCE 1075 + #define GEO_NODE_REMESH_BLOCKS 1075 - ++#define GEO_NODE_MERGE_BY_DISTANCE 1076 +#define GEO_NODE_MESH_EXTRUDE 1076 +#define GEO_NODE_MESH_INSET 1077 +#define GEO_NODE_CURVE_SELECT_HANDLES 1078 +#define GEO_NODE_COLLAPSE 1079 +#define GEO_NODE_UNSUBDIVIDE 1080 +#define GEO_NODE_DISSOLVE 1081 /** \} */ /* -------------------------------------------------------------------- */ diff --cc source/blender/blenkernel/intern/node.cc index 44ed5d00bea,d0053b61462..c3c22a2fa28 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@@ -5191,9 -5187,9 +5191,10 @@@ static void registerGeometryNodes( register_node_type_geo_separate_components(); register_node_type_geo_subdivision_surface(); register_node_type_geo_switch(); + register_node_type_geo_remesh_blocks(); register_node_type_geo_transform(); register_node_type_geo_triangulate(); + register_node_type_geo_unsubdivide(); register_node_type_geo_viewer(); register_node_type_geo_volume_to_mesh(); } diff --cc source/blender/geometry/CMakeLists.txt index df63a0ae081,d5a67b9c6ab..02f62ae05dc --- a/source/blender/geometry/CMakeLists.txt +++ b/source/blender/geometry/CMakeLists.txt @@@ -1,47 -1,46 +1,59 @@@ -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# ***** END GPL LICENSE BLOCK ***** + # ***** BEGIN GPL LICENSE BLOCK ***** + # + # This program is free software; you can redistribute it and/or + # modify it under the terms of the GNU General Public License + # as published by the Free Software Foundation; either version 2 + # of the License, or (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software Foundation, + # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + # + # The Original Code is Copyright (C) 2006, Blender Foundation + # All rights reserved. + # ***** END GPL LICENSE BLOCK ***** -set(INC - . - ../blenkernel - ../blenlib - ../makesdna - ../../../intern/guardedalloc -) + set(INC + . + ../blenfont + ../blenkernel + ../blenlib + ../blentranslation + ../functions + ../makesdna + ../makesrna + ../../../intern/guardedalloc + ../makesdna/intern + ${CMAKE_BINARY_DIR}/source/blender/makesdna/intern + ) -set(SRC - intern/remesh_blocks.c - GEO_mesh_remesh_blocks.h -) + set(SRC ++ intern/remesh_blocks.c ++ GEO_mesh_remesh_blocks.h + intern/mesh_merge_by_distance.c + intern/pointcloud_merge_by_distance.cc + GEO_mesh_merge_by_distance.h + GEO_pointcloud_merge_by_distance.h + ) -set(LIB - bf_blenkernel - bf_blenlib -) + set(LIB + bf_blenkernel + bf_blenlib + ) -if(WITH_REMESH_DUALCON) - list(APPEND INC - ../../../intern/dualcon - ) - list(APPEND LIB - bf_intern_dualcon - ) - add_definitions(-DWITH_REMESH_DUALCON) -endif() ++ if(WITH_REMESH_DUALCON) ++ list(APPEND INC ++ ../../../intern/dualcon ++ ) ++ list(APPEND LIB ++ bf_intern_dualcon ++ ) ++ add_definitions(-DWITH_REMESH_DUALCON) ++ endif() + -blender_add_lib(bf_geometry "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") + blender_add_lib(bf_geometry "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") diff --cc source/blender/makesrna/intern/rna_nodetree.c index 34fd7184d96,3d5daf3e2d7..affabe7f6e1 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@@ -9093,28 -9093,28 +9093,48 @@@ static void def_geo_triangulate(StructR RNA_def_property_enum_default(prop, GEO_NODE_TRIANGULATE_NGON_BEAUTY); RNA_def_property_ui_text(prop, "N-gon Method", "Method for splitting the n-gons into triangles"); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); + } + + static void def_geo_remesh_blocks(StructRNA *srna) + { + static const EnumPropertyItem remesh_mode_items[] = { + {0, "BLOCKS", 0, "Blocks", "Output a blocky surface with no smoothing"}, + {1, "SMOOTH", 0, "Smooth", "Output a smooth surface with no sharp-features detection"}, + {2, + "SHARP", + 0, + "Sharp", + "Output a surface that reproduces sharp edges and corners from the input mesh"}, + {0, NULL, 0, NULL, NULL}, + }; + + PropertyRNA *prop = RNA_def_property(srna, "remesh_blocks_mode", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "custom1"); + RNA_def_property_enum_items(prop, remesh_mode_items); + RNA_def_property_ui_text(prop, "Mode", "Mesh smoothing mode for remesh operation"); + RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); } +static void def_geo_subdivision_surface(StructRNA *srna) +{ + PropertyRNA *prop; + + RNA_def_struct_sdna_from(srna, "NodeGeometrySubdivisionSurface", "storage"); + prop = RNA_def_property(srna, "uv_smooth", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "uv_smooth"); + RNA_def_property_enum_items(prop, rna_enum_subdivision_uv_smooth_items); + RNA_def_property_enum_default(prop, SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES); + RNA_def_property_ui_text(prop, "UV Smooth", "Controls how smoothing is applied to UVs"); + RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); + + prop = RNA_def_property(srna, "boundary_smooth", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "boundary_smooth"); + RNA_def_property_enum_items(prop, rna_enum_subdivision_boundary_smooth_items); + RNA_def_property_enum_default(prop, SUBSURF_BOUNDARY_SMOOTH_ALL); + RNA_def_property_ui_text(prop, "Boundary Smooth", "Controls how open boundaries are smoothed"); + RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); +} + static void def_geo_attribute_randomize(StructRNA *srna) { PropertyRNA *prop; diff --cc source/blender/nodes/CMakeLists.txt index dc5fa8dcba0,fcda05846d7..175c9744b2e --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@@ -217,9 -213,9 +217,10 @@@ set(SR geometry/nodes/node_geo_separate_components.cc geometry/nodes/node_geo_subdivision_surface.cc geometry/nodes/node_geo_switch.cc + geometry/nodes/node_geo_remesh_blocks.cc geometry/nodes/node_geo_transform.cc geometry/nodes/node_geo_triangulate.cc + geometry/nodes/node_geo_unsubdivide.cc geometry/nodes/node_geo_viewer.cc geometry/nodes/node_geo_volume_to_mesh.cc geometry/node_geometry_exec.cc diff --cc source/blender/nodes/NOD_static_types.h index 08a5246eb17,42c964b3a10..de2fb692d7e --- a/source/blender/nodes/NOD_static_types.h +++ b/source/blender/nodes/NOD_static_types.h @@@ -338,14 -335,13 +338,15 @@@ DefNode(GeometryNode, GEO_NODE_POINT_SE DefNode(GeometryNode, GEO_NODE_POINT_TRANSLATE, def_geo_point_translate, "POINT_TRANSLATE", PointTranslate, "Point Translate", "") DefNode(GeometryNode, GEO_NODE_POINTS_TO_VOLUME, def_geo_points_to_volume, "POINTS_TO_VOLUME", PointsToVolume, "Points to Volume", "") DefNode(GeometryNode, GEO_NODE_RAYCAST, def_geo_raycast, "RAYCAST", Raycast, "Raycast", "") +DefNode(GeometryNode, GEO_NODE_MERGE_BY_DISTANCE, def_geo_merge_by_distance, "MERGE_BY_DISTANCE", MergeByDistance, "Merge by Distance", "") DefNode(GeometryNode, GEO_NODE_SELECT_BY_MATERIAL, 0, "SELECT_BY_MATERIAL", SelectByMaterial, "Select by Material", "") DefNode(GeometryNode, GEO_NODE_SEPARATE_COMPONENTS, 0, "SEPARATE_COMPONENTS", SeparateComponents, "Separate Components", "") -DefNode(GeometryNode, GEO_NODE_SUBDIVISION_SURFACE, 0, "SUBDIVISION_SURFACE", SubdivisionSurface, "Subdivision Surface", "") +DefNode(GeometryNode, GEO_NODE_SUBDIVISION_SURFACE, def_geo_subdivision_surface, "SUBDIVISION_SURFACE", SubdivisionSurface, "Subdivision Surface", "") DefNode(GeometryNode, GEO_NODE_SWITCH, def_ge @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs