forked from bartvdbraak/blender
change return values from mathutils callbacks to match pythons (-1 is error), so error macro's can be used in both.
This commit is contained in:
parent
506e8aa437
commit
7348a50d79
@ -152,7 +152,7 @@ int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *
|
|||||||
(QuaternionObject_Check(value) && (size= 4)) ||
|
(QuaternionObject_Check(value) && (size= 4)) ||
|
||||||
(ColorObject_Check(value) && (size= 3))
|
(ColorObject_Check(value) && (size= 3))
|
||||||
) {
|
) {
|
||||||
if(!BaseMath_ReadCallback((BaseMathObject *)value)) {
|
if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *
|
|||||||
int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix)
|
int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error_prefix)
|
||||||
{
|
{
|
||||||
if(EulerObject_Check(value)) {
|
if(EulerObject_Check(value)) {
|
||||||
if(!BaseMath_ReadCallback((BaseMathObject *)value)) {
|
if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -184,7 +184,7 @@ int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (QuaternionObject_Check(value)) {
|
else if (QuaternionObject_Check(value)) {
|
||||||
if(!BaseMath_ReadCallback((BaseMathObject *)value)) {
|
if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -195,7 +195,7 @@ int mathutils_any_to_rotmat(float rmat[3][3], PyObject *value, const char *error
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (MatrixObject_Check(value)) {
|
else if (MatrixObject_Check(value)) {
|
||||||
if(!BaseMath_ReadCallback((BaseMathObject *)value)) {
|
if(BaseMath_ReadCallback((BaseMathObject *)value) == -1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else if(((MatrixObject *)value)->col_size < 3 || ((MatrixObject *)value)->row_size < 3) {
|
else if(((MatrixObject *)value)->col_size < 3 || ((MatrixObject *)value)->row_size < 3) {
|
||||||
@ -274,45 +274,45 @@ int Mathutils_RegisterCallback(Mathutils_Callback *cb)
|
|||||||
int _BaseMathObject_ReadCallback(BaseMathObject *self)
|
int _BaseMathObject_ReadCallback(BaseMathObject *self)
|
||||||
{
|
{
|
||||||
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
||||||
if(cb->get(self, self->cb_subtype))
|
if(cb->get(self, self->cb_subtype) != -1)
|
||||||
return 1;
|
return 0;
|
||||||
|
|
||||||
if(!PyErr_Occurred())
|
if(!PyErr_Occurred())
|
||||||
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _BaseMathObject_WriteCallback(BaseMathObject *self)
|
int _BaseMathObject_WriteCallback(BaseMathObject *self)
|
||||||
{
|
{
|
||||||
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
||||||
if(cb->set(self, self->cb_subtype))
|
if(cb->set(self, self->cb_subtype) != -1)
|
||||||
return 1;
|
return 0;
|
||||||
|
|
||||||
if(!PyErr_Occurred())
|
if(!PyErr_Occurred())
|
||||||
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index)
|
int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index)
|
||||||
{
|
{
|
||||||
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
||||||
if(cb->get_index(self, self->cb_subtype, index))
|
if(cb->get_index(self, self->cb_subtype, index) != -1)
|
||||||
return 1;
|
return 0;
|
||||||
|
|
||||||
if(!PyErr_Occurred())
|
if(!PyErr_Occurred())
|
||||||
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index)
|
int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index)
|
||||||
{
|
{
|
||||||
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
Mathutils_Callback *cb= mathutils_callbacks[self->cb_type];
|
||||||
if(cb->set_index(self, self->cb_subtype, index))
|
if(cb->set_index(self, self->cb_subtype, index) != -1)
|
||||||
return 1;
|
return 0;
|
||||||
|
|
||||||
if(!PyErr_Occurred())
|
if(!PyErr_Occurred())
|
||||||
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
PyErr_Format(PyExc_RuntimeError, "%s user has become invalid", Py_TYPE(self)->tp_name);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* BaseMathObject generic functions for all mathutils types */
|
/* BaseMathObject generic functions for all mathutils types */
|
||||||
|
@ -99,10 +99,10 @@ int _BaseMathObject_ReadIndexCallback(BaseMathObject *self, int index);
|
|||||||
int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index);
|
int _BaseMathObject_WriteIndexCallback(BaseMathObject *self, int index);
|
||||||
|
|
||||||
/* since this is called so often avoid where possible */
|
/* since this is called so often avoid where possible */
|
||||||
#define BaseMath_ReadCallback(_self) (((_self)->cb_user ? _BaseMathObject_ReadCallback((BaseMathObject *)_self):1))
|
#define BaseMath_ReadCallback(_self) (((_self)->cb_user ? _BaseMathObject_ReadCallback((BaseMathObject *)_self):0))
|
||||||
#define BaseMath_WriteCallback(_self) (((_self)->cb_user ?_BaseMathObject_WriteCallback((BaseMathObject *)_self):1))
|
#define BaseMath_WriteCallback(_self) (((_self)->cb_user ?_BaseMathObject_WriteCallback((BaseMathObject *)_self):0))
|
||||||
#define BaseMath_ReadIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_ReadIndexCallback((BaseMathObject *)_self, _index):1))
|
#define BaseMath_ReadIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_ReadIndexCallback((BaseMathObject *)_self, _index):0))
|
||||||
#define BaseMath_WriteIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_WriteIndexCallback((BaseMathObject *)_self, _index):1))
|
#define BaseMath_WriteIndexCallback(_self, _index) (((_self)->cb_user ? _BaseMathObject_WriteIndexCallback((BaseMathObject *)_self, _index):0))
|
||||||
|
|
||||||
/* utility func */
|
/* utility func */
|
||||||
int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix);
|
int mathutils_array_parse(float *array, int array_min, int array_max, PyObject *value, const char *error_prefix);
|
||||||
|
@ -97,7 +97,7 @@ static char Color_copy_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Color_copy(ColorObject *self)
|
static PyObject *Color_copy(ColorObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return newColorObject(self->col, Py_NEW, Py_TYPE(self));
|
return newColorObject(self->col, Py_NEW, Py_TYPE(self));
|
||||||
@ -110,7 +110,7 @@ static PyObject *Color_repr(ColorObject * self)
|
|||||||
{
|
{
|
||||||
PyObject *ret, *tuple;
|
PyObject *ret, *tuple;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
tuple= Color_ToTupleExt(self, -1);
|
tuple= Color_ToTupleExt(self, -1);
|
||||||
@ -132,7 +132,7 @@ static PyObject* Color_richcmpr(PyObject *a, PyObject *b, int op)
|
|||||||
ColorObject *colA= (ColorObject*)a;
|
ColorObject *colA= (ColorObject*)a;
|
||||||
ColorObject *colB= (ColorObject*)b;
|
ColorObject *colB= (ColorObject*)b;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(colA) || !BaseMath_ReadCallback(colB))
|
if(BaseMath_ReadCallback(colA) == -1 || BaseMath_ReadCallback(colB) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ok= EXPP_VectorsAreEqual(colA->col, colB->col, COLOR_SIZE, 1) ? 0 : -1;
|
ok= EXPP_VectorsAreEqual(colA->col, colB->col, COLOR_SIZE, 1) ? 0 : -1;
|
||||||
@ -177,7 +177,7 @@ static PyObject *Color_item(ColorObject * self, int i)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadIndexCallback(self, i))
|
if(BaseMath_ReadIndexCallback(self, i) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyFloat_FromDouble(self->col[i]);
|
return PyFloat_FromDouble(self->col[i]);
|
||||||
@ -203,7 +203,7 @@ static int Color_ass_item(ColorObject * self, int i, PyObject * value)
|
|||||||
|
|
||||||
self->col[i] = f;
|
self->col[i] = f;
|
||||||
|
|
||||||
if(!BaseMath_WriteIndexCallback(self, i))
|
if(BaseMath_WriteIndexCallback(self, i) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -215,7 +215,7 @@ static PyObject *Color_slice(ColorObject * self, int begin, int end)
|
|||||||
PyObject *tuple;
|
PyObject *tuple;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
CLAMP(begin, 0, COLOR_SIZE);
|
CLAMP(begin, 0, COLOR_SIZE);
|
||||||
@ -237,7 +237,7 @@ static int Color_ass_slice(ColorObject * self, int begin, int end, PyObject * se
|
|||||||
int i, size;
|
int i, size;
|
||||||
float col[COLOR_SIZE];
|
float col[COLOR_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
CLAMP(begin, 0, COLOR_SIZE);
|
CLAMP(begin, 0, COLOR_SIZE);
|
||||||
@ -359,7 +359,7 @@ static PyObject *Color_getChannelHSV( ColorObject * self, void *type )
|
|||||||
float hsv[3];
|
float hsv[3];
|
||||||
int i= GET_INT_FROM_POINTER(type);
|
int i= GET_INT_FROM_POINTER(type);
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2]));
|
rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2]));
|
||||||
@ -378,7 +378,7 @@ static int Color_setChannelHSV(ColorObject * self, PyObject * value, void * type
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2]));
|
rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2]));
|
||||||
@ -386,7 +386,7 @@ static int Color_setChannelHSV(ColorObject * self, PyObject * value, void * type
|
|||||||
hsv[i] = f;
|
hsv[i] = f;
|
||||||
hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2]));
|
hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2]));
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -398,7 +398,7 @@ static PyObject *Color_getHSV(ColorObject * self, void *UNUSED(closure))
|
|||||||
float hsv[3];
|
float hsv[3];
|
||||||
PyObject *ret;
|
PyObject *ret;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2]));
|
rgb_to_hsv(self->col[0], self->col[1], self->col[2], &(hsv[0]), &(hsv[1]), &(hsv[2]));
|
||||||
@ -423,7 +423,7 @@ static int Color_setHSV(ColorObject * self, PyObject * value, void *UNUSED(closu
|
|||||||
|
|
||||||
hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2]));
|
hsv_to_rgb(hsv[0], hsv[1], hsv[2], &(self->col[0]), &(self->col[1]), &(self->col[2]));
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -138,7 +138,7 @@ static PyObject *Euler_to_quaternion(EulerObject * self)
|
|||||||
{
|
{
|
||||||
float quat[4];
|
float quat[4];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
eulO_to_quat(quat, self->eul, self->order);
|
eulO_to_quat(quat, self->eul, self->order);
|
||||||
@ -159,7 +159,7 @@ static PyObject *Euler_to_matrix(EulerObject * self)
|
|||||||
{
|
{
|
||||||
float mat[9];
|
float mat[9];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
eulO_to_mat3((float (*)[3])mat, self->eul, self->order);
|
eulO_to_mat3((float (*)[3])mat, self->eul, self->order);
|
||||||
@ -177,7 +177,9 @@ static PyObject *Euler_zero(EulerObject * self)
|
|||||||
{
|
{
|
||||||
zero_v3(self->eul);
|
zero_v3(self->eul);
|
||||||
|
|
||||||
(void)BaseMath_WriteCallback(self);
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,7 +207,7 @@ static PyObject *Euler_rotate_axis(EulerObject * self, PyObject *args)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
|
||||||
@ -228,7 +230,7 @@ static PyObject *Euler_rotate(EulerObject * self, PyObject *value)
|
|||||||
{
|
{
|
||||||
float self_rmat[3][3], other_rmat[3][3], rmat[3][3];
|
float self_rmat[3][3], other_rmat[3][3], rmat[3][3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_any_to_rotmat(other_rmat, value, "euler.rotate(value)") == -1)
|
if(mathutils_any_to_rotmat(other_rmat, value, "euler.rotate(value)") == -1)
|
||||||
@ -254,7 +256,7 @@ static PyObject *Euler_make_compatible(EulerObject * self, PyObject *value)
|
|||||||
{
|
{
|
||||||
float teul[EULER_SIZE];
|
float teul[EULER_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(teul, EULER_SIZE, EULER_SIZE, value, "euler.make_compatible(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(teul, EULER_SIZE, EULER_SIZE, value, "euler.make_compatible(other), invalid 'other' arg") == -1)
|
||||||
@ -282,7 +284,7 @@ static char Euler_copy_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Euler_copy(EulerObject *self)
|
static PyObject *Euler_copy(EulerObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return newEulerObject(self->eul, self->order, Py_NEW, Py_TYPE(self));
|
return newEulerObject(self->eul, self->order, Py_NEW, Py_TYPE(self));
|
||||||
@ -295,7 +297,7 @@ static PyObject *Euler_repr(EulerObject * self)
|
|||||||
{
|
{
|
||||||
PyObject *ret, *tuple;
|
PyObject *ret, *tuple;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
tuple= Euler_ToTupleExt(self, -1);
|
tuple= Euler_ToTupleExt(self, -1);
|
||||||
@ -315,7 +317,7 @@ static PyObject* Euler_richcmpr(PyObject *a, PyObject *b, int op)
|
|||||||
EulerObject *eulA= (EulerObject*)a;
|
EulerObject *eulA= (EulerObject*)a;
|
||||||
EulerObject *eulB= (EulerObject*)b;
|
EulerObject *eulB= (EulerObject*)b;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(eulA) || !BaseMath_ReadCallback(eulB))
|
if(BaseMath_ReadCallback(eulA) == -1 || BaseMath_ReadCallback(eulB) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ok= ((eulA->order == eulB->order) && EXPP_VectorsAreEqual(eulA->eul, eulB->eul, EULER_SIZE, 1)) ? 0 : -1;
|
ok= ((eulA->order == eulB->order) && EXPP_VectorsAreEqual(eulA->eul, eulB->eul, EULER_SIZE, 1)) ? 0 : -1;
|
||||||
@ -360,7 +362,7 @@ static PyObject *Euler_item(EulerObject * self, int i)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadIndexCallback(self, i))
|
if(BaseMath_ReadIndexCallback(self, i) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyFloat_FromDouble(self->eul[i]);
|
return PyFloat_FromDouble(self->eul[i]);
|
||||||
@ -386,7 +388,7 @@ static int Euler_ass_item(EulerObject * self, int i, PyObject *value)
|
|||||||
|
|
||||||
self->eul[i] = f;
|
self->eul[i] = f;
|
||||||
|
|
||||||
if(!BaseMath_WriteIndexCallback(self, i))
|
if(BaseMath_WriteIndexCallback(self, i) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -398,7 +400,7 @@ static PyObject *Euler_slice(EulerObject * self, int begin, int end)
|
|||||||
PyObject *tuple;
|
PyObject *tuple;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
CLAMP(begin, 0, EULER_SIZE);
|
CLAMP(begin, 0, EULER_SIZE);
|
||||||
@ -420,7 +422,7 @@ static int Euler_ass_slice(EulerObject * self, int begin, int end, PyObject * se
|
|||||||
int i, size;
|
int i, size;
|
||||||
float eul[EULER_SIZE];
|
float eul[EULER_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
CLAMP(begin, 0, EULER_SIZE);
|
CLAMP(begin, 0, EULER_SIZE);
|
||||||
@ -542,7 +544,7 @@ static int Euler_setAxis(EulerObject *self, PyObject *value, void *type)
|
|||||||
/* rotation order */
|
/* rotation order */
|
||||||
static PyObject *Euler_getOrder(EulerObject *self, void *UNUSED(closure))
|
static PyObject *Euler_getOrder(EulerObject *self, void *UNUSED(closure))
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self)) /* can read order too */
|
if(BaseMath_ReadCallback(self) == -1) /* can read order too */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyUnicode_FromString(euler_order_str(self));
|
return PyUnicode_FromString(euler_order_str(self));
|
||||||
|
@ -56,13 +56,13 @@ static int mathutils_matrix_vector_get(BaseMathObject *bmo, int subtype)
|
|||||||
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
for(i=0; i < self->col_size; i++)
|
for(i=0; i < self->col_size; i++)
|
||||||
bmo->data[i]= self->matrix[subtype][i];
|
bmo->data[i]= self->matrix[subtype][i];
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype)
|
static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype)
|
||||||
@ -70,38 +70,38 @@ static int mathutils_matrix_vector_set(BaseMathObject *bmo, int subtype)
|
|||||||
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
for(i=0; i < self->col_size; i++)
|
for(i=0; i < self->col_size; i++)
|
||||||
self->matrix[subtype][i]= bmo->data[i];
|
self->matrix[subtype][i]= bmo->data[i];
|
||||||
|
|
||||||
(void)BaseMath_WriteCallback(self);
|
(void)BaseMath_WriteCallback(self);
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int subtype, int index)
|
static int mathutils_matrix_vector_get_index(BaseMathObject *bmo, int subtype, int index)
|
||||||
{
|
{
|
||||||
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
bmo->data[index]= self->matrix[subtype][index];
|
bmo->data[index]= self->matrix[subtype][index];
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int subtype, int index)
|
static int mathutils_matrix_vector_set_index(BaseMathObject *bmo, int subtype, int index)
|
||||||
{
|
{
|
||||||
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
MatrixObject *self= (MatrixObject *)bmo->cb_user;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
self->matrix[subtype][index]= bmo->data[index];
|
self->matrix[subtype][index]= bmo->data[index];
|
||||||
|
|
||||||
(void)BaseMath_WriteCallback(self);
|
(void)BaseMath_WriteCallback(self);
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mathutils_Callback mathutils_matrix_vector_cb = {
|
Mathutils_Callback mathutils_matrix_vector_cb = {
|
||||||
@ -635,7 +635,7 @@ static PyObject *Matrix_to_quaternion(MatrixObject *self)
|
|||||||
{
|
{
|
||||||
float quat[4];
|
float quat[4];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
||||||
@ -675,14 +675,14 @@ static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args)
|
|||||||
float tmat[3][3];
|
float tmat[3][3];
|
||||||
float (*mat)[3];
|
float (*mat)[3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat))
|
if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(eul_compat) {
|
if(eul_compat) {
|
||||||
if(!BaseMath_ReadCallback(eul_compat))
|
if(BaseMath_ReadCallback(eul_compat) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
copy_v3_v3(eul_compatf, eul_compat->eul);
|
copy_v3_v3(eul_compatf, eul_compat->eul);
|
||||||
@ -784,7 +784,7 @@ static char Matrix_to_4x4_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Matrix_to_4x4(MatrixObject *self)
|
static PyObject *Matrix_to_4x4(MatrixObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(self->col_size==4 && self->row_size==4) {
|
if(self->col_size==4 && self->row_size==4) {
|
||||||
@ -813,7 +813,7 @@ static PyObject *Matrix_to_3x3(MatrixObject *self)
|
|||||||
{
|
{
|
||||||
float mat[3][3];
|
float mat[3][3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if((self->col_size < 3) || (self->row_size < 3)) {
|
if((self->col_size < 3) || (self->row_size < 3)) {
|
||||||
@ -836,7 +836,7 @@ static char Matrix_to_translation_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Matrix_to_translation(MatrixObject *self)
|
static PyObject *Matrix_to_translation(MatrixObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if((self->col_size < 3) || self->row_size < 4){
|
if((self->col_size < 3) || self->row_size < 4){
|
||||||
@ -863,7 +863,7 @@ static PyObject *Matrix_to_scale(MatrixObject *self)
|
|||||||
float mat[3][3];
|
float mat[3][3];
|
||||||
float size[3];
|
float size[3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
||||||
@ -898,7 +898,7 @@ static PyObject *Matrix_invert(MatrixObject *self)
|
|||||||
float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
float mat[16] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
|
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(self->row_size != self->col_size){
|
if(self->row_size != self->col_size){
|
||||||
@ -972,7 +972,7 @@ static PyObject *Matrix_rotate(MatrixObject *self, PyObject *value)
|
|||||||
{
|
{
|
||||||
float self_rmat[3][3], other_rmat[3][3], rmat[3][3];
|
float self_rmat[3][3], other_rmat[3][3], rmat[3][3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_any_to_rotmat(other_rmat, value, "matrix.rotate(value)") == -1)
|
if(mathutils_any_to_rotmat(other_rmat, value, "matrix.rotate(value)") == -1)
|
||||||
@ -1014,7 +1014,7 @@ static PyObject *Matrix_decompose(MatrixObject *self)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
mat4_to_loc_rot_size(loc, rot, size, (float (*)[4])self->contigPtr);
|
mat4_to_loc_rot_size(loc, rot, size, (float (*)[4])self->contigPtr);
|
||||||
@ -1055,7 +1055,7 @@ static PyObject *Matrix_lerp(MatrixObject *self, PyObject *args)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self) || !BaseMath_ReadCallback(mat2))
|
if(BaseMath_ReadCallback(self) == -1 || BaseMath_ReadCallback(mat2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* TODO, different sized matrix */
|
/* TODO, different sized matrix */
|
||||||
@ -1086,7 +1086,7 @@ static char Matrix_determinant_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Matrix_determinant(MatrixObject *self)
|
static PyObject *Matrix_determinant(MatrixObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(self->row_size != self->col_size){
|
if(self->row_size != self->col_size){
|
||||||
@ -1108,7 +1108,7 @@ static PyObject *Matrix_transpose(MatrixObject *self)
|
|||||||
{
|
{
|
||||||
float t = 0.0f;
|
float t = 0.0f;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(self->row_size != self->col_size){
|
if(self->row_size != self->col_size){
|
||||||
@ -1156,7 +1156,7 @@ static PyObject *Matrix_zero(MatrixObject *self)
|
|||||||
{
|
{
|
||||||
fill_vn(self->contigPtr, self->row_size * self->col_size, 0.0f);
|
fill_vn(self->contigPtr, self->row_size * self->col_size, 0.0f);
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
@ -1173,7 +1173,7 @@ static char Matrix_identity_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Matrix_identity(MatrixObject *self)
|
static PyObject *Matrix_identity(MatrixObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(self->row_size != self->col_size){
|
if(self->row_size != self->col_size){
|
||||||
@ -1192,7 +1192,7 @@ static PyObject *Matrix_identity(MatrixObject *self)
|
|||||||
unit_m4((float (*)[4])self->contigPtr);
|
unit_m4((float (*)[4])self->contigPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
@ -1209,7 +1209,7 @@ static char Matrix_copy_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Matrix_copy(MatrixObject *self)
|
static PyObject *Matrix_copy(MatrixObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return (PyObject*)newMatrixObject((float (*))self->contigPtr, self->row_size, self->col_size, Py_NEW, Py_TYPE(self));
|
return (PyObject*)newMatrixObject((float (*))self->contigPtr, self->row_size, self->col_size, Py_NEW, Py_TYPE(self));
|
||||||
@ -1222,7 +1222,7 @@ static PyObject *Matrix_repr(MatrixObject *self)
|
|||||||
int x, y;
|
int x, y;
|
||||||
PyObject *rows[MATRIX_MAX_DIM]= {NULL};
|
PyObject *rows[MATRIX_MAX_DIM]= {NULL};
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for(x = 0; x < self->row_size; x++){
|
for(x = 0; x < self->row_size; x++){
|
||||||
@ -1258,7 +1258,7 @@ static PyObject* Matrix_richcmpr(PyObject *a, PyObject *b, int op)
|
|||||||
MatrixObject *matA= (MatrixObject*)a;
|
MatrixObject *matA= (MatrixObject*)a;
|
||||||
MatrixObject *matB= (MatrixObject*)b;
|
MatrixObject *matB= (MatrixObject*)b;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(matA) || !BaseMath_ReadCallback(matB))
|
if(BaseMath_ReadCallback(matA) == -1 || BaseMath_ReadCallback(matB) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ok= ( (matA->col_size == matB->col_size) &&
|
ok= ( (matA->col_size == matB->col_size) &&
|
||||||
@ -1300,7 +1300,7 @@ static int Matrix_len(MatrixObject *self)
|
|||||||
the wrapped vector gives direct access to the matrix data*/
|
the wrapped vector gives direct access to the matrix data*/
|
||||||
static PyObject *Matrix_item(MatrixObject *self, int i)
|
static PyObject *Matrix_item(MatrixObject *self, int i)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(i < 0 || i >= self->row_size) {
|
if(i < 0 || i >= self->row_size) {
|
||||||
@ -1315,7 +1315,7 @@ static PyObject *Matrix_item(MatrixObject *self, int i)
|
|||||||
static int Matrix_ass_item(MatrixObject *self, int i, PyObject *value)
|
static int Matrix_ass_item(MatrixObject *self, int i, PyObject *value)
|
||||||
{
|
{
|
||||||
float vec[4];
|
float vec[4];
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if(i >= self->row_size || i < 0){
|
if(i >= self->row_size || i < 0){
|
||||||
@ -1341,7 +1341,7 @@ static PyObject *Matrix_slice(MatrixObject *self, int begin, int end)
|
|||||||
PyObject *tuple;
|
PyObject *tuple;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
CLAMP(begin, 0, self->row_size);
|
CLAMP(begin, 0, self->row_size);
|
||||||
@ -1363,7 +1363,7 @@ static int Matrix_ass_slice(MatrixObject *self, int begin, int end, PyObject *va
|
|||||||
{
|
{
|
||||||
PyObject *value_fast= NULL;
|
PyObject *value_fast= NULL;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
CLAMP(begin, 0, self->row_size);
|
CLAMP(begin, 0, self->row_size);
|
||||||
@ -1420,7 +1420,7 @@ static PyObject *Matrix_add(PyObject *m1, PyObject *m2)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(mat1) || !BaseMath_ReadCallback(mat2))
|
if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){
|
if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){
|
||||||
@ -1447,7 +1447,7 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(mat1) || !BaseMath_ReadCallback(mat2))
|
if(BaseMath_ReadCallback(mat1) == -1 || BaseMath_ReadCallback(mat2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){
|
if(mat1->row_size != mat2->row_size || mat1->col_size != mat2->col_size){
|
||||||
@ -1476,12 +1476,12 @@ static PyObject *Matrix_mul(PyObject * m1, PyObject * m2)
|
|||||||
|
|
||||||
if(MatrixObject_Check(m1)) {
|
if(MatrixObject_Check(m1)) {
|
||||||
mat1 = (MatrixObject*)m1;
|
mat1 = (MatrixObject*)m1;
|
||||||
if(!BaseMath_ReadCallback(mat1))
|
if(BaseMath_ReadCallback(mat1) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if(MatrixObject_Check(m2)) {
|
if(MatrixObject_Check(m2)) {
|
||||||
mat2 = (MatrixObject*)m2;
|
mat2 = (MatrixObject*)m2;
|
||||||
if(!BaseMath_ReadCallback(mat2))
|
if(BaseMath_ReadCallback(mat2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1530,7 +1530,7 @@ static PyObject *Matrix_mul(PyObject * m1, PyObject * m2)
|
|||||||
}
|
}
|
||||||
static PyObject* Matrix_inv(MatrixObject *self)
|
static PyObject* Matrix_inv(MatrixObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return Matrix_invert(self);
|
return Matrix_invert(self);
|
||||||
@ -1671,7 +1671,7 @@ static PyObject *Matrix_getMedianScale(MatrixObject *self, void *UNUSED(closure)
|
|||||||
{
|
{
|
||||||
float mat[3][3];
|
float mat[3][3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
||||||
@ -1687,7 +1687,7 @@ static PyObject *Matrix_getMedianScale(MatrixObject *self, void *UNUSED(closure)
|
|||||||
|
|
||||||
static PyObject *Matrix_getIsNegative(MatrixObject *self, void *UNUSED(closure))
|
static PyObject *Matrix_getIsNegative(MatrixObject *self, void *UNUSED(closure))
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
/*must be 3-4 cols, 3-4 rows, square matrix*/
|
||||||
|
@ -90,7 +90,7 @@ static PyObject *Quaternion_to_euler(QuaternionObject *self, PyObject *args)
|
|||||||
if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat))
|
if(!PyArg_ParseTuple(args, "|sO!:to_euler", &order_str, &euler_Type, &eul_compat))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(order_str) {
|
if(order_str) {
|
||||||
@ -105,7 +105,7 @@ static PyObject *Quaternion_to_euler(QuaternionObject *self, PyObject *args)
|
|||||||
if(eul_compat) {
|
if(eul_compat) {
|
||||||
float mat[3][3];
|
float mat[3][3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(eul_compat))
|
if(BaseMath_ReadCallback(eul_compat) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
quat_to_mat3(mat, tquat);
|
quat_to_mat3(mat, tquat);
|
||||||
@ -133,7 +133,7 @@ static PyObject *Quaternion_to_matrix(QuaternionObject *self)
|
|||||||
{
|
{
|
||||||
float mat[9]; /* all values are set */
|
float mat[9]; /* all values are set */
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
quat_to_mat3( (float (*)[3]) mat,self->quat);
|
quat_to_mat3( (float (*)[3]) mat,self->quat);
|
||||||
@ -155,7 +155,7 @@ static PyObject *Quaternion_cross(QuaternionObject *self, PyObject *value)
|
|||||||
{
|
{
|
||||||
float quat[QUAT_SIZE], tquat[QUAT_SIZE];
|
float quat[QUAT_SIZE], tquat[QUAT_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.cross(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.cross(other), invalid 'other' arg") == -1)
|
||||||
@ -180,7 +180,7 @@ static PyObject *Quaternion_dot(QuaternionObject *self, PyObject *value)
|
|||||||
{
|
{
|
||||||
float tquat[QUAT_SIZE];
|
float tquat[QUAT_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.dot(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.dot(other), invalid 'other' arg") == -1)
|
||||||
@ -203,7 +203,7 @@ static PyObject *Quaternion_difference(QuaternionObject *self, PyObject *value)
|
|||||||
{
|
{
|
||||||
float tquat[QUAT_SIZE], quat[QUAT_SIZE];
|
float tquat[QUAT_SIZE], quat[QUAT_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.difference(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.difference(other), invalid 'other' arg") == -1)
|
||||||
@ -236,7 +236,7 @@ static PyObject *Quaternion_slerp(QuaternionObject *self, PyObject *args)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.slerp(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tquat, QUAT_SIZE, QUAT_SIZE, value, "quaternion.slerp(other), invalid 'other' arg") == -1)
|
||||||
@ -265,7 +265,7 @@ static PyObject *Quaternion_rotate(QuaternionObject *self, PyObject *value)
|
|||||||
float self_rmat[3][3], other_rmat[3][3], rmat[3][3];
|
float self_rmat[3][3], other_rmat[3][3], rmat[3][3];
|
||||||
float tquat[4], length;
|
float tquat[4], length;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_any_to_rotmat(other_rmat, value, "quaternion.rotate(value)") == -1)
|
if(mathutils_any_to_rotmat(other_rmat, value, "quaternion.rotate(value)") == -1)
|
||||||
@ -291,7 +291,7 @@ static char Quaternion_normalize_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Quaternion_normalize(QuaternionObject *self)
|
static PyObject *Quaternion_normalize(QuaternionObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
normalize_qt(self->quat);
|
normalize_qt(self->quat);
|
||||||
@ -320,7 +320,7 @@ static char Quaternion_invert_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Quaternion_invert(QuaternionObject *self)
|
static PyObject *Quaternion_invert(QuaternionObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
invert_qt(self->quat);
|
invert_qt(self->quat);
|
||||||
@ -352,7 +352,7 @@ static char Quaternion_identity_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Quaternion_identity(QuaternionObject *self)
|
static PyObject *Quaternion_identity(QuaternionObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
unit_qt(self->quat);
|
unit_qt(self->quat);
|
||||||
@ -371,7 +371,7 @@ static char Quaternion_negate_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Quaternion_negate(QuaternionObject *self)
|
static PyObject *Quaternion_negate(QuaternionObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
mul_qt_fl(self->quat, -1.0f);
|
mul_qt_fl(self->quat, -1.0f);
|
||||||
@ -387,7 +387,7 @@ static char Quaternion_conjugate_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Quaternion_conjugate(QuaternionObject *self)
|
static PyObject *Quaternion_conjugate(QuaternionObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
conjugate_qt(self->quat);
|
conjugate_qt(self->quat);
|
||||||
@ -421,7 +421,7 @@ static char Quaternion_copy_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Quaternion_copy(QuaternionObject *self)
|
static PyObject *Quaternion_copy(QuaternionObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return newQuaternionObject(self->quat, Py_NEW, Py_TYPE(self));
|
return newQuaternionObject(self->quat, Py_NEW, Py_TYPE(self));
|
||||||
@ -433,7 +433,7 @@ static PyObject *Quaternion_repr(QuaternionObject *self)
|
|||||||
{
|
{
|
||||||
PyObject *ret, *tuple;
|
PyObject *ret, *tuple;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
tuple= Quaternion_to_tuple_ext(self, -1);
|
tuple= Quaternion_to_tuple_ext(self, -1);
|
||||||
@ -453,7 +453,7 @@ static PyObject* Quaternion_richcmpr(PyObject *a, PyObject *b, int op)
|
|||||||
QuaternionObject *quatA= (QuaternionObject *)a;
|
QuaternionObject *quatA= (QuaternionObject *)a;
|
||||||
QuaternionObject *quatB= (QuaternionObject *)b;
|
QuaternionObject *quatB= (QuaternionObject *)b;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(quatA) || !BaseMath_ReadCallback(quatB))
|
if(BaseMath_ReadCallback(quatA) == -1 || BaseMath_ReadCallback(quatB) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ok= (EXPP_VectorsAreEqual(quatA->quat, quatB->quat, QUAT_SIZE, 1)) ? 0 : -1;
|
ok= (EXPP_VectorsAreEqual(quatA->quat, quatB->quat, QUAT_SIZE, 1)) ? 0 : -1;
|
||||||
@ -498,7 +498,7 @@ static PyObject *Quaternion_item(QuaternionObject *self, int i)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadIndexCallback(self, i))
|
if(BaseMath_ReadIndexCallback(self, i) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyFloat_FromDouble(self->quat[i]);
|
return PyFloat_FromDouble(self->quat[i]);
|
||||||
@ -522,7 +522,7 @@ static int Quaternion_ass_item(QuaternionObject *self, int i, PyObject *ob)
|
|||||||
}
|
}
|
||||||
self->quat[i] = scalar;
|
self->quat[i] = scalar;
|
||||||
|
|
||||||
if(!BaseMath_WriteIndexCallback(self, i))
|
if(BaseMath_WriteIndexCallback(self, i) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -534,7 +534,7 @@ static PyObject *Quaternion_slice(QuaternionObject *self, int begin, int end)
|
|||||||
PyObject *tuple;
|
PyObject *tuple;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
CLAMP(begin, 0, QUAT_SIZE);
|
CLAMP(begin, 0, QUAT_SIZE);
|
||||||
@ -556,7 +556,7 @@ static int Quaternion_ass_slice(QuaternionObject *self, int begin, int end, PyOb
|
|||||||
int i, size;
|
int i, size;
|
||||||
float quat[QUAT_SIZE];
|
float quat[QUAT_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
CLAMP(begin, 0, QUAT_SIZE);
|
CLAMP(begin, 0, QUAT_SIZE);
|
||||||
@ -659,7 +659,7 @@ static PyObject *Quaternion_add(PyObject *q1, PyObject *q2)
|
|||||||
quat1 = (QuaternionObject*)q1;
|
quat1 = (QuaternionObject*)q1;
|
||||||
quat2 = (QuaternionObject*)q2;
|
quat2 = (QuaternionObject*)q2;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(quat1) || !BaseMath_ReadCallback(quat2))
|
if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
add_qt_qtqt(quat, quat1->quat, quat2->quat, 1.0f);
|
add_qt_qtqt(quat, quat1->quat, quat2->quat, 1.0f);
|
||||||
@ -681,7 +681,7 @@ static PyObject *Quaternion_sub(PyObject *q1, PyObject *q2)
|
|||||||
quat1 = (QuaternionObject*)q1;
|
quat1 = (QuaternionObject*)q1;
|
||||||
quat2 = (QuaternionObject*)q2;
|
quat2 = (QuaternionObject*)q2;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(quat1) || !BaseMath_ReadCallback(quat2))
|
if(BaseMath_ReadCallback(quat1) == -1 || BaseMath_ReadCallback(quat2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for(x = 0; x < QUAT_SIZE; x++) {
|
for(x = 0; x < QUAT_SIZE; x++) {
|
||||||
@ -708,12 +708,12 @@ static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2)
|
|||||||
|
|
||||||
if(QuaternionObject_Check(q1)) {
|
if(QuaternionObject_Check(q1)) {
|
||||||
quat1 = (QuaternionObject*)q1;
|
quat1 = (QuaternionObject*)q1;
|
||||||
if(!BaseMath_ReadCallback(quat1))
|
if(BaseMath_ReadCallback(quat1) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if(QuaternionObject_Check(q2)) {
|
if(QuaternionObject_Check(q2)) {
|
||||||
quat2 = (QuaternionObject*)q2;
|
quat2 = (QuaternionObject*)q2;
|
||||||
if(!BaseMath_ReadCallback(quat2))
|
if(BaseMath_ReadCallback(quat2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -746,7 +746,7 @@ static PyObject *Quaternion_neg(QuaternionObject *self)
|
|||||||
{
|
{
|
||||||
float tquat[QUAT_SIZE];
|
float tquat[QUAT_SIZE];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
negate_v4_v4(tquat, self->quat);
|
negate_v4_v4(tquat, self->quat);
|
||||||
@ -823,7 +823,7 @@ static int Quaternion_setAxis( QuaternionObject *self, PyObject *value, void *ty
|
|||||||
|
|
||||||
static PyObject *Quaternion_getMagnitude(QuaternionObject *self, void *UNUSED(closure))
|
static PyObject *Quaternion_getMagnitude(QuaternionObject *self, void *UNUSED(closure))
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyFloat_FromDouble(sqrt(dot_qtqt(self->quat, self->quat)));
|
return PyFloat_FromDouble(sqrt(dot_qtqt(self->quat, self->quat)));
|
||||||
@ -833,7 +833,7 @@ static PyObject *Quaternion_getAngle(QuaternionObject *self, void *UNUSED(closur
|
|||||||
{
|
{
|
||||||
float tquat[4];
|
float tquat[4];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
normalize_qt_qt(tquat, self->quat);
|
normalize_qt_qt(tquat, self->quat);
|
||||||
@ -848,7 +848,7 @@ static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UN
|
|||||||
float axis[3], angle_dummy;
|
float axis[3], angle_dummy;
|
||||||
double angle;
|
double angle;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
len= normalize_qt_qt(tquat, self->quat);
|
len= normalize_qt_qt(tquat, self->quat);
|
||||||
@ -874,7 +874,7 @@ static int Quaternion_setAngle(QuaternionObject *self, PyObject *value, void *UN
|
|||||||
axis_angle_to_quat(self->quat, axis, angle);
|
axis_angle_to_quat(self->quat, axis, angle);
|
||||||
mul_qt_fl(self->quat, len);
|
mul_qt_fl(self->quat, len);
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -887,7 +887,7 @@ static PyObject *Quaternion_getAxisVec(QuaternionObject *self, void *UNUSED(clos
|
|||||||
float axis[3];
|
float axis[3];
|
||||||
float angle;
|
float angle;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
normalize_qt_qt(tquat, self->quat);
|
normalize_qt_qt(tquat, self->quat);
|
||||||
@ -912,7 +912,7 @@ static int Quaternion_setAxisVec(QuaternionObject *self, PyObject *value, void *
|
|||||||
float axis[3];
|
float axis[3];
|
||||||
float angle;
|
float angle;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
len= normalize_qt_qt(tquat, self->quat);
|
len= normalize_qt_qt(tquat, self->quat);
|
||||||
@ -924,7 +924,7 @@ static int Quaternion_setAxisVec(QuaternionObject *self, PyObject *value, void *
|
|||||||
axis_angle_to_quat(self->quat, axis, angle);
|
axis_angle_to_quat(self->quat, axis, angle);
|
||||||
mul_qt_fl(self->quat, len);
|
mul_qt_fl(self->quat, len);
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -96,7 +96,9 @@ static PyObject *Vector_zero(VectorObject *self)
|
|||||||
{
|
{
|
||||||
fill_vn(self->vec, self->size, 0.0f);
|
fill_vn(self->vec, self->size, 0.0f);
|
||||||
|
|
||||||
(void)BaseMath_WriteCallback(self);
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,7 +116,7 @@ static PyObject *Vector_normalize(VectorObject *self)
|
|||||||
int i;
|
int i;
|
||||||
float norm = 0.0f;
|
float norm = 0.0f;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for(i = 0; i < self->size; i++) {
|
for(i = 0; i < self->size; i++) {
|
||||||
@ -245,7 +247,7 @@ static char Vector_to_2d_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Vector_to_2d(VectorObject *self)
|
static PyObject *Vector_to_2d(VectorObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return newVectorObject(self->vec, 2, Py_NEW, Py_TYPE(self));
|
return newVectorObject(self->vec, 2, Py_NEW, Py_TYPE(self));
|
||||||
@ -262,7 +264,7 @@ static PyObject *Vector_to_3d(VectorObject *self)
|
|||||||
{
|
{
|
||||||
float tvec[3]= {0.0f};
|
float tvec[3]= {0.0f};
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 3));
|
memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 3));
|
||||||
@ -280,7 +282,7 @@ static PyObject *Vector_to_4d(VectorObject *self)
|
|||||||
{
|
{
|
||||||
float tvec[4]= {0.0f, 0.0f, 0.0f, 1.0f};
|
float tvec[4]= {0.0f, 0.0f, 0.0f, 1.0f};
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 4));
|
memcpy(tvec, self->vec, sizeof(float) * MIN2(self->size, 4));
|
||||||
@ -334,7 +336,7 @@ static PyObject *Vector_to_tuple(VectorObject *self, PyObject *args)
|
|||||||
if(PyTuple_GET_SIZE(args)==0)
|
if(PyTuple_GET_SIZE(args)==0)
|
||||||
ndigits= -1;
|
ndigits= -1;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return Vector_to_tuple_ext(self, ndigits);
|
return Vector_to_tuple_ext(self, ndigits);
|
||||||
@ -366,7 +368,7 @@ static PyObject *Vector_to_track_quat(VectorObject *self, PyObject *args )
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (strack) {
|
if (strack) {
|
||||||
@ -475,7 +477,7 @@ static PyObject *Vector_reflect(VectorObject *self, PyObject *value)
|
|||||||
float reflect[3] = {0.0f};
|
float reflect[3] = {0.0f};
|
||||||
float tvec[MAX_DIMENSIONS];
|
float tvec[MAX_DIMENSIONS];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if((value_size= mathutils_array_parse(tvec, 2, 4, value, "vector.reflect(other), invalid 'other' arg")) == -1)
|
if((value_size= mathutils_array_parse(tvec, 2, 4, value, "vector.reflect(other), invalid 'other' arg")) == -1)
|
||||||
@ -514,7 +516,7 @@ static PyObject *Vector_cross(VectorObject *self, PyObject *value)
|
|||||||
VectorObject *ret;
|
VectorObject *ret;
|
||||||
float tvec[MAX_DIMENSIONS];
|
float tvec[MAX_DIMENSIONS];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.cross(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.cross(other), invalid 'other' arg") == -1)
|
||||||
@ -541,7 +543,7 @@ static PyObject *Vector_dot(VectorObject *self, PyObject *value)
|
|||||||
double dot = 0.0;
|
double dot = 0.0;
|
||||||
int x;
|
int x;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.dot(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tvec, self->size, self->size, value, "vector.dot(other), invalid 'other' arg") == -1)
|
||||||
@ -580,7 +582,7 @@ static PyObject *Vector_angle(VectorObject *self, PyObject *args)
|
|||||||
if(!PyArg_ParseTuple(args, "O|O:angle", &value, &fallback))
|
if(!PyArg_ParseTuple(args, "O|O:angle", &value, &fallback))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tvec, size, size, value, "vector.angle(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tvec, size, size, value, "vector.angle(other), invalid 'other' arg") == -1)
|
||||||
@ -632,7 +634,7 @@ static PyObject *Vector_difference(VectorObject *self, PyObject *value)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(vec_b, 3, MAX_DIMENSIONS, value, "vector.difference(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(vec_b, 3, MAX_DIMENSIONS, value, "vector.difference(other), invalid 'other' arg") == -1)
|
||||||
@ -664,13 +666,13 @@ static PyObject *Vector_project(VectorObject *self, PyObject *value)
|
|||||||
double dot = 0.0f, dot2 = 0.0f;
|
double dot = 0.0f, dot2 = 0.0f;
|
||||||
int x;
|
int x;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_array_parse(tvec, size, size, value, "vector.project(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tvec, size, size, value, "vector.project(other), invalid 'other' arg") == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
//get dot products
|
//get dot products
|
||||||
@ -712,7 +714,7 @@ static PyObject *Vector_lerp(VectorObject *self, PyObject *args)
|
|||||||
if(mathutils_array_parse(tvec, size, size, value, "vector.lerp(other), invalid 'other' arg") == -1)
|
if(mathutils_array_parse(tvec, size, size, value, "vector.lerp(other), invalid 'other' arg") == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ifac= 1.0 - fac;
|
ifac= 1.0 - fac;
|
||||||
@ -735,7 +737,7 @@ static PyObject *Vector_rotate(VectorObject *self, PyObject *value)
|
|||||||
{
|
{
|
||||||
float other_rmat[3][3];
|
float other_rmat[3][3];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(mathutils_any_to_rotmat(other_rmat, value, "vector.rotate(value)") == -1)
|
if(mathutils_any_to_rotmat(other_rmat, value, "vector.rotate(value)") == -1)
|
||||||
@ -764,7 +766,7 @@ static char Vector_copy_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Vector_copy(VectorObject *self)
|
static PyObject *Vector_copy(VectorObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return newVectorObject(self->vec, self->size, Py_NEW, Py_TYPE(self));
|
return newVectorObject(self->vec, self->size, Py_NEW, Py_TYPE(self));
|
||||||
@ -774,7 +776,7 @@ static PyObject *Vector_repr(VectorObject *self)
|
|||||||
{
|
{
|
||||||
PyObject *ret, *tuple;
|
PyObject *ret, *tuple;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
tuple= Vector_to_tuple_ext(self, -1);
|
tuple= Vector_to_tuple_ext(self, -1);
|
||||||
@ -799,7 +801,7 @@ static PyObject *Vector_item(VectorObject *self, int i)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadIndexCallback(self, i))
|
if(BaseMath_ReadIndexCallback(self, i) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyFloat_FromDouble(self->vec[i]);
|
return PyFloat_FromDouble(self->vec[i]);
|
||||||
@ -821,7 +823,7 @@ static int Vector_ass_item(VectorObject *self, int i, PyObject * ob)
|
|||||||
}
|
}
|
||||||
self->vec[i] = scalar;
|
self->vec[i] = scalar;
|
||||||
|
|
||||||
if(!BaseMath_WriteIndexCallback(self, i))
|
if(BaseMath_WriteIndexCallback(self, i) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -832,7 +834,7 @@ static PyObject *Vector_slice(VectorObject *self, int begin, int end)
|
|||||||
PyObject *tuple;
|
PyObject *tuple;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
CLAMP(begin, 0, self->size);
|
CLAMP(begin, 0, self->size);
|
||||||
@ -854,7 +856,7 @@ static int Vector_ass_slice(VectorObject *self, int begin, int end,
|
|||||||
int y, size = 0;
|
int y, size = 0;
|
||||||
float vec[MAX_DIMENSIONS];
|
float vec[MAX_DIMENSIONS];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
CLAMP(begin, 0, self->size);
|
CLAMP(begin, 0, self->size);
|
||||||
@ -870,7 +872,7 @@ static int Vector_ass_slice(VectorObject *self, int begin, int end,
|
|||||||
self->vec[begin + y] = vec[y];
|
self->vec[begin + y] = vec[y];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -890,7 +892,7 @@ static PyObject *Vector_add(PyObject * v1, PyObject * v2)
|
|||||||
vec1 = (VectorObject*)v1;
|
vec1 = (VectorObject*)v1;
|
||||||
vec2 = (VectorObject*)v2;
|
vec2 = (VectorObject*)v2;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/*VECTOR + VECTOR*/
|
/*VECTOR + VECTOR*/
|
||||||
@ -921,7 +923,7 @@ static PyObject *Vector_iadd(PyObject * v1, PyObject * v2)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
add_vn_vn(vec1->vec, vec2->vec, vec1->size);
|
add_vn_vn(vec1->vec, vec2->vec, vec1->size);
|
||||||
@ -944,7 +946,7 @@ static PyObject *Vector_sub(PyObject * v1, PyObject * v2)
|
|||||||
vec1 = (VectorObject*)v1;
|
vec1 = (VectorObject*)v1;
|
||||||
vec2 = (VectorObject*)v2;
|
vec2 = (VectorObject*)v2;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(vec1->size != vec2->size) {
|
if(vec1->size != vec2->size) {
|
||||||
@ -974,7 +976,7 @@ static PyObject *Vector_isub(PyObject * v1, PyObject * v2)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
sub_vn_vn(vec1->vec, vec2->vec, vec1->size);
|
sub_vn_vn(vec1->vec, vec2->vec, vec1->size);
|
||||||
@ -1041,12 +1043,12 @@ static PyObject *Vector_mul(PyObject * v1, PyObject * v2)
|
|||||||
|
|
||||||
if VectorObject_Check(v1) {
|
if VectorObject_Check(v1) {
|
||||||
vec1= (VectorObject *)v1;
|
vec1= (VectorObject *)v1;
|
||||||
if(!BaseMath_ReadCallback(vec1))
|
if(BaseMath_ReadCallback(vec1) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if VectorObject_Check(v2) {
|
if VectorObject_Check(v2) {
|
||||||
vec2= (VectorObject *)v2;
|
vec2= (VectorObject *)v2;
|
||||||
if(!BaseMath_ReadCallback(vec2))
|
if(BaseMath_ReadCallback(vec2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1071,7 +1073,7 @@ static PyObject *Vector_mul(PyObject * v1, PyObject * v2)
|
|||||||
if (MatrixObject_Check(v2)) {
|
if (MatrixObject_Check(v2)) {
|
||||||
/* VEC * MATRIX */
|
/* VEC * MATRIX */
|
||||||
float tvec[MAX_DIMENSIONS];
|
float tvec[MAX_DIMENSIONS];
|
||||||
if(!BaseMath_ReadCallback((MatrixObject *)v2))
|
if(BaseMath_ReadCallback((MatrixObject *)v2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
if(column_vector_multiplication(tvec, vec1, (MatrixObject*)v2) == -1) {
|
if(column_vector_multiplication(tvec, vec1, (MatrixObject*)v2) == -1) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -1088,7 +1090,7 @@ static PyObject *Vector_mul(PyObject * v1, PyObject * v2)
|
|||||||
PyErr_SetString(PyExc_TypeError, "Vector multiplication: only 3D vector rotations (with quats) currently supported");
|
PyErr_SetString(PyExc_TypeError, "Vector multiplication: only 3D vector rotations (with quats) currently supported");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if(!BaseMath_ReadCallback(quat2)) {
|
if(BaseMath_ReadCallback(quat2) == -1) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
copy_v3_v3(tvec, vec1->vec);
|
copy_v3_v3(tvec, vec1->vec);
|
||||||
@ -1118,14 +1120,14 @@ static PyObject *Vector_imul(PyObject * v1, PyObject * v2)
|
|||||||
VectorObject *vec = (VectorObject *)v1;
|
VectorObject *vec = (VectorObject *)v1;
|
||||||
float scalar;
|
float scalar;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec))
|
if(BaseMath_ReadCallback(vec) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* only support vec*=float and vec*=mat
|
/* only support vec*=float and vec*=mat
|
||||||
vec*=vec result is a float so that wont work */
|
vec*=vec result is a float so that wont work */
|
||||||
if (MatrixObject_Check(v2)) {
|
if (MatrixObject_Check(v2)) {
|
||||||
float rvec[MAX_DIMENSIONS];
|
float rvec[MAX_DIMENSIONS];
|
||||||
if(!BaseMath_ReadCallback((MatrixObject *)v2))
|
if(BaseMath_ReadCallback((MatrixObject *)v2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1)
|
if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1)
|
||||||
@ -1142,7 +1144,7 @@ static PyObject *Vector_imul(PyObject * v1, PyObject * v2)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(quat2)) {
|
if(BaseMath_ReadCallback(quat2) == -1) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
mul_qt_v3(quat2->quat, vec->vec);
|
mul_qt_v3(quat2->quat, vec->vec);
|
||||||
@ -1173,7 +1175,7 @@ static PyObject *Vector_div(PyObject * v1, PyObject * v2)
|
|||||||
}
|
}
|
||||||
vec1 = (VectorObject*)v1; /* vector */
|
vec1 = (VectorObject*)v1; /* vector */
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1))
|
if(BaseMath_ReadCallback(vec1) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */
|
if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */
|
||||||
@ -1199,7 +1201,7 @@ static PyObject *Vector_idiv(PyObject * v1, PyObject * v2)
|
|||||||
float scalar;
|
float scalar;
|
||||||
VectorObject *vec1 = (VectorObject*)v1;
|
VectorObject *vec1 = (VectorObject*)v1;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1))
|
if(BaseMath_ReadCallback(vec1) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */
|
if((scalar=PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred()) { /* parsed item not a number */
|
||||||
@ -1227,7 +1229,7 @@ static PyObject *Vector_neg(VectorObject *self)
|
|||||||
{
|
{
|
||||||
float tvec[MAX_DIMENSIONS];
|
float tvec[MAX_DIMENSIONS];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
negate_vn_vn(tvec, self->vec, self->size);
|
negate_vn_vn(tvec, self->vec, self->size);
|
||||||
@ -1270,7 +1272,7 @@ static PyObject* Vector_richcmpr(PyObject *objectA, PyObject *objectB, int compa
|
|||||||
vecA = (VectorObject*)objectA;
|
vecA = (VectorObject*)objectA;
|
||||||
vecB = (VectorObject*)objectB;
|
vecB = (VectorObject*)objectB;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vecA) || !BaseMath_ReadCallback(vecB))
|
if(BaseMath_ReadCallback(vecA) == -1 || BaseMath_ReadCallback(vecB) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (vecA->size != vecB->size){
|
if (vecA->size != vecB->size){
|
||||||
@ -1473,7 +1475,7 @@ static PyObject *Vector_getLength(VectorObject *self, void *UNUSED(closure))
|
|||||||
double dot = 0.0f;
|
double dot = 0.0f;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
for(i = 0; i < self->size; i++){
|
for(i = 0; i < self->size; i++){
|
||||||
@ -1487,7 +1489,7 @@ static int Vector_setLength(VectorObject *self, PyObject *value)
|
|||||||
double dot = 0.0f, param;
|
double dot = 0.0f, param;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if((param=PyFloat_AsDouble(value)) == -1.0 && PyErr_Occurred()) {
|
if((param=PyFloat_AsDouble(value)) == -1.0 && PyErr_Occurred()) {
|
||||||
@ -1537,7 +1539,7 @@ static PyObject *Vector_getSwizzle(VectorObject *self, void *closure)
|
|||||||
float vec[MAX_DIMENSIONS];
|
float vec[MAX_DIMENSIONS];
|
||||||
unsigned int swizzleClosure;
|
unsigned int swizzleClosure;
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Unpack the axes from the closure into an array. */
|
/* Unpack the axes from the closure into an array. */
|
||||||
@ -1582,7 +1584,7 @@ static int Vector_setSwizzle(VectorObject *self, PyObject * value, void *closure
|
|||||||
float tvec[MAX_DIMENSIONS];
|
float tvec[MAX_DIMENSIONS];
|
||||||
float vec_assign[MAX_DIMENSIONS];
|
float vec_assign[MAX_DIMENSIONS];
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* Check that the closure can be used with this vector: even 2D vectors have
|
/* Check that the closure can be used with this vector: even 2D vectors have
|
||||||
@ -1631,7 +1633,7 @@ static int Vector_setSwizzle(VectorObject *self, PyObject * value, void *closure
|
|||||||
memcpy(self->vec, tvec, axis_from * sizeof(float));
|
memcpy(self->vec, tvec, axis_from * sizeof(float));
|
||||||
/* continue with BaseMathObject_WriteCallback at the end */
|
/* continue with BaseMathObject_WriteCallback at the end */
|
||||||
|
|
||||||
if(!BaseMath_WriteCallback(self))
|
if(BaseMath_WriteCallback(self) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
@ -2052,7 +2054,7 @@ static int row_vector_multiplication(float rvec[4], VectorObject* vec, MatrixObj
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec) || !BaseMath_ReadCallback(mat))
|
if(BaseMath_ReadCallback(vec) == -1 || BaseMath_ReadCallback(mat) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
memcpy(vec_cpy, vec->vec, vec_size * sizeof(float));
|
memcpy(vec_cpy, vec->vec, vec_size * sizeof(float));
|
||||||
@ -2081,7 +2083,7 @@ static char Vector_negate_doc[] =
|
|||||||
;
|
;
|
||||||
static PyObject *Vector_negate(VectorObject *self)
|
static PyObject *Vector_negate(VectorObject *self)
|
||||||
{
|
{
|
||||||
if(!BaseMath_ReadCallback(self))
|
if(BaseMath_ReadCallback(self) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
negate_vn(self->vec, self->size);
|
negate_vn(self->vec, self->size);
|
||||||
|
@ -92,7 +92,7 @@ static PyObject *M_Geometry_intersect_ray_tri(PyObject *UNUSED(self), PyObject*
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(ray) || !BaseMath_ReadCallback(ray_off))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(ray) == -1 || BaseMath_ReadCallback(ray_off) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
VECCOPY(v1, vec1->vec);
|
VECCOPY(v1, vec1->vec);
|
||||||
@ -179,7 +179,7 @@ static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(vec1->size == 3 || vec1->size == 2) {
|
if(vec1->size == 3 || vec1->size == 2) {
|
||||||
@ -265,7 +265,7 @@ static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
normal_tri_v3(n, vec1->vec, vec2->vec, vec3->vec);
|
normal_tri_v3(n, vec1->vec, vec2->vec, vec3->vec);
|
||||||
@ -283,7 +283,7 @@ static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1 || BaseMath_ReadCallback(vec4) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
normal_quad_v3(n, vec1->vec, vec2->vec, vec3->vec, vec4->vec);
|
normal_quad_v3(n, vec1->vec, vec2->vec, vec3->vec, vec4->vec);
|
||||||
@ -320,7 +320,7 @@ static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3))
|
if(BaseMath_ReadCallback(vec1) == -1 || BaseMath_ReadCallback(vec2) == -1 || BaseMath_ReadCallback(vec3) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (vec1->size == 3) {
|
if (vec1->size == 3) {
|
||||||
@ -397,7 +397,7 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject *
|
|||||||
polyVec= PySequence_GetItem(polyLine, index);
|
polyVec= PySequence_GetItem(polyLine, index);
|
||||||
if(VectorObject_Check(polyVec)) {
|
if(VectorObject_Check(polyVec)) {
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback((VectorObject *)polyVec))
|
if(BaseMath_ReadCallback((VectorObject *)polyVec) == -1)
|
||||||
ls_error= 1;
|
ls_error= 1;
|
||||||
|
|
||||||
fp[0]= ((VectorObject *)polyVec)->vec[0];
|
fp[0]= ((VectorObject *)polyVec)->vec[0];
|
||||||
@ -484,7 +484,7 @@ static PyObject *M_Geometry_intersect_line_line_2d(PyObject *UNUSED(self), PyObj
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(line_a1) || !BaseMath_ReadCallback(line_a2) || !BaseMath_ReadCallback(line_b1) || !BaseMath_ReadCallback(line_b2))
|
if(BaseMath_ReadCallback(line_a1) == -1 || BaseMath_ReadCallback(line_a2) == -1 || BaseMath_ReadCallback(line_b1) == -1 || BaseMath_ReadCallback(line_b2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(isect_seg_seg_v2_point(line_a1->vec, line_a2->vec, line_b1->vec, line_b2->vec, vi) == 1) {
|
if(isect_seg_seg_v2_point(line_a1->vec, line_a2->vec, line_b1->vec, line_b2->vec, vi) == 1) {
|
||||||
@ -523,7 +523,7 @@ static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObjec
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(pt) || !BaseMath_ReadCallback(line_1) || !BaseMath_ReadCallback(line_2))
|
if(BaseMath_ReadCallback(pt) == -1 || BaseMath_ReadCallback(line_1) == -1 || BaseMath_ReadCallback(line_2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* accept 2d verts */
|
/* accept 2d verts */
|
||||||
@ -573,7 +573,7 @@ static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObj
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(pt_vec) || !BaseMath_ReadCallback(tri_p1) || !BaseMath_ReadCallback(tri_p2) || !BaseMath_ReadCallback(tri_p3))
|
if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(tri_p1) == -1 || BaseMath_ReadCallback(tri_p2) == -1 || BaseMath_ReadCallback(tri_p3) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyLong_FromLong(isect_point_tri_v2(pt_vec->vec, tri_p1->vec, tri_p2->vec, tri_p3->vec));
|
return PyLong_FromLong(isect_point_tri_v2(pt_vec->vec, tri_p1->vec, tri_p2->vec, tri_p3->vec));
|
||||||
@ -610,7 +610,7 @@ static PyObject *M_Geometry_intersect_point_quad_2d(PyObject *UNUSED(self), PyOb
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(pt_vec) || !BaseMath_ReadCallback(quad_p1) || !BaseMath_ReadCallback(quad_p2) || !BaseMath_ReadCallback(quad_p3) || !BaseMath_ReadCallback(quad_p4))
|
if(BaseMath_ReadCallback(pt_vec) == -1 || BaseMath_ReadCallback(quad_p1) == -1 || BaseMath_ReadCallback(quad_p2) == -1 || BaseMath_ReadCallback(quad_p3) == -1 || BaseMath_ReadCallback(quad_p4) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return PyLong_FromLong(isect_point_quad_v2(pt_vec->vec, quad_p1->vec, quad_p2->vec, quad_p3->vec, quad_p4->vec));
|
return PyLong_FromLong(isect_point_quad_v2(pt_vec->vec, quad_p1->vec, quad_p2->vec, quad_p3->vec, quad_p4->vec));
|
||||||
@ -767,7 +767,7 @@ static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject*
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!BaseMath_ReadCallback(vec_k1) || !BaseMath_ReadCallback(vec_h1) || !BaseMath_ReadCallback(vec_k2) || !BaseMath_ReadCallback(vec_h2))
|
if(BaseMath_ReadCallback(vec_k1) == -1 || BaseMath_ReadCallback(vec_h1) == -1 || BaseMath_ReadCallback(vec_k2) == -1 || BaseMath_ReadCallback(vec_h2) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
dims= MAX4(vec_k1->size, vec_h1->size, vec_h2->size, vec_k2->size);
|
dims= MAX4(vec_k1->size, vec_h1->size, vec_h2->size, vec_k2->size);
|
||||||
|
@ -130,14 +130,14 @@ static int mathutils_rna_array_cb_index= -1; /* index for our callbacks */
|
|||||||
static int mathutils_rna_generic_check(BaseMathObject *bmo)
|
static int mathutils_rna_generic_check(BaseMathObject *bmo)
|
||||||
{
|
{
|
||||||
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
||||||
return self->prop ? 1:0;
|
return self->prop ? 0 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_rna_vector_get(BaseMathObject *bmo, int subtype)
|
static int mathutils_rna_vector_get(BaseMathObject *bmo, int subtype)
|
||||||
{
|
{
|
||||||
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
||||||
if(self->prop==NULL)
|
if(self->prop==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
RNA_property_float_get_array(&self->ptr, self->prop, bmo->data);
|
RNA_property_float_get_array(&self->ptr, self->prop, bmo->data);
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ static int mathutils_rna_vector_get(BaseMathObject *bmo, int subtype)
|
|||||||
eul->order= pyrna_rotation_euler_order_get(&self->ptr, &prop_eul_order, eul->order);
|
eul->order= pyrna_rotation_euler_order_get(&self->ptr, &prop_eul_order, eul->order);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype)
|
static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype)
|
||||||
@ -156,17 +156,17 @@ static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype)
|
|||||||
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
||||||
float min, max;
|
float min, max;
|
||||||
if(self->prop==NULL)
|
if(self->prop==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
#ifdef USE_PEDANTIC_WRITE
|
#ifdef USE_PEDANTIC_WRITE
|
||||||
if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) {
|
if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) {
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif // USE_PEDANTIC_WRITE
|
#endif // USE_PEDANTIC_WRITE
|
||||||
|
|
||||||
if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
|
if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
|
||||||
PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
|
PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
RNA_property_float_range(&self->ptr, self->prop, &min, &max);
|
RNA_property_float_range(&self->ptr, self->prop, &min, &max);
|
||||||
@ -195,7 +195,7 @@ static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_rna_vector_get_index(BaseMathObject *bmo, int UNUSED(subtype), int index)
|
static int mathutils_rna_vector_get_index(BaseMathObject *bmo, int UNUSED(subtype), int index)
|
||||||
@ -203,10 +203,10 @@ static int mathutils_rna_vector_get_index(BaseMathObject *bmo, int UNUSED(subtyp
|
|||||||
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
||||||
|
|
||||||
if(self->prop==NULL)
|
if(self->prop==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
bmo->data[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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int UNUSED(subtype), int index)
|
static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int UNUSED(subtype), int index)
|
||||||
@ -214,17 +214,17 @@ static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int UNUSED(subtyp
|
|||||||
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
|
||||||
|
|
||||||
if(self->prop==NULL)
|
if(self->prop==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
#ifdef USE_PEDANTIC_WRITE
|
#ifdef USE_PEDANTIC_WRITE
|
||||||
if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) {
|
if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) {
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif // USE_PEDANTIC_WRITE
|
#endif // USE_PEDANTIC_WRITE
|
||||||
|
|
||||||
if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
|
if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
|
||||||
PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
|
PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
RNA_property_float_clamp(&self->ptr, self->prop, &bmo->data[index]);
|
RNA_property_float_clamp(&self->ptr, self->prop, &bmo->data[index]);
|
||||||
@ -234,7 +234,7 @@ static int mathutils_rna_vector_set_index(BaseMathObject *bmo, int UNUSED(subtyp
|
|||||||
RNA_property_update(BPy_GetContext(), &self->ptr, self->prop);
|
RNA_property_update(BPy_GetContext(), &self->ptr, self->prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Mathutils_Callback mathutils_rna_array_cb = {
|
static Mathutils_Callback mathutils_rna_array_cb = {
|
||||||
|
@ -1263,16 +1263,16 @@ static int mathutils_kxgameob_generic_check(BaseMathObject *bmo)
|
|||||||
{
|
{
|
||||||
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_kxgameob_vector_get(BaseMathObject *bmo, int subtype)
|
static int mathutils_kxgameob_vector_get(BaseMathObject *bmo, int subtype)
|
||||||
{
|
{
|
||||||
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
#define PHYS_ERR(attr) PyErr_SetString(PyExc_AttributeError, "KX_GameObject." attr ", is missing a physics controller")
|
#define PHYS_ERR(attr) PyErr_SetString(PyExc_AttributeError, "KX_GameObject." attr ", is missing a physics controller")
|
||||||
|
|
||||||
@ -1290,26 +1290,26 @@ static int mathutils_kxgameob_vector_get(BaseMathObject *bmo, int subtype)
|
|||||||
self->NodeGetWorldScaling().getValue(bmo->data);
|
self->NodeGetWorldScaling().getValue(bmo->data);
|
||||||
break;
|
break;
|
||||||
case MATHUTILS_VEC_CB_INERTIA_LOCAL:
|
case MATHUTILS_VEC_CB_INERTIA_LOCAL:
|
||||||
if(!self->GetPhysicsController()) return PHYS_ERR("localInertia"), 0;
|
if(!self->GetPhysicsController()) return PHYS_ERR("localInertia"), -1;
|
||||||
self->GetPhysicsController()->GetLocalInertia().getValue(bmo->data);
|
self->GetPhysicsController()->GetLocalInertia().getValue(bmo->data);
|
||||||
break;
|
break;
|
||||||
case MATHUTILS_VEC_CB_OBJECT_COLOR:
|
case MATHUTILS_VEC_CB_OBJECT_COLOR:
|
||||||
self->GetObjectColor().getValue(bmo->data);
|
self->GetObjectColor().getValue(bmo->data);
|
||||||
break;
|
break;
|
||||||
case MATHUTILS_VEC_CB_LINVEL_LOCAL:
|
case MATHUTILS_VEC_CB_LINVEL_LOCAL:
|
||||||
if(!self->GetPhysicsController()) return PHYS_ERR("localLinearVelocity"), 0;
|
if(!self->GetPhysicsController()) return PHYS_ERR("localLinearVelocity"), -1;
|
||||||
self->GetLinearVelocity(true).getValue(bmo->data);
|
self->GetLinearVelocity(true).getValue(bmo->data);
|
||||||
break;
|
break;
|
||||||
case MATHUTILS_VEC_CB_LINVEL_GLOBAL:
|
case MATHUTILS_VEC_CB_LINVEL_GLOBAL:
|
||||||
if(!self->GetPhysicsController()) return PHYS_ERR("worldLinearVelocity"), 0;
|
if(!self->GetPhysicsController()) return PHYS_ERR("worldLinearVelocity"), -1;
|
||||||
self->GetLinearVelocity(false).getValue(bmo->data);
|
self->GetLinearVelocity(false).getValue(bmo->data);
|
||||||
break;
|
break;
|
||||||
case MATHUTILS_VEC_CB_ANGVEL_LOCAL:
|
case MATHUTILS_VEC_CB_ANGVEL_LOCAL:
|
||||||
if(!self->GetPhysicsController()) return PHYS_ERR("localLinearVelocity"), 0;
|
if(!self->GetPhysicsController()) return PHYS_ERR("localLinearVelocity"), -1;
|
||||||
self->GetAngularVelocity(true).getValue(bmo->data);
|
self->GetAngularVelocity(true).getValue(bmo->data);
|
||||||
break;
|
break;
|
||||||
case MATHUTILS_VEC_CB_ANGVEL_GLOBAL:
|
case MATHUTILS_VEC_CB_ANGVEL_GLOBAL:
|
||||||
if(!self->GetPhysicsController()) return PHYS_ERR("worldLinearVelocity"), 0;
|
if(!self->GetPhysicsController()) return PHYS_ERR("worldLinearVelocity"), -1;
|
||||||
self->GetAngularVelocity(false).getValue(bmo->data);
|
self->GetAngularVelocity(false).getValue(bmo->data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1317,14 +1317,14 @@ static int mathutils_kxgameob_vector_get(BaseMathObject *bmo, int subtype)
|
|||||||
|
|
||||||
#undef PHYS_ERR
|
#undef PHYS_ERR
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_kxgameob_vector_set(BaseMathObject *bmo, int subtype)
|
static int mathutils_kxgameob_vector_set(BaseMathObject *bmo, int subtype)
|
||||||
{
|
{
|
||||||
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
switch(subtype) {
|
switch(subtype) {
|
||||||
case MATHUTILS_VEC_CB_POS_LOCAL:
|
case MATHUTILS_VEC_CB_POS_LOCAL:
|
||||||
@ -1341,7 +1341,7 @@ static int mathutils_kxgameob_vector_set(BaseMathObject *bmo, int subtype)
|
|||||||
break;
|
break;
|
||||||
case MATHUTILS_VEC_CB_SCALE_GLOBAL:
|
case MATHUTILS_VEC_CB_SCALE_GLOBAL:
|
||||||
PyErr_SetString(PyExc_AttributeError, "KX_GameObject.worldScale is read-only");
|
PyErr_SetString(PyExc_AttributeError, "KX_GameObject.worldScale is read-only");
|
||||||
return 0;
|
return -1;
|
||||||
case MATHUTILS_VEC_CB_INERTIA_LOCAL:
|
case MATHUTILS_VEC_CB_INERTIA_LOCAL:
|
||||||
/* read only */
|
/* read only */
|
||||||
break;
|
break;
|
||||||
@ -1362,15 +1362,15 @@ static int mathutils_kxgameob_vector_set(BaseMathObject *bmo, int subtype)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_kxgameob_vector_get_index(BaseMathObject *bmo, int subtype, int index)
|
static int mathutils_kxgameob_vector_get_index(BaseMathObject *bmo, int subtype, int index)
|
||||||
{
|
{
|
||||||
/* lazy, avoid repeteing the case statement */
|
/* lazy, avoid repeteing the case statement */
|
||||||
if(!mathutils_kxgameob_vector_get(bmo, subtype))
|
if(!mathutils_kxgameob_vector_get(bmo, subtype))
|
||||||
return 0;
|
return -1;
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_kxgameob_vector_set_index(BaseMathObject *bmo, int subtype, int index)
|
static int mathutils_kxgameob_vector_set_index(BaseMathObject *bmo, int subtype, int index)
|
||||||
@ -1379,7 +1379,7 @@ static int mathutils_kxgameob_vector_set_index(BaseMathObject *bmo, int subtype,
|
|||||||
|
|
||||||
/* lazy, avoid repeteing the case statement */
|
/* lazy, avoid repeteing the case statement */
|
||||||
if(!mathutils_kxgameob_vector_get(bmo, subtype))
|
if(!mathutils_kxgameob_vector_get(bmo, subtype))
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
bmo->data[index]= f;
|
bmo->data[index]= f;
|
||||||
return mathutils_kxgameob_vector_set(bmo, subtype);
|
return mathutils_kxgameob_vector_set(bmo, subtype);
|
||||||
@ -1403,7 +1403,7 @@ static int mathutils_kxgameob_matrix_get(BaseMathObject *bmo, int subtype)
|
|||||||
{
|
{
|
||||||
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
switch(subtype) {
|
switch(subtype) {
|
||||||
case MATHUTILS_MAT_CB_ORI_LOCAL:
|
case MATHUTILS_MAT_CB_ORI_LOCAL:
|
||||||
@ -1414,7 +1414,7 @@ static int mathutils_kxgameob_matrix_get(BaseMathObject *bmo, int subtype)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1422,7 +1422,7 @@ static int mathutils_kxgameob_matrix_set(BaseMathObject *bmo, int subtype)
|
|||||||
{
|
{
|
||||||
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
MT_Matrix3x3 mat3x3;
|
MT_Matrix3x3 mat3x3;
|
||||||
switch(subtype) {
|
switch(subtype) {
|
||||||
@ -1438,7 +1438,7 @@ static int mathutils_kxgameob_matrix_set(BaseMathObject *bmo, int subtype)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mathutils_Callback mathutils_kxgameob_matrix_cb = {
|
Mathutils_Callback mathutils_kxgameob_matrix_cb = {
|
||||||
|
@ -392,16 +392,16 @@ static int mathutils_obactu_generic_check(BaseMathObject *bmo)
|
|||||||
{
|
{
|
||||||
KX_ObjectActuator* self= static_cast<KX_ObjectActuator*>BGE_PROXY_REF(bmo->cb_user);
|
KX_ObjectActuator* self= static_cast<KX_ObjectActuator*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_obactu_vector_get(BaseMathObject *bmo, int subtype)
|
static int mathutils_obactu_vector_get(BaseMathObject *bmo, int subtype)
|
||||||
{
|
{
|
||||||
KX_ObjectActuator* self= static_cast<KX_ObjectActuator*>BGE_PROXY_REF(bmo->cb_user);
|
KX_ObjectActuator* self= static_cast<KX_ObjectActuator*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
switch(subtype) {
|
switch(subtype) {
|
||||||
case MATHUTILS_VEC_CB_LINV:
|
case MATHUTILS_VEC_CB_LINV:
|
||||||
@ -412,14 +412,14 @@ static int mathutils_obactu_vector_get(BaseMathObject *bmo, int subtype)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_obactu_vector_set(BaseMathObject *bmo, int subtype)
|
static int mathutils_obactu_vector_set(BaseMathObject *bmo, int subtype)
|
||||||
{
|
{
|
||||||
KX_ObjectActuator* self= static_cast<KX_ObjectActuator*>BGE_PROXY_REF(bmo->cb_user);
|
KX_ObjectActuator* self= static_cast<KX_ObjectActuator*>BGE_PROXY_REF(bmo->cb_user);
|
||||||
if(self==NULL)
|
if(self==NULL)
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
switch(subtype) {
|
switch(subtype) {
|
||||||
case MATHUTILS_VEC_CB_LINV:
|
case MATHUTILS_VEC_CB_LINV:
|
||||||
@ -430,15 +430,15 @@ static int mathutils_obactu_vector_set(BaseMathObject *bmo, int subtype)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_obactu_vector_get_index(BaseMathObject *bmo, int subtype, int index)
|
static int mathutils_obactu_vector_get_index(BaseMathObject *bmo, int subtype, int index)
|
||||||
{
|
{
|
||||||
/* lazy, avoid repeteing the case statement */
|
/* lazy, avoid repeteing the case statement */
|
||||||
if(!mathutils_obactu_vector_get(bmo, subtype))
|
if(!mathutils_obactu_vector_get(bmo, subtype))
|
||||||
return 0;
|
return -1;
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mathutils_obactu_vector_set_index(BaseMathObject *bmo, int subtype, int index)
|
static int mathutils_obactu_vector_set_index(BaseMathObject *bmo, int subtype, int index)
|
||||||
@ -447,7 +447,7 @@ static int mathutils_obactu_vector_set_index(BaseMathObject *bmo, int subtype, i
|
|||||||
|
|
||||||
/* lazy, avoid repeteing the case statement */
|
/* lazy, avoid repeteing the case statement */
|
||||||
if(!mathutils_obactu_vector_get(bmo, subtype))
|
if(!mathutils_obactu_vector_get(bmo, subtype))
|
||||||
return 0;
|
return -1;
|
||||||
|
|
||||||
bmo->data[index]= f;
|
bmo->data[index]= f;
|
||||||
return mathutils_obactu_vector_set(bmo, subtype);
|
return mathutils_obactu_vector_set(bmo, subtype);
|
||||||
|
@ -114,7 +114,7 @@ bool PyVecTo(PyObject* pyval, T& vec)
|
|||||||
|
|
||||||
if(VectorObject_Check(pyval)) {
|
if(VectorObject_Check(pyval)) {
|
||||||
VectorObject *pyvec= (VectorObject *)pyval;
|
VectorObject *pyvec= (VectorObject *)pyval;
|
||||||
if(!BaseMath_ReadCallback(pyvec)) {
|
if(BaseMath_ReadCallback(pyvec) == -1) {
|
||||||
return false; /* exception raised */
|
return false; /* exception raised */
|
||||||
}
|
}
|
||||||
if (pyvec->size != Size(vec)) {
|
if (pyvec->size != Size(vec)) {
|
||||||
@ -126,7 +126,7 @@ bool PyVecTo(PyObject* pyval, T& vec)
|
|||||||
}
|
}
|
||||||
else if(QuaternionObject_Check(pyval)) {
|
else if(QuaternionObject_Check(pyval)) {
|
||||||
QuaternionObject *pyquat= (QuaternionObject *)pyval;
|
QuaternionObject *pyquat= (QuaternionObject *)pyval;
|
||||||
if(!BaseMath_ReadCallback(pyquat)) {
|
if(BaseMath_ReadCallback(pyquat) == -1) {
|
||||||
return false; /* exception raised */
|
return false; /* exception raised */
|
||||||
}
|
}
|
||||||
if (4 != Size(vec)) {
|
if (4 != Size(vec)) {
|
||||||
@ -139,7 +139,7 @@ bool PyVecTo(PyObject* pyval, T& vec)
|
|||||||
}
|
}
|
||||||
else if(EulerObject_Check(pyval)) {
|
else if(EulerObject_Check(pyval)) {
|
||||||
EulerObject *pyeul= (EulerObject *)pyval;
|
EulerObject *pyeul= (EulerObject *)pyval;
|
||||||
if(!BaseMath_ReadCallback(pyeul)) {
|
if(BaseMath_ReadCallback(pyeul) == -1) {
|
||||||
return false; /* exception raised */
|
return false; /* exception raised */
|
||||||
}
|
}
|
||||||
if (3 != Size(vec)) {
|
if (3 != Size(vec)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user