curve twist
authorCampbell Barton <ideasman42@gmail.com>
Fri, 11 Sep 2009 15:35:30 +0000 (15:35 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 11 Sep 2009 15:35:30 +0000 (15:35 +0000)
commitee768ada680ce0a8aa184c882005c0ef1c0140fb
treee4f475510c9628d9fae6b3ff3581276b4af3f374
parent042d3e595693ce0c280b46d13db921afbcf105a4
curve twist
* added new twist method - "Tangent", suggested by Martin.
  the nice thing about this is its stable no matter how you rotate the data, rotation is local to each segment.
* added smooth option that smooths the twisting (before applying user twist), to workaround Z-Up and Tangent's ugly curve twisting. Id prefer not to have this however it makes tangent much nicer. Possibly tangent can be improved some other way and this can be removed.
  A smooth value of 1.0 will iterate over and smooth the twisting by the resolution value of the spline.
* Minimum-Twist method now corrects for cyclic twist by taking the roll difference between first and last, then increasingly counter rotate each segment over the entire curve. Previously it calculated from both directions and blended them.

details
* BevPoints use quats rather then 3x3 matrix.
* added BevPoint direction "dir" and tangent "tan" used only for 3D curves.
* don't calculate BevPoint->cosa, BevPoint->sina for 3D curves.
* split bevel tilt calculation into functions.
* nurbs curves currently don't generate tangents and wont work with tangent twist method.
* some of the use of quats should be optimized.
* smoothing is not animation safe, the higher the smoothing the higher the likelyhood of flipping.
release/ui/buttons_data_curve.py
source/blender/blenkernel/BKE_utildefines.h
source/blender/blenkernel/intern/curve.c
source/blender/blenkernel/intern/displist.c
source/blender/editors/space_view3d/drawobject.c
source/blender/makesdna/DNA_curve_types.h
source/blender/makesrna/intern/rna_curve.c