Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2012-12-11 17:02:42 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2012-12-11 17:02:42 +0400
commite089c5a976eda6fadff6a8d4b5edb6e7460c8f90 (patch)
tree2bb20e665ffdacfc57becc12bcda9dab311de3ab /intern/elbeem
parentd321ee3fdae12b8e0394369b702ba79c187e692e (diff)
Bugfix [#33467] Fluid Simulations Speed factor animated wrong result
Thanks to Brecht for providing a patch and example blend. I changed and extended it a bit since there was another bug in that loop.
Diffstat (limited to 'intern/elbeem')
-rw-r--r--intern/elbeem/intern/ntl_world.cpp8
-rw-r--r--intern/elbeem/intern/ntl_world.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/intern/elbeem/intern/ntl_world.cpp b/intern/elbeem/intern/ntl_world.cpp
index dcc81dbe5cb..9ae5135b040 100644
--- a/intern/elbeem/intern/ntl_world.cpp
+++ b/intern/elbeem/intern/ntl_world.cpp
@@ -420,7 +420,12 @@ int ntlWorld::advanceSims(int framenum)
// Was: double targetTime = mSimulationTime + (*mpSims)[mFirstSim]->getFrameTime(framenum); - DG
double totalTime = 0.0, targetTime = 0.0;
for(size_t i = 0; i < mSimFrameCnt; i++)
- totalTime += (*mpSims)[mFirstSim]->getFrameTime(framenum);
+ {
+ /* We need an intermediate array "mSimFrameValue" because
+ otherwise if we don't start with starttime = 0,
+ the sim gets out of sync - DG */
+ totalTime += (*mpSims)[mFirstSim]->getFrameTime(mSimFrameValue[i]);
+ }
targetTime = totalTime + (*mpSims)[mFirstSim]->getFrameTime(framenum);
int gstate = 0;
@@ -468,6 +473,7 @@ int ntlWorld::advanceSims(int framenum)
sim->prepareVisualization();
}
+ mSimFrameValue.push_back(framenum);
mSimFrameCnt++;
return 0;
diff --git a/intern/elbeem/intern/ntl_world.h b/intern/elbeem/intern/ntl_world.h
index c207904cf75..6cec098132b 100644
--- a/intern/elbeem/intern/ntl_world.h
+++ b/intern/elbeem/intern/ntl_world.h
@@ -118,6 +118,7 @@ class ntlWorld
/*! count no. of frame for correct sim time */
int mSimFrameCnt;
+ vector<int> mSimFrameValue;
};