[Bf-blender-cvs] [035ee22a507] gsoc-2021-porting-modifiers-to-nodes-solidify: moved solidify to Blender Kernel
Fabian Schempp
noreply at git.blender.org
Fri Jun 18 17:06:52 CEST 2021
Commit: 035ee22a50785575d71d8c4cf74fc02bf3dd51ee
Author: Fabian Schempp
Date: Tue Jun 1 07:15:56 2021 +0200
Branches: gsoc-2021-porting-modifiers-to-nodes-solidify
https://developer.blender.org/rB035ee22a50785575d71d8c4cf74fc02bf3dd51ee
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