From 7f721d06aaf48dd543441f4022c5c59fda0d13b8 Mon Sep 17 00:00:00 2001 From: Tamito Kajiyama Date: Fri, 25 Jan 2013 07:31:29 +0000 Subject: Fix for no copy constructor in the Python wrapper of StrokeAttribute. --- .../intern/python/BPy_StrokeAttribute.cpp | 44 ++++++++++++---------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'source') diff --git a/source/blender/freestyle/intern/python/BPy_StrokeAttribute.cpp b/source/blender/freestyle/intern/python/BPy_StrokeAttribute.cpp index e68cc3fd28b..9e723d4236b 100644 --- a/source/blender/freestyle/intern/python/BPy_StrokeAttribute.cpp +++ b/source/blender/freestyle/intern/python/BPy_StrokeAttribute.cpp @@ -73,29 +73,33 @@ static int StrokeAttribute___init__(BPy_StrokeAttribute *self, PyObject *args, P PyObject *obj1 = 0, *obj2 = 0 , *obj3 = 0, *obj4 = 0, *obj5 = 0 , *obj6 = 0; - if (! PyArg_ParseTuple(args, "|OOOOOO", &obj1, &obj2, &obj3, &obj4, &obj5, &obj6) ) - return -1; + if (! PyArg_ParseTuple(args, "|OOOOOO", &obj1, &obj2, &obj3, &obj4, &obj5, &obj6) ) + return -1; + + if ( !obj1 ) { - if( !obj1 || !obj2 || !obj3 ){ - self->sa = new StrokeAttribute(); - - } else if( BPy_StrokeAttribute_Check(obj1) && + + } else if ( BPy_StrokeAttribute_Check(obj1) && !obj2 ) { + + self->sa = new StrokeAttribute( *( ((BPy_StrokeAttribute *) obj1)->sa ) ); + + } else if ( BPy_StrokeAttribute_Check(obj1) && BPy_StrokeAttribute_Check(obj2) && - PyFloat_Check(obj3) ) { - - self->sa = new StrokeAttribute( *( ((BPy_StrokeAttribute *) obj1)->sa ), - *( ((BPy_StrokeAttribute *) obj2)->sa ), - PyFloat_AsDouble( obj3 ) ); - - } else if( obj4 && obj5 && obj6 ) { - - self->sa = new StrokeAttribute( PyFloat_AsDouble( obj1 ), - PyFloat_AsDouble( obj2 ), - PyFloat_AsDouble( obj3 ), - PyFloat_AsDouble( obj4 ), - PyFloat_AsDouble( obj5 ), - PyFloat_AsDouble( obj6 ) ); + PyFloat_Check(obj3) && !obj4 ) { + + self->sa = new StrokeAttribute( *( ((BPy_StrokeAttribute *) obj1)->sa ), + *( ((BPy_StrokeAttribute *) obj2)->sa ), + PyFloat_AsDouble( obj3 ) ); + + } else if ( obj6 ) { + + self->sa = new StrokeAttribute( PyFloat_AsDouble( obj1 ), + PyFloat_AsDouble( obj2 ), + PyFloat_AsDouble( obj3 ), + PyFloat_AsDouble( obj4 ), + PyFloat_AsDouble( obj5 ), + PyFloat_AsDouble( obj6 ) ); } else { PyErr_SetString(PyExc_TypeError, "invalid arguments"); -- cgit v1.2.3