[Bf-blender-cvs] [6dd1cf2] fluid-mantaflow: hooked up pointcache so that it triggers the new mesh read function
Sebastián Barschkis
noreply at git.blender.org
Sat Jun 18 13:06:11 CEST 2016
Commit: 6dd1cf2a3e953a8abc2630eda89195fc20f45b57
Author: Sebastián Barschkis
Date: Thu Jun 16 01:12:04 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB6dd1cf2a3e953a8abc2630eda89195fc20f45b57
hooked up pointcache so that it triggers the new mesh read function
===================================================================
M source/blender/blenkernel/intern/pointcache.c
===================================================================
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index 222dfb2..0b0c367 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1218,14 +1218,19 @@ static int ptcache_smoke_openvdb_read(struct OpenVDBReader *reader, void *smoke_
#ifdef WITH_MANTA
static int ptcache_liquid_read(void *smoke_v, char *filename)
{
- SmokeModifierData *smd = (SmokeModifierData *)smoke_v;
+ SmokeModifierData *smd = (SmokeModifierData *) smoke_v;
if (!smd) {
return 0;
}
SmokeDomainSettings *sds = smd->domain;
- return 1;
+
+ if (sds->fluid) {
+ liquid_update_mesh_data(sds->fluid, filename);
+ return 1;
+ }
+ return 0;
}
static int ptcache_liquid_write(void *smoke_v, char *filename)
@@ -1240,6 +1245,10 @@ static int ptcache_liquid_write(void *smoke_v, char *filename)
if (sds->fluid) {
liquid_save_mesh(sds->fluid, filename);
+
+ /* 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);
return 1;
}
return 0;
@@ -2633,6 +2642,27 @@ static int ptcache_read_openvdb_stream(PTCacheID *pid, int cfra)
#endif
}
+static int ptcache_read_liquid_stream(PTCacheID *pid, int cfra)
+{
+ char filename[FILE_MAX * 2];
+
+ /* save blend file before using disk pointcache */
+ if (!G.relbase_valid && (pid->cache->flag & PTCACHE_EXTERNAL) == 0)
+ return 0;
+
+ ptcache_filename(pid, filename, cfra, 1, 1);
+
+ if (!BLI_exists(filename)) {
+ return 0;
+ }
+
+ if (!pid->read_liquid_stream(pid->calldata, filename)) {
+ return 0;
+ }
+
+ return 1;
+}
+
static int ptcache_read(PTCacheID *pid, int cfra)
{
PTCacheMem *pm = NULL;
@@ -2779,6 +2809,11 @@ int BKE_ptcache_read(PTCacheID *pid, float cfra)
return 0;
}
}
+ else if (pid->file_type == PTCACHE_FILE_LIQUID && pid->read_liquid_stream) {
+ if (!ptcache_read_liquid_stream(pid, cfra1)) {
+ return 0;
+ }
+ }
else if (pid->read_stream) {
if (!ptcache_read_stream(pid, cfra1))
return 0;
@@ -2793,6 +2828,11 @@ int BKE_ptcache_read(PTCacheID *pid, float cfra)
return 0;
}
}
+ else if (pid->file_type == PTCACHE_FILE_LIQUID && pid->read_liquid_stream) {
+ if (!ptcache_read_liquid_stream(pid, cfra2)) {
+ return 0;
+ }
+ }
else if (pid->read_stream) {
if (!ptcache_read_stream(pid, cfra2))
return 0;
More information about the Bf-blender-cvs
mailing list