Sorry for the inconvenience, Ill look into fixing now. On Thu, May 6, 2010 at 11:25 PM, Dalai Felinto <[email protected]> wrote: > Hi Campbell > This commit introduced a big bug in BGE: > > object vector operations (position) not working properly after rev. 28471 > http://projects.blender.org/tracker/index.php?func=detail&aid=22269&group_id=9&atid=498 > > In case you don't have the time to fix it, could that be at least reverted? > Thanks, > > Dalai > > -- > blenderecia.orgfree.com > > 2010/4/27 Campbell Barton <[email protected]>: >> Revision: 28471 >> >> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28471 >> Author: campbellbarton >> Date: 2010-04-27 21:21:36 +0200 (Tue, 27 Apr 2010) >> >> Log Message: >> ----------- >> remove redundant argument from mathutils callbacks >> >> Modified Paths: >> -------------- >> trunk/blender/source/blender/python/generic/mathutils.c >> trunk/blender/source/blender/python/generic/mathutils.h >> trunk/blender/source/blender/python/generic/mathutils_matrix.c >> trunk/blender/source/blender/python/intern/bpy_rna.c >> trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp >> trunk/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp >> >> Modified: trunk/blender/source/blender/python/generic/mathutils.c >> =================================================================== >> --- trunk/blender/source/blender/python/generic/mathutils.c 2010-04-27 >> 18:55:25 UTC (rev 28470) >> +++ trunk/blender/source/blender/python/generic/mathutils.c 2010-04-27 >> 19:21:36 UTC (rev 28471) >> @@ -646,7 +646,7 @@ >> int _BaseMathObject_ReadCallback(BaseMathObject *self) >> { >> Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; >> - if(cb->get(self, self->cb_subtype, self->data)) >> + if(cb->get(self, self->cb_subtype)) >> return 1; >> >> PyErr_Format(PyExc_SystemError, "%s user has become invalid", >> Py_TYPE(self)->tp_name); >> @@ -656,7 +656,7 @@ >> int _BaseMathObject_WriteCallback(BaseMathObject *self) >> { >> Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; >> - if(cb->set(self, self->cb_subtype, self->data)) >> + if(cb->set(self, self->cb_subtype)) >> return 1; >> >> PyErr_Format(PyExc_SystemError, "%s user has become invalid", >> Py_TYPE(self)->tp_name); >> @@ -666,7 +666,7 @@ >> int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index) >> { >> Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; >> - if(cb->get_index(self, self->cb_subtype, self->data, index)) >> + if(cb->get_index(self, self->cb_subtype, index)) >> return 1; >> >> PyErr_Format(PyExc_SystemError, "%s user has become invalid", >> Py_TYPE(self)->tp_name); >> @@ -676,7 +676,7 @@ >> int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index) >> { >> Mathutils_Callback *cb= mathutils_callbacks[self->cb_type]; >> - if(cb->set_index(self, self->cb_subtype, self->data, index)) >> + if(cb->set_index(self, self->cb_subtype, index)) >> return 1; >> >> PyErr_Format(PyExc_SystemError, "%s user has become invalid", >> Py_TYPE(self)->tp_name); >> >> Modified: trunk/blender/source/blender/python/generic/mathutils.h >> =================================================================== >> --- trunk/blender/source/blender/python/generic/mathutils.h 2010-04-27 >> 18:55:25 UTC (rev 28470) >> +++ trunk/blender/source/blender/python/generic/mathutils.h 2010-04-27 >> 19:21:36 UTC (rev 28471) >> @@ -89,10 +89,10 @@ >> typedef struct Mathutils_Callback Mathutils_Callback; >> >> typedef int (*BaseMathCheckFunc)(BaseMathObject *); >> /* checks the user is still valid */ >> -typedef int (*BaseMathGetFunc)(BaseMathObject *, int, float *); >> /* gets the vector from the user */ >> -typedef int (*BaseMathSetFunc)(BaseMathObject *, int, float *); >> /* sets the users vector values once the vector is >> modified */ >> -typedef int (*BaseMathGetIndexFunc)(BaseMathObject *, int, float *, int); >> /* same as above but only for an index */ >> -typedef int (*BaseMathSetIndexFunc)(BaseMathObject *, int, float *, int); >> /* same as above but only for an index */ >> +typedef int (*BaseMathGetFunc)(BaseMathObject *, int); >> /* gets the vector from the user */ >> +typedef int (*BaseMathSetFunc)(BaseMathObject *, int); >> /* sets the users vector values once the vector is modified */ >> +typedef int (*BaseMathGetIndexFunc)(BaseMathObject *, int, int); /* >> same as above but only for an index */ >> +typedef int (*BaseMathSetIndexFunc)(BaseMathObject *, int, int); /* >> same as above but only for an index */ >> >> struct Mathutils_Callback { >> BaseMathCheckFunc check; >> >> Modified: trunk/blender/source/blender/python/generic/mathutils_matrix.c >> =================================================================== >> --- trunk/blender/source/blender/python/generic/mathutils_matrix.c >> 2010-04-27 18:55:25 UTC (rev 28470) >> +++ trunk/blender/source/blender/python/generic/mathutils_matrix.c >> 2010-04-27 19:21:36 UTC (rev 28471) >> @@ -43,7 +43,7 @@ >> return BaseMath_ReadCallback(self); >> } >> >> -static int mathutils_matrix_vector_get(BaseMathObject *bmo, int subtype, >> float *vec_from) >> +static int mathutils_matrix_vector_get(BaseMathObject *bmo, int subtype) >> { >> MatrixObject *self= (MatrixObject *)bmo->cb_user; >> int i; >> @@ -52,12 +52,12 @@ >> return 0; >> >> for(i=0; i < self->colSize; i++) >> - vec_from[i]= self->matrix[subtype][i]; >> + bmo->data[i]= self->matrix[subtype][i]; >> >> return 1; >> } >> >> -static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype, >> float *vec_to) >> +static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype) >> { >> MatrixObject *self= (MatrixObject *)bmo->cb_user; >> int i; >> @@ -66,31 +66,31 @@ >> return 0; >> >> for(i=0; i < self->colSize; i++) >> - self->matrix[subtype][i]= vec_to[i]; >> + self->matrix[subtype][i]= bmo->data[i]; >> >> BaseMath_WriteCallback(self); >> return 1; >> } >> >> -static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int >> subtype, float *vec_from, int index) >> +static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int >> subtype, int index) >> { >> MatrixObject *self= (MatrixObject *)bmo->cb_user; >> >> if(!BaseMath_ReadCallback(self)) >> return 0; >> >> - vec_from[index]= self->matrix[subtype][index]; >> + bmo->data[index]= self->matrix[subtype][index]; >> return 1; >> } >> >> -static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int >> subtype, float *vec_to, int index) >> +static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int >> subtype, int index) >> { >> MatrixObject *self= (MatrixObject *)bmo->cb_user; >> >> if(!BaseMath_ReadCallback(self)) >> return 0; >> >> - self->matrix[subtype][index]= vec_to[index]; >> + self->matrix[subtype][index]= bmo->data[index]; >> >> BaseMath_WriteCallback(self); >> return 1; >> >> Modified: trunk/blender/source/blender/python/intern/bpy_rna.c >> =================================================================== >> --- trunk/blender/source/blender/python/intern/bpy_rna.c 2010-04-27 >> 18:55:25 UTC (rev 28470) >> +++ trunk/blender/source/blender/python/intern/bpy_rna.c 2010-04-27 >> 19:21:36 UTC (rev 28471) >> @@ -74,13 +74,13 @@ >> return self->prop ? 1:0; >> } >> >> -static int mathutils_rna_vector_get(BaseMathObject *bmo, int subtype, float >> *vec_from) >> +static int mathutils_rna_vector_get(BaseMathObject *bmo, int subtype) >> { >> BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user; >> if(self->prop==NULL) >> return 0; >> >> - RNA_property_float_get_array(&self->ptr, self->prop, vec_from); >> + RNA_property_float_get_array(&self->ptr, self->prop, bmo->data); >> >> /* Euler order exception */ >> if(subtype==MATHUTILS_CB_SUBTYPE_EUL) { >> @@ -92,7 +92,7 @@ >> return 1; >> } >> >> -static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype, float >> *vec_to) >> +static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype) >> { >> BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user; >> float min, max; >> @@ -104,11 +104,11 @@ >> if(min != FLT_MIN || max != FLT_MAX) { >> int i, len= RNA_property_array_length(&self->ptr, self->prop); >> for(i=0; i<len; i++) { >> - CLAMP(vec_to[i], min, max); >> + CLAMP(bmo->data[i], min, max); >> } >> } >> >> - RNA_property_float_set_array(&self->ptr, self->prop, vec_to); >> + RNA_property_float_set_array(&self->ptr, self->prop, bmo->data); >> RNA_property_update(BPy_GetContext(), &self->ptr, self->prop); >> >> /* Euler order exception */ >> @@ -124,26 +124,26 @@ >> return 1; >> } >> >> -static int mathutils_rna_vector_get_index(BaseMathObject *bmo, int subtype, >> float *vec_from, int index) >> +static int mathutils_rna_vector_get_index(BaseMathObject *bmo, int subtype, >> int index) >> { >> BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user; >> >> if(self->prop==NULL) >> return 0; >> >> - vec_from[index]= RNA_property_float_get_index(&self->ptr, >> self->prop, index); >> + bmo->data[index]= RNA_property_float_get_index(&self->ptr, >> self->prop, index); >> return 1; >> } >> >> -static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int subtype, >> float *vec_to, int index) >> +static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int subtype, >> int index) >> { >> BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user; >> >> if(self->prop==NULL) >> return 0; >> >> - RNA_property_float_clamp(&self->ptr, self->prop, &vec_to[index]); >> - RNA_property_float_set_index(&self->ptr, self->prop, index, >> vec_to[index]); >> + RNA_property_float_clamp(&self->ptr, self->prop, &bmo->data[index]); >> + RNA_property_float_set_index(&self->ptr, self->prop, index, >> bmo->data[index]); >> RNA_property_update(BPy_GetContext(), &self->ptr, self->prop); >> return 1; >> } >> @@ -160,35 +160,35 @@ >> /* bpyrna matrix callbacks */ >> static int mathutils_rna_matrix_cb_index= -1; /* index for our callbacks */ >> >> -static int mathutils_rna_matrix_get(BaseMathObject *bmo, int subtype, float >> *mat_from) >> +static int mathutils_rna_matrix_get(BaseMathObject *bmo, int subtype) >> { >> BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user; >> >> if(self->prop==NULL) >> return 0; >> >> - RNA_property_float_get_array(&self->ptr, self->prop, mat_from); >> + RNA_property_float_get_array(&self->ptr, self->prop, bmo->data); >> return 1; >> } >> >> -static int mathutils_rna_matrix_set(BaseMathObject *bmo, int subtype, float >> *mat_to) >> +static int mathutils_rna_matrix_set(BaseMathObject *bmo, int subtype) >> { >> BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user; >> >> if(self->prop==NULL) >> return 0; >> /* can ignore clamping here */ >> - RNA_property_float_set_array(&self->ptr, self->prop, mat_to); >> + RNA_property_float_set_array(&self->ptr, self->prop, bmo->data); >> RNA_property_update(BPy_GetContext(), &self->ptr, self->prop); >> return 1; >> } >> >> Mathutils_Callback mathutils_rna_matrix_cb = { >> - (BaseMathCheckFunc) mathutils_rna_generic_check, >> - (BaseMathGetFunc) mathutils_rna_matrix_get, >> - (BaseMathSetFunc) mathutils_rna_matrix_set, >> - (BaseMathGetIndexFunc) NULL, >> - (BaseMathSetIndexFunc) NULL >> + mathutils_rna_generic_check, >> + mathutils_rna_matrix_get, >> + mathutils_rna_matrix_set, >> + NULL, >> + NULL >> }; >> >> /* same as RNA_enum_value_from_id but raises an exception */ >> >> Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp >> =================================================================== >> --- trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp 2010-04-27 >> 18:55:25 UTC (rev 28470) >> +++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp 2010-04-27 >> 19:21:36 UTC (rev 28471) >> @@ -1261,7 +1261,7 @@ >> return 1; >> } >> >> -static int mathutils_kxgameob_vector_get(BaseMathObject *bmo, int subtype, >> float *vec_from) >> +static int mathutils_kxgameob_vector_get(BaseMathObject *bmo, int subtype) >> { >> KX_GameObject* self= >> static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user); >> if(self==NULL) >> @@ -1269,39 +1269,39 @@ >> >> switch(subtype) { >> case MATHUTILS_VEC_CB_POS_LOCAL: >> - self->NodeGetLocalPosition().getValue(vec_from); >> + self->NodeGetLocalPosition().getValue(bmo->data); >> break; >> case MATHUTILS_VEC_CB_POS_GLOBAL: >> - self->NodeGetWorldPosition().getValue(vec_from); >> >> @@ Diff output truncated at 10240 characters. @@ >> >> _______________________________________________ >> Bf-blender-cvs mailing list >> [email protected] >> http://lists.blender.org/mailman/listinfo/bf-blender-cvs >> > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers >
-- - Campbell _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
