diff options
author | Alexander Pinzon <apinzonf@gmail.com> | 2013-11-24 00:00:49 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-11-24 00:10:42 +0400 |
commit | 673bd9a009062807c16cc31a263018737c148a96 (patch) | |
tree | 4ab6bc0cf8d9a7f6fb60b4ea2d61a6374c97794d /source/blender/blenloader/intern | |
parent | 4c52e737df39e538d3b41a232035a4a1e240505d (diff) |
Mesh Modifiers: Added Laplacian Deform
Part of soc-2013-sketch_mesh branch
See: http://wiki.blender.org/index.php/User:Apinzonf/Doc:2.6/Manual/Modifiers/Deform/Laplacian_Deform
Diffstat (limited to 'source/blender/blenloader/intern')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 9 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 3428e52ca4e..ad3b0df3ad8 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4825,6 +4825,15 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) if (wmd->cmap_curve) direct_link_curvemapping(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; + } } } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 1f417df38d2..d985243a335 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1474,6 +1474,11 @@ static void write_modifiers(WriteData *wd, ListBase *modbase) if (wmd->cmap_curve) write_curvemapping(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); + } } } |