[Bf-blender-cvs] [531c65fd937] gsoc-2021-porting-modifiers-to-nodes-solidify: moved solidify to Blender Kernel

Fabian Schempp noreply at git.blender.org
Thu Jun 10 21:02:05 CEST 2021


Commit: 531c65fd9378d3e47e64162469b2f9fc3337eee5
Author: Fabian Schempp
Date:   Tue Jun 1 07:15:56 2021 +0200
Branches: gsoc-2021-porting-modifiers-to-nodes-solidify
https://developer.blender.org/rB531c65fd9378d3e47e64162469b2f9fc3337eee5

moved solidify to Blender Kernel

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

R087	source/blender/nodes/geometry/nodes/node_geo_solidify.h	source/blender/blenkernel/BKE_solidifiy.h
R099	source/blender/nodes/geometry/nodes/node_geo_solidify_extrude.c	source/blender/blenkernel/intern/solidify_extrude.c
M	source/blender/modifiers/intern/MOD_solidify.c
R086	source/blender/nodes/geometry/nodes/node_geo_solidify.cc	source/blender/nodes/geometry/nodes/node_geo_solidifiy.cc

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

diff --git a/source/blender/nodes/geometry/nodes/node_geo_solidify.h b/source/blender/blenkernel/BKE_solidifiy.h
similarity index 87%
rename from source/blender/nodes/geometry/nodes/node_geo_solidify.h
rename to source/blender/blenkernel/BKE_solidifiy.h
index bda46dc5150..cee98e59381 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_solidify.h
+++ b/source/blender/blenkernel/BKE_solidifiy.h
@@ -6,7 +6,9 @@
 extern "C" {
 #endif
 
-typedef struct SolidifyNodeData {
+struct Mesh;
+
+typedef struct SolidifyData {
   /** Name of vertex group to use, MAX_VGROUP_NAME. */
   char defgrp_name[64];
   char shell_defgrp_name[64];
@@ -38,9 +40,9 @@ typedef struct SolidifyNodeData {
 
   float merge_tolerance;
   float bevel_convex;
-} SolidifyNodeData;
+} SolidifyData;
 
-Mesh *solidify_extrude_modifyMesh(SolidifyNodeData *smd, Mesh *mesh);
+Mesh *solidify_extrude(SolidifyData *smd, Mesh *mesh);
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/nodes/geometry/nodes/node_geo_solidify_extrude.c b/source/blender/blenkernel/intern/solidify_extrude.c
similarity index 99%
rename from source/blender/nodes/geometry/nodes/node_geo_solidify_extrude.c
rename to source/blender/blenkernel/intern/solidify_extrude.c
index 1337923cc78..ed78a97a337 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_solidify_extrude.c
+++ b/source/blender/blenkernel/intern/solidify_extrude.c
@@ -35,7 +35,7 @@
 #include "BKE_deform.h"
 #include "BKE_mesh.h"
 #include "BKE_particle.h"
-#include "node_geo_solidify.h"
+#include "BKE_solidifiy.h"
 
 //#include "node_geometry_util.hh"
 
@@ -185,7 +185,7 @@ static void mesh_calc_hq_normal(Mesh *mesh, float (*poly_nors)[3], float (*r_ver
 /** \name Main Solidify Function
  * \{ */
 
-Mesh *solidify_extrude_modifyMesh(SolidifyNodeData *smd, Mesh *mesh)
+Mesh *solidify_extrude(SolidifyData *smd, Mesh *mesh)
 {
   Mesh *result;
 
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 736dd08a713..730df43cbea 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -35,6 +35,7 @@
 #include "BKE_context.h"
 #include "BKE_particle.h"
 #include "BKE_screen.h"
+#include "BKE_solidifiy.h"
 
 #include "UI_interface.h"
 #include "UI_resources.h"
@@ -81,12 +82,38 @@ static void requiredDataMask(Object *UNUSED(ob),
   }
 }
 
+static const SolidifyData solidify_data_from_modifier_data(ModifierData *md){
+  const SolidifyModifierData *smd = (SolidifyModifierData *)md;
+  const SolidifyData solidify_data = {
+      smd->defgrp_name,
+      smd->shell_defgrp_name,
+      smd->rim_defgrp_name,
+      smd->offset,
+      smd->offset_fac_vg,
+      smd->offset_clamp,
+      smd->mode,
+      smd->nonmanifold_offset_mode,
+      smd->nonmanifold_boundary_mode,
+      smd->crease_inner,
+      smd->crease_outer,
+      smd->crease_rim,
+      smd->flag,
+      smd->mat_ofs,
+      smd->mat_ofs_rim,
+      smd->merge_tolerance,
+      smd->bevel_convex,
+  };
+  return solidify_data;
+}
+
 static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
 {
   const SolidifyModifierData *smd = (SolidifyModifierData *)md;
+  const SolidifyData solidify_data = solidify_data_from_modifier_data(md);
+
   switch (smd->mode) {
     case MOD_SOLIDIFY_MODE_EXTRUDE:
-      return MOD_solidify_extrude_modifyMesh(md, ctx, mesh);
+      return solidify_extrude(&solidify_data, mesh);//MOD_solidify_extrude_modifyMesh(md, ctx, mesh);
     case MOD_SOLIDIFY_MODE_NONMANIFOLD:
       return MOD_solidify_nonmanifold_modifyMesh(md, ctx, mesh);
     default:
diff --git a/source/blender/nodes/geometry/nodes/node_geo_solidify.cc b/source/blender/nodes/geometry/nodes/node_geo_solidifiy.cc
similarity index 86%
rename from source/blender/nodes/geometry/nodes/node_geo_solidify.cc
rename to source/blender/nodes/geometry/nodes/node_geo_solidifiy.cc
index b11cabe078f..3abf81f009b 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_solidify.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_solidifiy.cc
@@ -14,17 +14,14 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
-#include "UI_interface.h"
-#include "UI_resources.h"
+#include "BKE_solidifiy.h"
 
 #include "DNA_modifier_types.h"
 
-#include "node_geometry_util.hh"
-#include "node_geo_solidify.h"
+#include "UI_interface.h"
+#include "UI_resources.h"
 
-/*extern "C" {    // another way
-  Mesh *solidify_extrude_modifyMesh( Mesh *mesh);
-};*/
+#include "node_geometry_util.hh"
 
 static bNodeSocketTemplate geo_node_solidify_in[] = {
     {SOCK_GEOMETRY, N_("Geometry")},
@@ -64,7 +61,7 @@ static void geo_node_solidify_exec(GeoNodeExecParams params)
   geometry_set = geometry_set_realize_instances(geometry_set);
 
   if (geometry_set.has<MeshComponent>()) {
-    SolidifyNodeData solidify_node_data = {
+    SolidifyData solidify_node_data = {
       /** Name of vertex group to use, MAX_VGROUP_NAME. */
       "char defgrp_name[64]",
       "shell_defgrp_name[64]",
@@ -98,15 +95,9 @@ static void geo_node_solidify_exec(GeoNodeExecParams params)
     };
 
     MeshComponent &meshComponent = geometry_set.get_component_for_write<MeshComponent>();
-    Mesh *return_mesh = solidify_extrude_modifyMesh(&solidify_node_data, meshComponent.get_for_write());
+    Mesh *return_mesh = solidify_extrude(&solidify_node_data, meshComponent.get_for_write());
     geometry_set.replace_mesh(return_mesh);
   }
-//  if (geometry_set.has<PointCloudComponent>()) {
-//    fill_attribute(geometry_set.get_component_for_write<PointCloudComponent>(), params);
-//  }
-//  if (geometry_set.has<CurveComponent>()) {
-//    fill_attribute(geometry_set.get_component_for_write<CurveComponent>(), params);
-//  }
 
   params.set_output("Geometry", geometry_set);
 }



More information about the Bf-blender-cvs mailing list