Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2008-10-26 11:06:48 +0300
committerCampbell Barton <ideasman42@gmail.com>2008-10-26 11:06:48 +0300
commit0dc22dc65e1d31e867151572e8705c3a9448802b (patch)
tree7faa02e7f98f472688af8655da96dba91820acd3 /source/blender/python
parentc11c299d593dd2a7b0f5cd464ea2a67ed0b34e55 (diff)
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.
Diffstat (limited to 'source/blender/python')
-rw-r--r--source/blender/python/api2_2x/BezTriple.c1
-rw-r--r--source/blender/python/api2_2x/CurNurb.c25
-rw-r--r--source/blender/python/api2_2x/Curve.c2
3 files changed, 23 insertions, 5 deletions
diff --git a/source/blender/python/api2_2x/BezTriple.c b/source/blender/python/api2_2x/BezTriple.c
index b7b94dc93e1..9e57994d2da 100644
--- a/source/blender/python/api2_2x/BezTriple.c
+++ b/source/blender/python/api2_2x/BezTriple.c
@@ -694,6 +694,7 @@ PyObject *newBezTriple( float *numbuf )
}
bzt->h1 = HD_ALIGN;
bzt->h2 = HD_ALIGN;
+ bzt->radius = 1.0;
/* wrap it */
pyobj = BezTriple_CreatePyObject( bzt );
diff --git a/source/blender/python/api2_2x/CurNurb.c b/source/blender/python/api2_2x/CurNurb.c
index b2120bd63c6..63a1dccbc50 100644
--- a/source/blender/python/api2_2x/CurNurb.c
+++ b/source/blender/python/api2_2x/CurNurb.c
@@ -522,7 +522,7 @@ PyObject *CurNurb_appendPointToNurb( Nurb * nurb, PyObject * value )
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 @@ PyObject *CurNurb_appendPointToNurb( Nurb * nurb, PyObject * value )
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 @@ PyObject *CurNurb_appendPointToNurb( Nurb * nurb, PyObject * value )
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" );
}
diff --git a/source/blender/python/api2_2x/Curve.c b/source/blender/python/api2_2x/Curve.c
index 26208e600e6..d1abde19de9 100644
--- a/source/blender/python/api2_2x/Curve.c
+++ b/source/blender/python/api2_2x/Curve.c
@@ -822,6 +822,7 @@ static PyObject *Curve_appendNurb( BPy_Curve * self, PyObject * value )
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 @@ static PyObject *Curve_appendNurb( BPy_Curve * self, PyObject * value )
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); */
}