[Bf-blender-cvs] [f563674d58a] blenloader-api: update laplacian deform modifier

Jacques Lucke noreply at git.blender.org
Sat Mar 7 19:09:28 CET 2020


Commit: f563674d58a90e8e1825e5c323f0c0824e4d9b4d
Author: Jacques Lucke
Date:   Sat Mar 7 18:32:32 2020 +0100
Branches: blenloader-api
https://developer.blender.org/rBf563674d58a90e8e1825e5c323f0c0824e4d9b4d

update laplacian deform modifier

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

M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/modifiers/intern/MOD_laplaciandeform.c

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

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index a93565731e2..de5632e6ca8 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5472,15 +5472,6 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb, Object *ob)
         BKE_curvemapping_blo_read_struct(wrap_reader(fd), wmd->cmap_curve);
       }
     }
-    else if (md->type == eModifierType_LaplacianDeform) {
-      LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
-
-      lmd->vertexco = newdataadr(fd, lmd->vertexco);
-      if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
-        BLI_endian_switch_float_array(lmd->vertexco, lmd->total_verts * 3);
-      }
-      lmd->cache_system = NULL;
-    }
     else if (md->type == eModifierType_MeshSequenceCache) {
       MeshSeqCacheModifierData *msmcd = (MeshSeqCacheModifierData *)md;
       msmcd->reader = NULL;
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 25e2cb6043f..e5bac8254f0 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1665,11 +1665,6 @@ static void write_modifiers(WriteData *wd, ListBase *modbase)
         BKE_curvemapping_blo_write_ptr(wrap_writer(wd), wmd->cmap_curve);
       }
     }
-    else if (md->type == eModifierType_LaplacianDeform) {
-      LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
-
-      writedata(wd, DATA, sizeof(float) * lmd->total_verts * 3, lmd->vertexco);
-    }
   }
 }
 
diff --git a/source/blender/modifiers/intern/MOD_laplaciandeform.c b/source/blender/modifiers/intern/MOD_laplaciandeform.c
index dad2a571157..752c0cffe8a 100644
--- a/source/blender/modifiers/intern/MOD_laplaciandeform.c
+++ b/source/blender/modifiers/intern/MOD_laplaciandeform.c
@@ -43,6 +43,8 @@
 
 #include "eigen_capi.h"
 
+#include "BLO_callback_api.h"
+
 enum {
   LAPDEFORM_SYSTEM_NOT_CHANGE = 0,
   LAPDEFORM_SYSTEM_IS_DIFFERENT,
@@ -757,6 +759,21 @@ static void requiredDataMask(Object *UNUSED(ob),
   }
 }
 
+static void bloWrite(BloWriter *writer, const ModifierData *md)
+{
+  LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
+
+  BLO_write_float3_array(writer, lmd->total_verts, lmd->vertexco);
+}
+
+static void bloRead(BloReader *reader, ModifierData *md)
+{
+  LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
+
+  BLO_read_float3_array(reader, lmd->vertexco, lmd->total_verts);
+  lmd->cache_system = NULL;
+}
+
 static void deformVerts(ModifierData *md,
                         const ModifierEvalContext *ctx,
                         Mesh *mesh,
@@ -827,6 +844,6 @@ ModifierTypeInfo modifierType_LaplacianDeform = {
     /* foreachIDLink */ NULL,
     /* foreachTexLink */ NULL,
     /* freeRuntimeData */ NULL,
-    /* bloWrite */ NULL,
-    /* bloRead */ NULL,
+    /* bloWrite */ bloWrite,
+    /* bloRead */ bloRead,
 };



More information about the Bf-blender-cvs mailing list