Revision: 17196
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17196
Author:   campbellbarton
Date:     2008-10-26 09:06:48 +0100 (Sun, 26 Oct 2008)

Log Message:
-----------
fix for [#17895] Python-generated Curves can't be beveled
radius and weight's values were not initialized for nurbs curves

for 2.48a just use set radius from curve specials menu to work around this.

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/BezTriple.c
    trunk/blender/source/blender/python/api2_2x/CurNurb.c
    trunk/blender/source/blender/python/api2_2x/Curve.c

Modified: trunk/blender/source/blender/python/api2_2x/BezTriple.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/BezTriple.c     2008-10-23 
07:49:09 UTC (rev 17195)
+++ trunk/blender/source/blender/python/api2_2x/BezTriple.c     2008-10-26 
08:06:48 UTC (rev 17196)
@@ -694,6 +694,7 @@
        }
        bzt->h1 = HD_ALIGN;
        bzt->h2 = HD_ALIGN;
+       bzt->radius = 1.0;
 
        /* wrap it */
        pyobj = BezTriple_CreatePyObject( bzt );

Modified: trunk/blender/source/blender/python/api2_2x/CurNurb.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/CurNurb.c       2008-10-23 
07:49:09 UTC (rev 17195)
+++ trunk/blender/source/blender/python/api2_2x/CurNurb.c       2008-10-26 
08:06:48 UTC (rev 17196)
@@ -522,7 +522,7 @@
        else if( PySequence_Check( value ) ) {
                size = PySequence_Size( value );
 /*             printf("\ndbg: got a sequence of size %d\n", size );  */
-               if( size == 4 || size == 5 ) {
+               if( size == 4 || size == 5 || size == 6) {
                        BPoint *tmp;
 
                        tmp = nurb->bp; /* save old pts */
@@ -556,8 +556,8 @@
                                Py_DECREF( item );
                        }
 
-                       if (size == 5) {
-                               PyObject *item = PySequence_GetItem( value, i );
+                       if (size >= 5) {
+                               PyObject *item = PySequence_GetItem( value, 4 );
 
                                if (item == NULL)
                                        return NULL;
@@ -568,18 +568,33 @@
                        else {
                                nurb->bp[npoints].alfa = 0.0f;
                        }
+                       
+                       if (size == 6) {
+                               PyObject *item = PySequence_GetItem( value, 5 );
 
+                               if (item == NULL)
+                                       return NULL;
+
+                               nurb->bp[npoints].radius = ( float ) 
PyFloat_AsDouble( item );
+                               Py_DECREF( item );
+                       }
+                       else {
+                               nurb->bp[npoints].radius = 1.0f;
+                       }
+                       
+                       nurb->bp[npoints].weight = 0.0; /* softbody weight TODO 
- add access to this, is zero elsewhere but through blender is 1.0 by default */
+                       
                        makeknots( nurb, 1, nurb->flagu >> 1 );
 
                } else {
                        return EXPP_ReturnPyObjError( PyExc_TypeError,
-                                       "expected a sequence of 4 or 5 floats" 
);
+                                       "expected a sequence of 4 or 6 floats" 
);
                }
 
        } else {
                /* bail with error */
                return EXPP_ReturnPyObjError( PyExc_TypeError,
-                                       "expected a sequence of 4 or 5 floats" 
);
+                                       "expected a sequence of 4 to 6 floats" 
);
 
        }
 

Modified: trunk/blender/source/blender/python/api2_2x/Curve.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Curve.c 2008-10-23 07:49:09 UTC 
(rev 17195)
+++ trunk/blender/source/blender/python/api2_2x/Curve.c 2008-10-26 08:06:48 UTC 
(rev 17196)
@@ -822,6 +822,7 @@
                        new_nurb->bezt->f2 = SELECT;
                        new_nurb->bezt->f3 = SELECT;
                        new_nurb->bezt->hide = 0;
+                       new_nurb->bezt->radius = 1.0;
                        /* calchandlesNurb( new_nurb ); */
                } else {        /* set up bp */
                        new_nurb->pntsv = 1;
@@ -831,6 +832,7 @@
                        new_nurb->flagv = 0;
                        new_nurb->bp->f1 = 0;
                        new_nurb->bp->hide = 0;
+                       new_nurb->bp->radius = 1.0;
                        new_nurb->knotsu = 0;
                        /*makenots( new_nurb, 1, new_nurb->flagu >> 1); */
                }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to