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-26 00:47:41 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-06-26 00:47:41 +0400
commit4b914c7f75faa65a7d2a991b7904c18051d13a13 (patch)
tree35ff731a37f612e491f21ee1b036f3d1679e9a69 /source/gameengine/Ketsji/KX_PyMath.h
parent47ca543b32e74b67e5f8eb6265cc08f93018b002 (diff)
Made Mathutils use radians rather then degrees. defining USE_MATHUTILS_DEG for testing existing scripts.
Added conversion for BGE Quaternion WXYZ (Blender/C) -> XYZW (Moto C++). BGE Python API now uses WXYZ following mathutils (break script warning).
Diffstat (limited to 'source/gameengine/Ketsji/KX_PyMath.h')
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/source/gameengine/Ketsji/KX_PyMath.h b/source/gameengine/Ketsji/KX_PyMath.h
index 90a13425aa0..f37925bb0ab 100644
--- a/source/gameengine/Ketsji/KX_PyMath.h
+++ b/source/gameengine/Ketsji/KX_PyMath.h
@@ -116,6 +116,16 @@ bool PyVecTo(PyObject* pyval, T& vec)
vec.getValue((float *) pyvec->vec);
return true;
}
+ else if(QuaternionObject_Check(pyval)) {
+ QuaternionObject *pyquat= (QuaternionObject *)pyval;
+ if (4 != Size(vec)) {
+ PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", 4, Size(vec));
+ return false;
+ }
+ /* xyzw -> wxyz reordering is done by PyQuatTo */
+ vec.getValue((float *) pyquat->quat);
+ return true;
+ }
else if(EulerObject_Check(pyval)) {
EulerObject *pyeul= (EulerObject *)pyval;
if (3 != Size(vec)) {
@@ -186,6 +196,9 @@ bool PyVecTo(PyObject* pyval, T& vec)
return false;
}
+
+bool PyQuatTo(PyObject* pyval, MT_Quaternion &qrot);
+
bool PyOrientationTo(PyObject* pyval, MT_Matrix3x3 &mat, const char *error_prefix);
/**
@@ -208,6 +221,13 @@ PyObject* PyObjectFrom(const MT_Tuple2 &vec);
*/
PyObject* PyObjectFrom(const MT_Tuple3 &vec);
+#ifdef USE_MATHUTILS
+/**
+ * Converts an MT_Quaternion to a python object.
+ */
+PyObject* PyObjectFrom(const MT_Quaternion &qrot);
+#endif
+
/**
* Converts an MT_Tuple4 to a python object.
*/