Commit: b8e4bb07699c78c15d191f481f99236c03c7ff94
Author: Sebastián Barschkis
Date:   Wed Sep 7 21:39:46 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBb8e4bb07699c78c15d191f481f99236c03c7ff94

pointcache adaptions for liquid high resolution files

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

M       source/blender/blenkernel/intern/pointcache.c

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

diff --git a/source/blender/blenkernel/intern/pointcache.c 
b/source/blender/blenkernel/intern/pointcache.c
index 9936012..508d4d1 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1237,7 +1237,8 @@ static int ptcache_smoke_openvdb_read(struct 
OpenVDBReader *reader, void *smoke_
 static int ptcache_liquid_read(void *smoke_v, char *filename, char *pathname)
 {
        SmokeModifierData *smd = (SmokeModifierData *) smoke_v;
-
+       int i;
+       
        if (!smd) {
                return 0;
        }
@@ -1246,6 +1247,18 @@ static int ptcache_liquid_read(void *smoke_v, char 
*filename, char *pathname)
        
        if (sds->fluid) {
                liquid_load_data(sds->fluid, pathname);
+               
+               if (sds->flags & MOD_SMOKE_HIGHRES) {
+                       
+                       i = strlen(filename);
+                       /* remove .bobj.gz ...*/
+                       if (i > 8)
+                               filename[i-8] = '\0';
+                       /* ... and add _HIGH.bobj.gz ending */
+                       strcat(filename, "_HIGH.bobj.gz");
+                       
+                       liquid_load_data_high(sds->fluid, pathname);
+               }
                liquid_update_mesh_data(sds->fluid, filename);
                return 1;
        }
@@ -1255,6 +1268,7 @@ static int ptcache_liquid_read(void *smoke_v, char 
*filename, char *pathname)
 static int ptcache_liquid_write(void *smoke_v, char *filename, char* pathname)
 {
        SmokeModifierData *smd = (SmokeModifierData *) smoke_v;
+       int i;
 
        if (!smd) {
                return 0;
@@ -1263,9 +1277,21 @@ static int ptcache_liquid_write(void *smoke_v, char 
*filename, char* pathname)
        SmokeDomainSettings *sds = smd->domain;
        
        if (sds->fluid) {
-               liquid_save_data(sds->fluid, pathname);
                liquid_save_mesh(sds->fluid, filename);
+               liquid_save_data(sds->fluid, pathname);
                
+               if (sds->flags & MOD_SMOKE_HIGHRES) {
+                       
+                       i = strlen(filename);
+                       /* remove .bobj.gz ...*/
+                       if (i > 8)
+                               filename[i-8] = '\0';
+                       /* ... and add _HIGH.bobj.gz ending */
+                       strcat(filename, "_HIGH.bobj.gz");
+                       
+                       liquid_save_mesh_high(sds->fluid, filename);
+                       liquid_save_data_high(sds->fluid, pathname);
+               }
                /* After writing mesh data make sure that fields in fluid object
                 * are up-to-date (necessary for instant replay functionality) 
*/
                liquid_update_mesh_data(sds->fluid, filename);

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

Reply via email to