[Bf-blender-cvs] [dfb1d7f1bd2] fluid-mantaflow: refactored new option for particles and mesh

Sebastián Barschkis noreply at git.blender.org
Tue Jun 13 15:22:24 CEST 2017


Commit: dfb1d7f1bd25d47527de8fd8a4c3ecf854781e69
Author: Sebastián Barschkis
Date:   Tue Jun 13 14:56:54 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBdfb1d7f1bd25d47527de8fd8a4c3ecf854781e69

refactored new option for particles and mesh

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

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

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

diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index c00734a8131..d1f3fd6343a 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1988,6 +1988,7 @@ static const char *ptcache_file_extension(const PTCacheID *pid)
 		case PTCACHE_FILE_OPENVDB:
 			return ".vdb";
 		case PTCACHE_FILE_LIQUID:
+		case PTCACHE_FILE_LIQUIDFLIP: // dummy: extensions handled by setting file types for mesh and particles manually
 			return ".bobj.gz";
 		case PTCACHE_FILE_FLIP:
 			return ".uni";
@@ -2980,12 +2981,15 @@ int BKE_ptcache_read(PTCacheID *pid, float cfra, bool no_extrapolate_old)
 			}
 		}
 		else if (pid->file_type == PTCACHE_FILE_LIQUIDFLIP && pid->read_liquid_stream && pid->read_flip_stream) {
-			if (!ptcache_read_liquid_stream(pid, cfra1, true)) {
+			pid->file_type = PTCACHE_FILE_FLIP; // Make sure we get the right file extension
+			if (!ptcache_read_flip_stream(pid, cfra1, false)) { // Mesh handles internal data loading
 				return 0;
 			}
-			if (!ptcache_read_flip_stream(pid, cfra1, false)) { // Do not load liquid data again, was loaded above
+			pid->file_type = PTCACHE_FILE_LIQUID; // Make sure we get the right file extension
+			if (!ptcache_read_liquid_stream(pid, cfra1, true)) {
 				return 0;
 			}
+			pid->file_type = PTCACHE_FILE_LIQUIDFLIP; // Switch back to actual file type
 		}
 		else if (pid->file_type == PTCACHE_FILE_PTCACHE && pid->read_stream) {
 			if (!ptcache_read_stream(pid, cfra1))
@@ -3013,12 +3017,15 @@ int BKE_ptcache_read(PTCacheID *pid, float cfra, bool no_extrapolate_old)
 			}
 		}
 		else if (pid->file_type == PTCACHE_FILE_LIQUIDFLIP && pid->read_liquid_stream && pid->read_flip_stream) {
-			if (!ptcache_read_liquid_stream(pid, cfra2, true)) {
+			pid->file_type = PTCACHE_FILE_FLIP; // Make sure we get the right file extension
+			if (!ptcache_read_flip_stream(pid, cfra1, false)) { // Mesh handles internal data loading
 				return 0;
 			}
-			if (!ptcache_read_flip_stream(pid, cfra2, false)) { // Do not load liquid data again, was loaded above
+			pid->file_type = PTCACHE_FILE_LIQUID; // Make sure we get the right file extension
+			if (!ptcache_read_liquid_stream(pid, cfra1, true)) {
 				return 0;
 			}
+			pid->file_type = PTCACHE_FILE_LIQUIDFLIP; // Switch back to actual file type
 		}
 		else if (pid->file_type == PTCACHE_FILE_PTCACHE && pid->read_stream) {
 			if (!ptcache_read_stream(pid, cfra2))
@@ -3287,10 +3294,11 @@ int BKE_ptcache_write(PTCacheID *pid, unsigned int cfra)
 		ptcache_write_flip_stream(pid, cfra, true);
 	}
 	else if (pid->file_type == PTCACHE_FILE_LIQUIDFLIP && pid->write_liquid_stream && pid->write_flip_stream) {
+		pid->file_type = PTCACHE_FILE_FLIP; // Make sure we get the right file extension
+		ptcache_write_flip_stream(pid, cfra, false); // Mesh handles internal data saving
 		pid->file_type = PTCACHE_FILE_LIQUID; // Make sure we get the right file extension
 		ptcache_write_liquid_stream(pid, cfra, true);
-		pid->file_type = PTCACHE_FILE_FLIP; // Make sure we get the right file extension
-		ptcache_write_flip_stream(pid, cfra, false); // Do not load liquid data again, was loaded above
+		pid->file_type = PTCACHE_FILE_LIQUIDFLIP; // Switch back to actual file type
 	}
 	else if (pid->file_type == PTCACHE_FILE_PTCACHE && pid->write_stream) {
 		ptcache_write_stream(pid, cfra, totpoint);




More information about the Bf-blender-cvs mailing list