oversight in recent mathutils update. obj.matrix = obj.matrix would call its own updage callbacks until it crashed.

This commit is contained in:
2010-04-27 18:55:25 +00:00
parent d6b71243c2
commit f9fbfd9297

View File

@@ -37,44 +37,44 @@ static PyObject *column_vector_multiplication(MatrixObject * mat, VectorObject*
/* matrix vector callbacks */ /* matrix vector callbacks */
int mathutils_matrix_vector_cb_index= -1; int mathutils_matrix_vector_cb_index= -1;
static int mathutils_matrix_vector_check(BaseMathObject *self_p) static int mathutils_matrix_vector_check(BaseMathObject *bmo)
{ {
MatrixObject *self= (MatrixObject *)self_p; MatrixObject *self= (MatrixObject *)bmo->cb_user;
return BaseMath_ReadCallback(self); return BaseMath_ReadCallback(self);
} }
static int mathutils_matrix_vector_get(BaseMathObject *self_p, int subtype, float *vec_from) static int mathutils_matrix_vector_get(BaseMathObject *bmo, int subtype, float *vec_from)
{ {
MatrixObject *self= (MatrixObject *)self_p; MatrixObject *self= (MatrixObject *)bmo->cb_user;
int i; int i;
if(!BaseMath_ReadCallback(self)) if(!BaseMath_ReadCallback(self))
return 0; return 0;
for(i=0; i<self->colSize; i++) for(i=0; i < self->colSize; i++)
vec_from[i]= self->matrix[subtype][i]; vec_from[i]= self->matrix[subtype][i];
return 1; return 1;
} }
static int mathutils_matrix_vector_set(BaseMathObject *self_p, int subtype, float *vec_to) static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype, float *vec_to)
{ {
MatrixObject *self= (MatrixObject *)self_p; MatrixObject *self= (MatrixObject *)bmo->cb_user;
int i; int i;
if(!BaseMath_ReadCallback(self)) if(!BaseMath_ReadCallback(self))
return 0; return 0;
for(i=0; i<self->colSize; i++) for(i=0; i < self->colSize; i++)
self->matrix[subtype][i]= vec_to[i]; self->matrix[subtype][i]= vec_to[i];
BaseMath_WriteCallback(self); BaseMath_WriteCallback(self);
return 1; return 1;
} }
static int mathutils_matrix_vector_get_index(BaseMathObject *self_p, int subtype, float *vec_from, int index) static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int subtype, float *vec_from, int index)
{ {
MatrixObject *self= (MatrixObject *)self_p; MatrixObject *self= (MatrixObject *)bmo->cb_user;
if(!BaseMath_ReadCallback(self)) if(!BaseMath_ReadCallback(self))
return 0; return 0;
@@ -83,9 +83,9 @@ static int mathutils_matrix_vector_get_index(BaseMathObject *self_p, int subtype
return 1; return 1;
} }
static int mathutils_matrix_vector_set_index(BaseMathObject *self_p, int subtype, float *vec_to, int index) static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int subtype, float *vec_to, int index)
{ {
MatrixObject *self= (MatrixObject*)self_p; MatrixObject *self= (MatrixObject *)bmo->cb_user;
if(!BaseMath_ReadCallback(self)) if(!BaseMath_ReadCallback(self))
return 0; return 0;