[Bf-blender-cvs] [ab7e934] alembic: Fix for initialization of effector velocities.
Lukas Tönne
noreply at git.blender.org
Tue May 12 09:05:25 CEST 2015
Commit: ab7e9340caed7831bd66a6ba57d86649a284f03e
Author: Lukas Tönne
Date: Mon May 11 19:49:23 2015 +0200
Branches: alembic
https://developer.blender.org/rBab7e9340caed7831bd66a6ba57d86649a284f03e
Fix for initialization of effector velocities.
===================================================================
M source/blender/blenkernel/intern/cache_library.c
===================================================================
diff --git a/source/blender/blenkernel/intern/cache_library.c b/source/blender/blenkernel/intern/cache_library.c
index 72bb689..e1e8426 100644
--- a/source/blender/blenkernel/intern/cache_library.c
+++ b/source/blender/blenkernel/intern/cache_library.c
@@ -1213,6 +1213,7 @@ static void forcefield_vertex_cache_init(ForceFieldVertexCache *cache, float fra
MVert *mvert = dm->getVertArray(dm);
float dframe = frame - cache->frame_prev;
float inv_dframe = dframe > 0.0f ? 1.0f / dframe : 0.0f;
+ bool has_co_prev = (cache->co_prev != NULL);
int totvert = dm->getNumVerts(dm);
int i;
@@ -1227,8 +1228,14 @@ static void forcefield_vertex_cache_init(ForceFieldVertexCache *cache, float fra
cache->vel = MEM_mallocN(sizeof(float) * 3 * totvert, "force field vertex cache vertices");
for (i = 0; i < totvert; ++i) {
- sub_v3_v3v3(cache->vel[i], mvert[i].co, cache->co_prev[i]);
- mul_v3_fl(cache->vel[i], inv_dframe);
+ if (has_co_prev) {
+ sub_v3_v3v3(cache->vel[i], mvert[i].co, cache->co_prev[i]);
+ mul_v3_fl(cache->vel[i], inv_dframe);
+ }
+ else {
+ zero_v3(cache->vel[i]);
+ }
+
copy_v3_v3(cache->co_prev[i], mvert[i].co);
}
cache->frame_prev = frame;
More information about the Bf-blender-cvs
mailing list