When creating bezier points in the IPOCurve module of the Python API,
the addBezier method as it currently stands creates useless handles
that lead to non-smooth animation regardless of the curve's
interpolation type. This makes creating smooth IPOCurves via Python
impossible. The addBezier functionality should mimic what happens
when you ctrl-click in the IPO window to add new points. I have heard
from two other Python scripters who had to abandon projects because
of this lack of functionality.
I have a two line patch for this problem, but obviously no commit
priveleges. I've posted this fix to the bf-Python board but seen no
action, so I'm posting it here.
Code snippet, with my fix, from IpoCurve_addBezier in bf-blender/
bzt = icu->bezt + npoints;
bzt->vec = x-1;
bzt->vec = x;
bzt->vec = x+1;
bzt->vec = y-1;
bzt->vec = y;
bzt->vec = y+1;
bzt->h1= HD_AUTO; // new line - my fix
bzt->h2= HD_AUTO; // new line - my fix
These two lines set the just-created handles to the Autosmooth type.
Using this fix, smooth curves can be achieved via the Python API.