[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28471] trunk/blender/source: remove redundant argument from mathutils callbacks
Dalai Felinto
dfelinto at gmail.com
Thu May 6 23:25:40 CEST 2010
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 <ideasman42 at gmail.com>:
> 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
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
More information about the Bf-committers
mailing list