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>2009-06-25 14:11:37 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-06-25 14:11:37 +0400
commitd428ba1de8074e8b0ca2b7c0b060c18ebf7d6b0c (patch)
tree0200656374d9d08125eba99ecc009ca3e70cc7fb /source/gameengine/Expressions
parent7a357cba3994bee7d05c7a8bf5736eb94067d564 (diff)
PyAPI RNA/BGE
* all mathutils types now have optional callbacks * PyRNA returns mathutils quat and euler types automatically when they have the rotation subtype. * PyRNA, reuse the BPy_StructRNA PyObject rather name making a new one for each function returned. * use more arithb.c functions for Mathutils quaternion type (less inline cruft). * BGE Mathutils integration mostly finished- KX_PyMath now converts to Mathutils types rather then lists. * make all mathutils types share the same header so they can share a number of functions - dealloc, getWrapped, getOwner.
Diffstat (limited to 'source/gameengine/Expressions')
-rw-r--r--source/gameengine/Expressions/KX_Python.h2
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.cpp7
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.h8
3 files changed, 13 insertions, 4 deletions
diff --git a/source/gameengine/Expressions/KX_Python.h b/source/gameengine/Expressions/KX_Python.h
index b8006fdf0ed..61f7ef05042 100644
--- a/source/gameengine/Expressions/KX_Python.h
+++ b/source/gameengine/Expressions/KX_Python.h
@@ -32,6 +32,8 @@
//#define USE_DL_EXPORT
#include "Python.h"
+#define USE_MATHUTILS // Blender 2.5x api will use mathutils, for a while we might want to test without it
+
#ifdef __FreeBSD__
#include <osreldate.h>
#if __FreeBSD_version > 500039
diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp
index defb6853e67..2d4cc612aef 100644
--- a/source/gameengine/Expressions/PyObjectPlus.cpp
+++ b/source/gameengine/Expressions/PyObjectPlus.cpp
@@ -331,13 +331,18 @@ PyObject *PyObjectPlus::py_get_attrdef(void *self, const PyAttributeDef *attrdef
}
case KX_PYATTRIBUTE_TYPE_VECTOR:
{
- PyObject* resultlist = PyList_New(3);
MT_Vector3 *val = reinterpret_cast<MT_Vector3*>(ptr);
+#ifdef USE_MATHUTILS
+ float fval[3]= {(*val)[0], (*val)[1], (*val)[2]};
+ return newVectorObject(fval, 3, Py_NEW);
+#else
+ PyObject* resultlist = PyList_New(3);
for (unsigned int i=0; i<3; i++)
{
PyList_SET_ITEM(resultlist,i,PyFloat_FromDouble((*val)[i]));
}
return resultlist;
+#endif
}
case KX_PYATTRIBUTE_TYPE_STRING:
{
diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h
index 96c75b710a3..3b5eebe9893 100644
--- a/source/gameengine/Expressions/PyObjectPlus.h
+++ b/source/gameengine/Expressions/PyObjectPlus.h
@@ -41,13 +41,15 @@
#include "MT_Vector3.h"
#include "SG_QList.h"
-#define USE_MATHUTILS // Blender 2.5x api will use mathutils, for a while we might want to test without it
-
/*------------------------------
* Python defines
------------------------------*/
-
+#ifdef USE_MATHUTILS
+extern "C" {
+#include "../../blender/python/generic/Mathutils.h" /* so we can have mathutils callbacks */
+}
+#endif
#if PY_VERSION_HEX > 0x03000000
#define PyString_FromString PyUnicode_FromString