diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-11-26 19:19:20 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-11-26 19:19:20 +0300 |
commit | 383093957ad4a0d06b4e0805530cef07e187345e (patch) | |
tree | 5200431b5b773e45de9709e0e4e405f781247ecc /source/blender/python/generic | |
parent | c3937c93d58f015ae5d08396b1e613afcbbf8707 (diff) |
Mathutils vec += vec wasnt running mathutls callbacks
Diffstat (limited to 'source/blender/python/generic')
-rw-r--r-- | source/blender/python/generic/vector.c | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/source/blender/python/generic/vector.c b/source/blender/python/generic/vector.c index 8d1356f62f4..b3e54ac2250 100644 --- a/source/blender/python/generic/vector.c +++ b/source/blender/python/generic/vector.c @@ -626,36 +626,30 @@ static PyObject *Vector_add(PyObject * v1, PyObject * v2) static PyObject *Vector_iadd(PyObject * v1, PyObject * v2) { int i; - VectorObject *vec1 = NULL, *vec2 = NULL; + + if (!VectorObject_Check(v1) || !VectorObject_Check(v2)) { + PyErr_SetString(PyExc_AttributeError, "Vector addition: arguments not valid for this operation....\n"); + return NULL; + } + vec1 = (VectorObject*)v1; + vec2 = (VectorObject*)v2; - if VectorObject_Check(v1) - vec1= (VectorObject *)v1; - - if VectorObject_Check(v2) - vec2= (VectorObject *)v2; - - /* make sure v1 is always the vector */ - if (vec1 && vec2 ) { - - if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2)) - return NULL; - - /*VECTOR + VECTOR*/ - if(vec1->size != vec2->size) { - PyErr_SetString(PyExc_AttributeError, "Vector addition: vectors must have the same dimensions for this operation\n"); - return NULL; - } - for(i = 0; i < vec1->size; i++) { - vec1->vec[i] += vec2->vec[i]; - } - Py_INCREF( v1 ); - return v1; + if(vec1->size != vec2->size) { + PyErr_SetString(PyExc_AttributeError, "Vector addition: vectors must have the same dimensions for this operation\n"); + return NULL; } + if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2)) + return NULL; + + for(i = 0; i < vec1->size; i++) { + vec1->vec[i] = vec1->vec[i] + vec2->vec[i]; + } + BaseMath_WriteCallback(vec1); - PyErr_SetString(PyExc_AttributeError, "Vector addition: arguments not valid for this operation....\n"); - return NULL; + Py_INCREF( v1 ); + return v1; } /*------------------------obj - obj------------------------------ |