Python API:
authorKen Hughes <khughes@pacific.edu>
Mon, 13 Nov 2006 21:14:48 +0000 (21:14 +0000)
committerKen Hughes <khughes@pacific.edu>
Mon, 13 Nov 2006 21:14:48 +0000 (21:14 +0000)
Bugfix #5075: make curve.update() recalculate bezier curve handles.  This
would/should be called after changing the handles of a BezTriple.

source/blender/blenkernel/intern/curve.c
source/blender/python/api2_2x/Curve.c

index 22ace2d20bf81ccbee1e0ed3c78246f3996d9fa1..72cfb820138851cf9409d92dd96f53a24c169aa7 100644 (file)
@@ -2192,7 +2192,7 @@ void calchandlesNurb(Nurb *nu) /* first, if needed, set handle flags */
        BezTriple *bezt, *prev, *next;
        short a;
 
-       if((nu->type & 7)!=1) return;
+       if((nu->type & 7)!=CU_BEZIER) return;
        if(nu->pntsu<2) return;
        
        a= nu->pntsu;
index 75c8a3801a33717d6da692e50e350efde1b8c3a1..69afe176ca69f24590d0043c919fc666327928b2 100644 (file)
@@ -1280,6 +1280,15 @@ static PyObject *Curve_appendNurb( BPy_Curve * self, PyObject * args )
 
 PyObject *Curve_update( BPy_Curve * self )
 {
+       Nurb *nu = self->curve->nurb.first;
+
+       /* recalculate handles for each curve: calchandlesNurb() will make
+        * sure curves are bezier first */
+       while( nu ) {
+               calchandlesNurb ( nu );
+               nu = nu->next;
+       }
+
        Object_updateDag( (void*) self->curve );
 
        Py_RETURN_NONE;