diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2007-11-05 01:20:02 +0300 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2007-11-05 01:20:02 +0300 |
commit | 7a6b3a63fa0b558ddcc3a6dac526fe5cff616a94 (patch) | |
tree | b49362b6f8ed8fdec0ae13d6ad8f74f4b868e3ba /source/blender/blenloader/intern | |
parent | 8c0968a01361af5f68a3ac83f552777eeb28aa49 (diff) | |
parent | 1b9d661ecaed5c51bc702e209b0a1dae7365754f (diff) |
svn merge -r 12419:12478 https://svn.blender.org/svnroot/bf-blender/trunk/blender -- old cloth files with activated modifier won't work, please deactivate modifier before
Diffstat (limited to 'source/blender/blenloader/intern')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 19 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 8 |
2 files changed, 26 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index fe84ae57096..8ee70d4efd2 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2915,6 +2915,21 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) } } } + else if (md->type==eModifierType_MeshDeform) { + MeshDeformModifierData *mmd = (MeshDeformModifierData*) md; + + mmd->bindweights= newdataadr(fd, mmd->bindweights); + mmd->bindcos= newdataadr(fd, mmd->bindcos); + + if(fd->flags & FD_FLAGS_SWITCH_ENDIAN) { + int a; + + for(a=0; a<mmd->totcagevert*mmd->totvert; a++) + SWITCH_INT(mmd->bindweights[a]) + for(a=0; a<mmd->totcagevert*3; a++) + SWITCH_INT(mmd->bindcos[a]) + } + } } } @@ -6616,7 +6631,9 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Material *ma; /* unless the file was created 2.44.3 but not 2.45, update the constraints */ - if (!(main->versionfile==244 && main->subversionfile==3)) { + if ( !(main->versionfile==244 && main->subversionfile==3) && + ((main->versionfile<245) || (main->versionfile==245 && main->subversionfile==0)) ) + { for (ob = main->object.first; ob; ob= ob->id.next) { ListBase *list; list = &ob->constraints; diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index ba4cbd1b950..1887f95e1da 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -822,6 +822,14 @@ static void write_modifiers(WriteData *wd, ListBase *modbase) */ } } + else if (md->type==eModifierType_MeshDeform) { + MeshDeformModifierData *mmd = (MeshDeformModifierData*) md; + + writedata(wd, DATA, sizeof(float)*mmd->totvert*mmd->totcagevert, + mmd->bindweights); + writedata(wd, DATA, sizeof(float)*3*mmd->totcagevert, + mmd->bindcos); + } } } |