Commit: 54845fbfa3dd814f5b8c6ef0feb8af517dbfcf2a
Author: Jacques Lucke
Date:   Sun Dec 9 17:41:34 2018 +0100
Branches: rigid_deform
https://developer.blender.org/rB54845fbfa3dd814f5b8c6ef0feb8af517dbfcf2a

make writefile and readfile work

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

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

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

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index 42f3c35034e..598f9cdc360 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5334,6 +5334,21 @@ static void direct_link_modifiers(FileData *fd, ListBase 
*lb)
                        }
                        lmd->cache_system = NULL;
                }
+               else if (md->type == eModifierType_RigidDeform) {
+                       RigidDeformModifierData *rdmd = 
(RigidDeformModifierData *)md;
+                       RigidDeformModifierBindData *bind = newdataadr(fd, 
rdmd->bind_data);
+                       rdmd->bind_data = bind;
+                       rdmd->cache = NULL;
+
+                       if (bind) {
+                               bind->initial_positions = newdataadr(fd, 
bind->initial_positions);
+                               bind->anchor_indices = newdataadr(fd, 
bind->anchor_indices);
+                               if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
+                                       BLI_endian_switch_float_array((float 
*)bind->initial_positions, bind->vertex_amount * sizeof(float) * 3);
+                                       
BLI_endian_switch_int32_array(bind->anchor_indices, bind->anchor_amount * 
sizeof(int));
+                               }
+                       }
+               }
                else if (md->type == eModifierType_CorrectiveSmooth) {
                        CorrectiveSmoothModifierData *csmd = 
(CorrectiveSmoothModifierData *)md;
 
diff --git a/source/blender/blenloader/intern/writefile.c 
b/source/blender/blenloader/intern/writefile.c
index fb5d41d0071..b83f95c024c 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1773,12 +1773,19 @@ static void write_modifiers(WriteData *wd, ListBase 
*modbase)
 
                        writedata(wd, DATA, sizeof(float) * lmd->total_verts * 
3, lmd->vertexco);
                }
+               else if (md->type == eModifierType_RigidDeform) {
+                       RigidDeformModifierData *rdmd = 
(RigidDeformModifierData *)md;
+                       RigidDeformModifierBindData *bind = rdmd->bind_data;
+                       writestruct(wd, DATA, RigidDeformModifierBindData, 1, 
bind);
+
+                       if (bind) {
+                               writedata(wd, DATA, sizeof(float) * 3 * 
bind->vertex_amount, bind->initial_positions);
+                               writedata(wd, DATA, sizeof(int) * 
bind->anchor_amount, bind->anchor_indices);
+                       }
+               }
                else if (md->type == eModifierType_CorrectiveSmooth) {
                        CorrectiveSmoothModifierData *csmd = 
(CorrectiveSmoothModifierData *)md;
 
-                       if (csmd->bind_coords) {
-                               writedata(wd, DATA, sizeof(float[3]) * 
csmd->bind_coords_num, csmd->bind_coords);
-                       }
                }
                else if (md->type == eModifierType_SurfaceDeform) {
                        SurfaceDeformModifierData *smd = 
(SurfaceDeformModifierData *)md;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to