Revision: 15766
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15766
Author:   campbellbarton
Date:     2008-07-25 23:14:23 +0200 (Fri, 25 Jul 2008)

Log Message:
-----------
added exception messages to game engine matrix and vector conversions. also 
removed own unneeded defines in arithb.c

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/arithb.c
    trunk/blender/source/gameengine/Ketsji/KX_PyMath.h

Modified: trunk/blender/source/blender/blenlib/intern/arithb.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/arithb.c        2008-07-25 
18:57:16 UTC (rev 15765)
+++ trunk/blender/source/blender/blenlib/intern/arithb.c        2008-07-25 
21:14:23 UTC (rev 15766)
@@ -2536,11 +2536,6 @@
 }
 
 
-
-                       /* copied from Geometry.c - todo - move to arithb.c or 
some other generic place we can reuse */
-#define SIDE_OF_LINE(pa,pb,pp) 
((pa[0]-pp[0])*(pb[1]-pp[1]))-((pb[0]-pp[0])*(pa[1]-pp[1]))
-#define POINT_IN_TRI(p0,p1,p2,p3)      ((SIDE_OF_LINE(p1,p2,p0)>=0) && 
(SIDE_OF_LINE(p2,p3,p0)>=0) && (SIDE_OF_LINE(p3,p1,p0)>=0))
-
 /**
  * 
  * @param min 

Modified: trunk/blender/source/gameengine/Ketsji/KX_PyMath.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PyMath.h  2008-07-25 18:57:16 UTC 
(rev 15765)
+++ trunk/blender/source/gameengine/Ketsji/KX_PyMath.h  2008-07-25 21:14:23 UTC 
(rev 15766)
@@ -84,7 +84,10 @@
                }
        } else 
                noerror = false;
-        
+       
+       if (noerror==false)
+               PyErr_SetString(PyExc_TypeError, "could not be converted to a 
matrix (sequence of sequences)");
+       
        return noerror;
 }
 
@@ -97,9 +100,13 @@
        if (PySequence_Check(pyval))
        {
                unsigned int numitems = PySequence_Size(pyval);
-               if (numitems != Size(vec))
+               if (numitems != Size(vec)) {
+                       char err[128];
+                       sprintf(err, "error setting vector, %d args, should be 
%d", numitems, Size(vec));
+                       PyErr_SetString(PyExc_AttributeError, err);
                        return false;
-                       
+               }
+               
                for (unsigned int x = 0; x < numitems; x++)
                {
                        PyObject *item = PySequence_GetItem(pyval, x); /* new 
ref */
@@ -107,7 +114,17 @@
                        Py_DECREF(item);
                }
                
+               if (PyErr_Occurred()) {
+                       PyErr_SetString(PyExc_AttributeError, "one or more of 
the items in the sequence was not a float");
+                       return false;
+               }
+               
                return true;
+       } else
+       {
+               char err[128];
+               sprintf(err, "not a sequence type, expected a sequence of 
numbers size %d", Size(vec));
+               PyErr_SetString(PyExc_AttributeError, err);
        }
        
        return false;


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

Reply via email to