Commit: af9eedc626a45d0f7d2a4bc28497570fde113562
Author: ishbosamiya
Date: Fri May 31 01:05:12 2019 +0530
Branches: soc-2019-adaptive-cloth
https://developer.blender.org/rBaf9eedc626a45d0f7d2a4bc28497570fde113562
Initial steps to let modifier have changing vertices
===================================================================
M source/blender/modifiers/intern/MOD_cloth.c
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_cloth.c
b/source/blender/modifiers/intern/MOD_cloth.c
index 35bf98037d8..679fa84df2d 100644
--- a/source/blender/modifiers/intern/MOD_cloth.c
+++ b/source/blender/modifiers/intern/MOD_cloth.c
@@ -134,6 +134,21 @@ static void deformVerts(ModifierData *md,
BKE_id_free(NULL, mesh_src);
}
+static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx,
Mesh *mesh)
+{
+ Mesh *result;
+ int numVerts;
+ float(*deformedVerts)[3] = BKE_mesh_vertexCos_get(mesh, &numVerts);
+
+ BKE_id_copy_ex(NULL, &mesh->id, (ID **)&result, LIB_ID_COPY_LOCALIZE);
+ deformVerts(md, ctx, result, deformedVerts, numVerts);
+ BKE_mesh_apply_vert_coords(result, deformedVerts);
+
+ MEM_freeN(deformedVerts);
+
+ return result;
+}
+
static void updateDepsgraph(ModifierData *md, const
ModifierUpdateDepsgraphContext *ctx)
{
ClothModifierData *clmd = (ClothModifierData *)md;
@@ -268,17 +283,17 @@ ModifierTypeInfo modifierType_Cloth = {
/* name */ "Cloth",
/* structName */ "ClothModifierData",
/* structSize */ sizeof(ClothModifierData),
- /* type */ eModifierTypeType_OnlyDeform,
+ /* type */ eModifierTypeType_Nonconstructive,
/* flags */ eModifierTypeFlag_AcceptsMesh |
eModifierTypeFlag_UsesPointCache |
eModifierTypeFlag_Single,
/* copyData */ copyData,
- /* deformVerts */ deformVerts,
+ /* deformVerts */ NULL,
/* deformMatrices */ NULL,
/* deformVertsEM */ NULL,
/* deformMatricesEM */ NULL,
- /* applyModifier */ NULL,
+ /* applyModifier */ applyModifier,
/* initData */ initData,
/* requiredDataMask */ requiredDataMask,
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs