diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-11-21 17:35:28 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-11-21 17:35:28 +0300 |
commit | bd1f548d8e4a47b81b03af3d50339b2fa33ff5fb (patch) | |
tree | 4e7281db29254a9cd5b22216c3d5156c48224f0d /source/blender/blenkernel/intern/anim.c | |
parent | 09cf0118790e7f38fc65c3fed523edb66c095674 (diff) |
fix for [#19655] Curve is a disaster
when changing curve twist I assumed 2D curves would not need dir or quat values set, however these are used when getting a path from a curve.
also added interp_v3_v3v3v3v3
Diffstat (limited to 'source/blender/blenkernel/intern/anim.c')
-rw-r--r-- | source/blender/blenkernel/intern/anim.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index a1b138b9a74..6b8b604cb94 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -250,17 +250,13 @@ int where_on_path(Object *ob, float ctime, float *vec, float *dir, float *quat, /* note, commented out for follow constraint */ //if(cu->flag & CU_FOLLOW) { - + key_curve_tangent_weights(1.0f-fac, data, KEY_BSPLINE); - - dir[0]= data[0]*p0->vec[0] + data[1]*p1->vec[0] + data[2]*p2->vec[0] + data[3]*p3->vec[0] ; - dir[1]= data[0]*p0->vec[1] + data[1]*p1->vec[1] + data[2]*p2->vec[1] + data[3]*p3->vec[1] ; - dir[2]= data[0]*p0->vec[2] + data[1]*p1->vec[2] + data[2]*p2->vec[2] + data[3]*p3->vec[2] ; - + + interp_v3_v3v3v3v3(dir, p0->vec, p1->vec, p2->vec, p3->vec, data); + /* make compatible with vectoquat */ - dir[0]= -dir[0]; - dir[1]= -dir[1]; - dir[2]= -dir[2]; + negate_v3(dir); //} nu= cu->nurb.first; |