[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24923] trunk/blender/source/blender/ python/generic/vector.c: Mathutils vec += vec wasnt running mathutls callbacks

Campbell Barton ideasman42 at gmail.com
Thu Nov 26 17:19:20 CET 2009


Revision: 24923
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24923
Author:   campbellbarton
Date:     2009-11-26 17:19:20 +0100 (Thu, 26 Nov 2009)

Log Message:
-----------
Mathutils vec += vec wasnt running mathutls callbacks

Modified Paths:
--------------
    trunk/blender/source/blender/python/generic/vector.c

Modified: trunk/blender/source/blender/python/generic/vector.c
===================================================================
--- trunk/blender/source/blender/python/generic/vector.c	2009-11-26 16:05:32 UTC (rev 24922)
+++ trunk/blender/source/blender/python/generic/vector.c	2009-11-26 16:19:20 UTC (rev 24923)
@@ -626,36 +626,30 @@
 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------------------------------





More information about the Bf-blender-cvs mailing list