[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22820] branches/blender2.5/blender/source /gameengine: was casting the PyObjectPlus type to a PyObject for new BGE vector and matrix types , need to get its proxy instead.
Campbell Barton
ideasman42 at gmail.com
Thu Aug 27 18:34:16 CEST 2009
Revision: 22820
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22820
Author: campbellbarton
Date: 2009-08-27 18:34:13 +0200 (Thu, 27 Aug 2009)
Log Message:
-----------
was casting the PyObjectPlus type to a PyObject for new BGE vector and matrix types, need to get its proxy instead.
Modified Paths:
--------------
branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.h
branches/blender2.5/blender/source/gameengine/Ketsji/KX_GameObject.cpp
branches/blender2.5/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp
Modified: branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.h
===================================================================
--- branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.h 2009-08-27 15:22:41 UTC (rev 22819)
+++ branches/blender2.5/blender/source/gameengine/Expressions/PyObjectPlus.h 2009-08-27 16:34:13 UTC (rev 22820)
@@ -86,7 +86,7 @@
-typedef struct {
+typedef struct PyObjectPlus_Proxy {
PyObject_HEAD /* required python macro */
class PyObjectPlus *ref;
bool py_owns;
@@ -99,7 +99,10 @@
/* Note, sometimes we dont care what BGE type this is as long as its a proxy */
#define BGE_PROXY_CHECK_TYPE(_type) ((_type)->tp_dealloc == PyObjectPlus::py_base_dealloc)
+/* Opposite of BGE_PROXY_REF */
+#define BGE_PROXY_FROM_REF(_self) (((PyObjectPlus *)_self)->GetProxy())
+
// This must be the first line of each
// PyC++ class
#define __Py_Header \
Modified: branches/blender2.5/blender/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/Ketsji/KX_GameObject.cpp 2009-08-27 15:22:41 UTC (rev 22819)
+++ branches/blender2.5/blender/source/gameengine/Ketsji/KX_GameObject.cpp 2009-08-27 16:34:13 UTC (rev 22820)
@@ -1798,7 +1798,7 @@
PyObject* KX_GameObject::pyattr_get_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
- return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_GLOBAL);
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_GLOBAL);
#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyObjectFrom(self->NodeGetWorldPosition());
@@ -1820,7 +1820,7 @@
PyObject* KX_GameObject::pyattr_get_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
- return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_LOCAL);
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_LOCAL);
#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyObjectFrom(self->NodeGetLocalPosition());
@@ -1842,7 +1842,7 @@
PyObject* KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
- return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_INERTIA_LOCAL);
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_INERTIA_LOCAL);
#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
if (self->GetPhysicsController())
@@ -1854,7 +1854,7 @@
PyObject* KX_GameObject::pyattr_get_worldOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
- return newMatrixObject_cb((PyObject *)self_v, 3, 3, mathutils_kxgameob_matrix_cb_index, MATHUTILS_MAT_CB_ORI_GLOBAL);
+ return newMatrixObject_cb(BGE_PROXY_FROM_REF(self_v), 3, 3, mathutils_kxgameob_matrix_cb_index, MATHUTILS_MAT_CB_ORI_GLOBAL);
#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyObjectFrom(self->NodeGetWorldOrientation());
@@ -1879,7 +1879,7 @@
PyObject* KX_GameObject::pyattr_get_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
- return newMatrixObject_cb((PyObject *)self_v, 3, 3, mathutils_kxgameob_matrix_cb_index, MATHUTILS_MAT_CB_ORI_LOCAL);
+ return newMatrixObject_cb(BGE_PROXY_FROM_REF(self_v), 3, 3, mathutils_kxgameob_matrix_cb_index, MATHUTILS_MAT_CB_ORI_LOCAL);
#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyObjectFrom(self->NodeGetLocalOrientation());
@@ -1903,7 +1903,7 @@
PyObject* KX_GameObject::pyattr_get_worldScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
- return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_GLOBAL);
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_GLOBAL);
#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyObjectFrom(self->NodeGetWorldScaling());
@@ -1913,7 +1913,7 @@
PyObject* KX_GameObject::pyattr_get_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
- return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_LOCAL);
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_LOCAL);
#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyObjectFrom(self->NodeGetLocalScaling());
Modified: branches/blender2.5/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp 2009-08-27 15:22:41 UTC (rev 22819)
+++ branches/blender2.5/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp 2009-08-27 16:34:13 UTC (rev 22820)
@@ -467,7 +467,7 @@
PyObject* KX_ObjectActuator::pyattr_get_linV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
- return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxobactu_vector_cb_index, MATHUTILS_VEC_CB_LINV);
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxobactu_vector_cb_index, MATHUTILS_VEC_CB_LINV);
}
int KX_ObjectActuator::pyattr_set_linV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
@@ -481,7 +481,7 @@
PyObject* KX_ObjectActuator::pyattr_get_angV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
- return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxobactu_vector_cb_index, MATHUTILS_VEC_CB_ANGV);
+ return newVectorObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxobactu_vector_cb_index, MATHUTILS_VEC_CB_ANGV);
}
int KX_ObjectActuator::pyattr_set_angV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
More information about the Bf-blender-cvs
mailing list