mathutils support for color arithmetic, also some minor whitespace edits.
This commit is contained in:
		| @@ -67,14 +67,14 @@ int BPY_is_pyconstraint(struct Text *text); | ||||
| //	void BPY_free_pyconstraint_links(struct Text *text); | ||||
| // | ||||
| void BPY_python_start(int argc, const char **argv); | ||||
| void BPY_python_end( void ); | ||||
| //	void init_syspath( int first_time ); | ||||
| //	void syspath_append( char *dir ); | ||||
| //	void BPY_rebuild_syspath( void ); | ||||
| //	int BPY_path_update( void ); | ||||
| void BPY_python_end(void); | ||||
| //	void init_syspath(int first_time); | ||||
| //	void syspath_append(char *dir); | ||||
| //	void BPY_rebuild_syspath(void); | ||||
| //	int BPY_path_update(void); | ||||
| // | ||||
| //	int BPY_Err_getLinenumber( void ); | ||||
| //	const char *BPY_Err_getFilename( void ); | ||||
| //	int BPY_Err_getLinenumber(void); | ||||
| //	const char *BPY_Err_getFilename(void); | ||||
|  | ||||
| /* 2.5 UI Scripts */ | ||||
| int		BPY_filepath_exec(struct bContext *C, const char *filepath, struct ReportList *reports); | ||||
|   | ||||
| @@ -62,16 +62,16 @@ square buffer. Passing [16, 16, 32] will create a 3 dimensional\n\ | ||||
| buffer which is twice as deep as it is wide or high." | ||||
| ); | ||||
|  | ||||
| static PyObject *Method_Buffer( PyObject * self, PyObject *args ); | ||||
| static PyObject *Method_Buffer(PyObject *self, PyObject *args); | ||||
|  | ||||
| /* Buffer sequence methods */ | ||||
|  | ||||
| static int Buffer_len( PyObject * self ); | ||||
| static PyObject *Buffer_item( PyObject * self, int i ); | ||||
| static PyObject *Buffer_slice( PyObject * self, int begin, int end ); | ||||
| static int Buffer_ass_item( PyObject * self, int i, PyObject * v ); | ||||
| static int Buffer_ass_slice( PyObject * self, int begin, int end, | ||||
| 				 PyObject * seq ); | ||||
| static int Buffer_len(PyObject *self); | ||||
| static PyObject *Buffer_item(PyObject *self, int i); | ||||
| static PyObject *Buffer_slice(PyObject *self, int begin, int end); | ||||
| static int Buffer_ass_item(PyObject *self, int i, PyObject *v); | ||||
| static int Buffer_ass_slice(PyObject *self, int begin, int end, | ||||
| 				 PyObject *seq); | ||||
|  | ||||
| static PySequenceMethods Buffer_SeqMethods = { | ||||
| 	( lenfunc ) Buffer_len,						/*sq_length */ | ||||
| @@ -86,11 +86,11 @@ static PySequenceMethods Buffer_SeqMethods = { | ||||
| 	(ssizeargfunc) NULL,						/* sq_inplace_repeat */ | ||||
| }; | ||||
|  | ||||
| static void Buffer_dealloc( PyObject * self ); | ||||
| static PyObject *Buffer_tolist( PyObject * self ); | ||||
| static PyObject *Buffer_dimensions( PyObject * self ); | ||||
| static PyObject *Buffer_getattr( PyObject * self, char *name ); | ||||
| static PyObject *Buffer_repr( PyObject * self ); | ||||
| static void Buffer_dealloc(PyObject *self); | ||||
| static PyObject *Buffer_tolist(PyObject *self); | ||||
| static PyObject *Buffer_dimensions(PyObject *self); | ||||
| static PyObject *Buffer_getattr(PyObject *self, char *name); | ||||
| static PyObject *Buffer_repr(PyObject *self); | ||||
|  | ||||
| PyTypeObject BGL_bufferType = { | ||||
| 	PyVarObject_HEAD_INIT(NULL, 0) | ||||
|   | ||||
| @@ -55,7 +55,7 @@ int BGL_typeSize( int type ); | ||||
| /*@ For Python access to OpenGL functions requiring a pointer. */ | ||||
| typedef struct _Buffer { | ||||
| 	PyObject_VAR_HEAD  | ||||
| 	PyObject * parent; | ||||
| 	PyObject *parent; | ||||
|  | ||||
| 	int type;		/* GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT */ | ||||
| 	int ndimensions; | ||||
|   | ||||
| @@ -217,7 +217,7 @@ PyObject *bpy_text_reimport(PyObject *module, int *found) | ||||
| } | ||||
|  | ||||
|  | ||||
| static PyObject *blender_import(PyObject *UNUSED(self), PyObject *args, PyObject * kw) | ||||
| static PyObject *blender_import(PyObject *UNUSED(self), PyObject *args, PyObject *kw) | ||||
| { | ||||
| 	PyObject *exception, *err, *tb; | ||||
| 	char *name; | ||||
| @@ -270,7 +270,7 @@ static PyObject *blender_import(PyObject *UNUSED(self), PyObject *args, PyObject | ||||
|  * our reload() module, to handle reloading in-memory scripts | ||||
|  */ | ||||
|  | ||||
| static PyObject *blender_reload(PyObject *UNUSED(self), PyObject * module) | ||||
| static PyObject *blender_reload(PyObject *UNUSED(self), PyObject *module) | ||||
| { | ||||
| 	PyObject *exception, *err, *tb; | ||||
| 	PyObject *newmodule= NULL; | ||||
|   | ||||
| @@ -186,7 +186,7 @@ static PyObject *Color_item(ColorObject * self, int i) | ||||
| } | ||||
| //----------------------------object[]------------------------- | ||||
| //sequence accessor (set) | ||||
| static int Color_ass_item(ColorObject * self, int i, PyObject * value) | ||||
| static int Color_ass_item(ColorObject * self, int i, PyObject *value) | ||||
| { | ||||
| 	float f = PyFloat_AsDouble(value); | ||||
|  | ||||
| @@ -233,7 +233,7 @@ static PyObject *Color_slice(ColorObject * self, int begin, int end) | ||||
| } | ||||
| //----------------------------object[z:y]------------------------ | ||||
| //sequence slice (set) | ||||
| static int Color_ass_slice(ColorObject * self, int begin, int end, PyObject * seq) | ||||
| static int Color_ass_slice(ColorObject *self, int begin, int end, PyObject *seq) | ||||
| { | ||||
| 	int i, size; | ||||
| 	float col[COLOR_SIZE]; | ||||
| @@ -344,13 +344,279 @@ static PyMappingMethods Color_AsMapping = { | ||||
| 	(objobjargproc)Color_ass_subscript | ||||
| }; | ||||
|  | ||||
| /* numeric */ | ||||
|  | ||||
|  | ||||
| /* addition: obj + obj */ | ||||
| static PyObject *Color_add(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color1 = NULL, *color2 = NULL; | ||||
| 	float col[COLOR_SIZE]; | ||||
|  | ||||
| 	if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { | ||||
| 		PyErr_SetString(PyExc_AttributeError, "Color addition: arguments not valid for this operation"); | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	color1 = (ColorObject*)v1; | ||||
| 	color2 = (ColorObject*)v2; | ||||
|  | ||||
| 	if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) | ||||
| 		return NULL; | ||||
|  | ||||
| 	add_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); | ||||
|  | ||||
| 	return newColorObject(col, Py_NEW, Py_TYPE(v1)); | ||||
| } | ||||
|  | ||||
| /* addition in-place: obj += obj */ | ||||
| static PyObject *Color_iadd(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color1 = NULL, *color2 = NULL; | ||||
|  | ||||
| 	if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { | ||||
| 		PyErr_SetString(PyExc_AttributeError, "Color addition: arguments not valid for this operation"); | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	color1 = (ColorObject*)v1; | ||||
| 	color2 = (ColorObject*)v2; | ||||
|  | ||||
| 	if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) | ||||
| 		return NULL; | ||||
|  | ||||
| 	add_vn_vn(color1->col, color2->col, COLOR_SIZE); | ||||
|  | ||||
| 	(void)BaseMath_WriteCallback(color1); | ||||
| 	Py_INCREF(v1); | ||||
| 	return v1; | ||||
| } | ||||
|  | ||||
| /* subtraction: obj - obj */ | ||||
| static PyObject *Color_sub(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color1 = NULL, *color2 = NULL; | ||||
| 	float col[COLOR_SIZE]; | ||||
|  | ||||
| 	if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { | ||||
| 		PyErr_SetString(PyExc_AttributeError, "Color subtraction: arguments not valid for this operation"); | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	color1 = (ColorObject*)v1; | ||||
| 	color2 = (ColorObject*)v2; | ||||
|  | ||||
| 	if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) | ||||
| 		return NULL; | ||||
|  | ||||
| 	sub_vn_vnvn(col, color1->col, color2->col, COLOR_SIZE); | ||||
|  | ||||
| 	return newColorObject(col, Py_NEW, Py_TYPE(v1)); | ||||
| } | ||||
|  | ||||
| /* subtraction in-place: obj -= obj */ | ||||
| static PyObject *Color_isub(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color1= NULL, *color2= NULL; | ||||
|  | ||||
| 	if (!ColorObject_Check(v1) || !ColorObject_Check(v2)) { | ||||
| 		PyErr_SetString(PyExc_AttributeError, "Color subtraction: arguments not valid for this operation"); | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	color1 = (ColorObject*)v1; | ||||
| 	color2 = (ColorObject*)v2; | ||||
|  | ||||
| 	if(BaseMath_ReadCallback(color1) == -1 || BaseMath_ReadCallback(color2) == -1) | ||||
| 		return NULL; | ||||
|  | ||||
| 	sub_vn_vn(color1->col, color2->col, COLOR_SIZE); | ||||
|  | ||||
| 	(void)BaseMath_WriteCallback(color1); | ||||
| 	Py_INCREF(v1); | ||||
| 	return v1; | ||||
| } | ||||
|  | ||||
| static PyObject *color_mul_float(ColorObject *color, const float scalar) | ||||
| { | ||||
| 	float tcol[COLOR_SIZE]; | ||||
| 	mul_vn_vn_fl(tcol, color->col, COLOR_SIZE, scalar); | ||||
| 	return newColorObject(tcol, Py_NEW, Py_TYPE(color)); | ||||
| } | ||||
|  | ||||
|  | ||||
| static PyObject *Color_mul(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color1 = NULL, *color2 = NULL; | ||||
| 	float scalar; | ||||
|  | ||||
| 	if ColorObject_Check(v1) { | ||||
| 		color1= (ColorObject *)v1; | ||||
| 		if(BaseMath_ReadCallback(color1) == -1) | ||||
| 			return NULL; | ||||
| 	} | ||||
| 	if ColorObject_Check(v2) { | ||||
| 		color2= (ColorObject *)v2; | ||||
| 		if(BaseMath_ReadCallback(color2) == -1) | ||||
| 			return NULL; | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	/* make sure v1 is always the vector */ | ||||
| 	if (color1 && color2) { | ||||
| 		/* col * col, dont support yet! */ | ||||
| 	} | ||||
| 	else if (color1) { | ||||
| 		if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ | ||||
| 			return color_mul_float(color1, scalar); | ||||
| 		} | ||||
| 	} | ||||
| 	else if (color2) { | ||||
| 		if (((scalar= PyFloat_AsDouble(v1)) == -1.0f && PyErr_Occurred())==0) { /* FLOAT * COLOR */ | ||||
| 			return color_mul_float(color2, scalar); | ||||
| 		} | ||||
| 	} | ||||
| 	else { | ||||
| 		BLI_assert(!"internal error"); | ||||
| 	} | ||||
|  | ||||
| 	PyErr_Format(PyExc_TypeError, "Color multiplication: not supported between '%.200s' and '%.200s' types", Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); | ||||
| 	return NULL; | ||||
| } | ||||
|  | ||||
| static PyObject *Color_div(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color1 = NULL; | ||||
| 	float scalar; | ||||
|  | ||||
| 	if ColorObject_Check(v1) { | ||||
| 		color1= (ColorObject *)v1; | ||||
| 		if(BaseMath_ReadCallback(color1) == -1) | ||||
| 			return NULL; | ||||
| 	} | ||||
| 	else { | ||||
| 		PyErr_SetString(PyExc_TypeError, "Color division not supported in this order"); | ||||
| 		return NULL; | ||||
| 	} | ||||
|  | ||||
| 	/* make sure v1 is always the vector */ | ||||
| 	if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR * FLOAT */ | ||||
| 		if(scalar==0.0f) { | ||||
| 			PyErr_SetString(PyExc_ZeroDivisionError, "Color division: divide by zero error"); | ||||
| 			return NULL; | ||||
| 		} | ||||
| 		return color_mul_float(color1, 1.0f / scalar); | ||||
| 	} | ||||
|  | ||||
| 	PyErr_Format(PyExc_TypeError, "Color multiplication: not supported between '%.200s' and '%.200s' types", Py_TYPE(v1)->tp_name, Py_TYPE(v2)->tp_name); | ||||
| 	return NULL; | ||||
| } | ||||
|  | ||||
| /* mulplication in-place: obj *= obj */ | ||||
| static PyObject *Color_imul(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color = (ColorObject *)v1; | ||||
| 	float scalar; | ||||
|  | ||||
| 	if(BaseMath_ReadCallback(color) == -1) | ||||
| 		return NULL; | ||||
|  | ||||
| 	/* only support color *= float */ | ||||
| 	if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR *= FLOAT */ | ||||
| 		mul_vn_fl(color->col, COLOR_SIZE, scalar); | ||||
| 	} | ||||
| 	else { | ||||
| 		PyErr_SetString(PyExc_TypeError, "Color multiplication: arguments not acceptable for this operation"); | ||||
| 		return NULL; | ||||
| 	} | ||||
|  | ||||
| 	(void)BaseMath_WriteCallback(color); | ||||
| 	Py_INCREF(v1); | ||||
| 	return v1; | ||||
| } | ||||
|  | ||||
| /* mulplication in-place: obj *= obj */ | ||||
| static PyObject *Color_idiv(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	ColorObject *color = (ColorObject *)v1; | ||||
| 	float scalar; | ||||
|  | ||||
| 	if(BaseMath_ReadCallback(color) == -1) | ||||
| 		return NULL; | ||||
|  | ||||
| 	/* only support color /= float */ | ||||
| 	if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* COLOR /= FLOAT */ | ||||
| 		if(scalar==0.0f) { | ||||
| 			PyErr_SetString(PyExc_ZeroDivisionError, "Color division: divide by zero error"); | ||||
| 			return NULL; | ||||
| 		} | ||||
|  | ||||
| 		mul_vn_fl(color->col, COLOR_SIZE, 1.0f / scalar); | ||||
| 	} | ||||
| 	else { | ||||
| 		PyErr_SetString(PyExc_TypeError, "Color multiplication: arguments not acceptable for this operation"); | ||||
| 		return NULL; | ||||
| 	} | ||||
|  | ||||
| 	(void)BaseMath_WriteCallback(color); | ||||
| 	Py_INCREF(v1); | ||||
| 	return v1; | ||||
| } | ||||
|  | ||||
| /* -obj | ||||
|   returns the negative of this object*/ | ||||
| static PyObject *Color_neg(ColorObject *self) | ||||
| { | ||||
| 	float tcol[COLOR_SIZE]; | ||||
|  | ||||
| 	if(BaseMath_ReadCallback(self) == -1) | ||||
| 		return NULL; | ||||
|  | ||||
| 	negate_vn_vn(tcol, self->col, COLOR_SIZE); | ||||
| 	return newColorObject(tcol, Py_NEW, Py_TYPE(self)); | ||||
| } | ||||
|  | ||||
|  | ||||
| static PyNumberMethods Color_NumMethods = { | ||||
| 	(binaryfunc) Color_add,	/*nb_add*/ | ||||
| 	(binaryfunc) Color_sub,	/*nb_subtract*/ | ||||
| 	(binaryfunc) Color_mul,	/*nb_multiply*/ | ||||
| 	NULL,				/*nb_remainder*/ | ||||
| 	NULL,				/*nb_divmod*/ | ||||
| 	NULL,				/*nb_power*/ | ||||
| 	(unaryfunc) Color_neg, /*nb_negative*/ | ||||
| 	(unaryfunc) NULL,	/*tp_positive*/ | ||||
| 	(unaryfunc) NULL,	/*tp_absolute*/ | ||||
| 	(inquiry)	NULL,	/*tp_bool*/ | ||||
| 	(unaryfunc)	NULL,	/*nb_invert*/ | ||||
| 	NULL,				/*nb_lshift*/ | ||||
| 	(binaryfunc)NULL,	/*nb_rshift*/ | ||||
| 	NULL,				/*nb_and*/ | ||||
| 	NULL,				/*nb_xor*/ | ||||
| 	NULL,				/*nb_or*/ | ||||
| 	NULL,				/*nb_int*/ | ||||
| 	NULL,				/*nb_reserved*/ | ||||
| 	NULL,				/*nb_float*/ | ||||
| 	Color_iadd,			/* nb_inplace_add */ | ||||
| 	Color_isub,			/* nb_inplace_subtract */ | ||||
| 	Color_imul,			/* nb_inplace_multiply */ | ||||
| 	NULL,				/* nb_inplace_remainder */ | ||||
| 	NULL,				/* nb_inplace_power */ | ||||
| 	NULL,				/* nb_inplace_lshift */ | ||||
| 	NULL,				/* nb_inplace_rshift */ | ||||
| 	NULL,				/* nb_inplace_and */ | ||||
| 	NULL,				/* nb_inplace_xor */ | ||||
| 	NULL,				/* nb_inplace_or */ | ||||
| 	NULL,				/* nb_floor_divide */ | ||||
| 	Color_div,			/* nb_true_divide */ | ||||
| 	NULL,				/* nb_inplace_floor_divide */ | ||||
| 	Color_idiv,			/* nb_inplace_true_divide */ | ||||
| 	NULL,				/* nb_index */ | ||||
| }; | ||||
|  | ||||
| /* color channel, vector.r/g/b */ | ||||
| static PyObject *Color_getChannel(ColorObject * self, void *type) | ||||
| { | ||||
| 	return Color_item(self, GET_INT_FROM_POINTER(type)); | ||||
| } | ||||
|  | ||||
| static int Color_setChannel(ColorObject * self, PyObject * value, void * type) | ||||
| static int Color_setChannel(ColorObject * self, PyObject *value, void * type) | ||||
| { | ||||
| 	return Color_ass_item(self, GET_INT_FROM_POINTER(type), value); | ||||
| } | ||||
| @@ -369,7 +635,7 @@ static PyObject *Color_getChannelHSV(ColorObject * self, void *type) | ||||
| 	return PyFloat_FromDouble(hsv[i]); | ||||
| } | ||||
|  | ||||
| static int Color_setChannelHSV(ColorObject * self, PyObject * value, void * type) | ||||
| static int Color_setChannelHSV(ColorObject * self, PyObject *value, void * type) | ||||
| { | ||||
| 	float hsv[3]; | ||||
| 	int i= GET_INT_FROM_POINTER(type); | ||||
| @@ -412,7 +678,7 @@ static PyObject *Color_getHSV(ColorObject * self, void *UNUSED(closure)) | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| static int Color_setHSV(ColorObject * self, PyObject * value, void *UNUSED(closure)) | ||||
| static int Color_setHSV(ColorObject * self, PyObject *value, void *UNUSED(closure)) | ||||
| { | ||||
| 	float hsv[3]; | ||||
|  | ||||
| @@ -473,7 +739,7 @@ PyTypeObject color_Type = { | ||||
| 	NULL,							//tp_setattr | ||||
| 	NULL,							//tp_compare | ||||
| 	(reprfunc) Color_repr,			//tp_repr | ||||
| 	NULL,			//tp_as_number | ||||
| 	&Color_NumMethods,				//tp_as_number | ||||
| 	&Color_SeqMethods,				//tp_as_sequence | ||||
| 	&Color_AsMapping,				//tp_as_mapping | ||||
| 	NULL,							//tp_hash | ||||
|   | ||||
| @@ -419,7 +419,7 @@ static PyObject *Euler_slice(EulerObject * self, int begin, int end) | ||||
| } | ||||
| //----------------------------object[z:y]------------------------ | ||||
| //sequence slice (set) | ||||
| static int Euler_ass_slice(EulerObject * self, int begin, int end, PyObject * seq) | ||||
| static int Euler_ass_slice(EulerObject *self, int begin, int end, PyObject *seq) | ||||
| { | ||||
| 	int i, size; | ||||
| 	float eul[EULER_SIZE]; | ||||
|   | ||||
| @@ -1485,7 +1485,7 @@ static PyObject *matrix_mul_float(MatrixObject *mat, const float scalar) | ||||
| 	return newMatrixObject(tmat, mat->row_size, mat->col_size, Py_NEW, Py_TYPE(mat)); | ||||
| } | ||||
|  | ||||
| static PyObject *Matrix_mul(PyObject * m1, PyObject * m2) | ||||
| static PyObject *Matrix_mul(PyObject *m1, PyObject *m2) | ||||
| { | ||||
| 	float scalar; | ||||
|  | ||||
|   | ||||
| @@ -869,8 +869,7 @@ static PyObject *Vector_slice(VectorObject *self, int begin, int end) | ||||
| 	return tuple; | ||||
| } | ||||
| /* sequence slice (set): vector[a:b] = value */ | ||||
| static int Vector_ass_slice(VectorObject *self, int begin, int end, | ||||
| 				 PyObject * seq) | ||||
| static int Vector_ass_slice(VectorObject *self, int begin, int end, PyObject *seq) | ||||
| { | ||||
| 	int y, size = 0; | ||||
| 	float vec[MAX_DIMENSIONS]; | ||||
| @@ -899,7 +898,7 @@ static int Vector_ass_slice(VectorObject *self, int begin, int end, | ||||
|  | ||||
| /* Numeric Protocols */ | ||||
| /* addition: obj + obj */ | ||||
| static PyObject *Vector_add(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_add(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	VectorObject *vec1 = NULL, *vec2 = NULL; | ||||
| 	float vec[MAX_DIMENSIONS]; | ||||
| @@ -926,7 +925,7 @@ static PyObject *Vector_add(PyObject * v1, PyObject * v2) | ||||
| } | ||||
|  | ||||
| /* addition in-place: obj += obj */ | ||||
| static PyObject *Vector_iadd(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_iadd(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	VectorObject *vec1 = NULL, *vec2 = NULL; | ||||
|  | ||||
| @@ -953,7 +952,7 @@ static PyObject *Vector_iadd(PyObject * v1, PyObject * v2) | ||||
| } | ||||
|  | ||||
| /* subtraction: obj - obj */ | ||||
| static PyObject *Vector_sub(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_sub(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	VectorObject *vec1 = NULL, *vec2 = NULL; | ||||
| 	float vec[MAX_DIMENSIONS]; | ||||
| @@ -979,7 +978,7 @@ static PyObject *Vector_sub(PyObject * v1, PyObject * v2) | ||||
| } | ||||
|  | ||||
| /* subtraction in-place: obj -= obj */ | ||||
| static PyObject *Vector_isub(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_isub(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	VectorObject *vec1= NULL, *vec2= NULL; | ||||
|  | ||||
| @@ -1055,7 +1054,7 @@ static PyObject *vector_mul_float(VectorObject *vec, const float scalar) | ||||
| 	return newVectorObject(tvec, vec->size, Py_NEW, Py_TYPE(vec)); | ||||
| } | ||||
|  | ||||
| static PyObject *Vector_mul(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_mul(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	VectorObject *vec1 = NULL, *vec2 = NULL; | ||||
| 	float scalar; | ||||
| @@ -1116,12 +1115,12 @@ static PyObject *Vector_mul(PyObject * v1, PyObject * v2) | ||||
| 			mul_qt_v3(quat2->quat, tvec); | ||||
| 			return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1)); | ||||
| 		} | ||||
| 		else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC*FLOAT */ | ||||
| 		else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC * FLOAT */ | ||||
| 			return vector_mul_float(vec1, scalar); | ||||
| 		} | ||||
| 	} | ||||
| 	else if (vec2) { | ||||
| 		if (((scalar= PyFloat_AsDouble(v1)) == -1.0f && PyErr_Occurred())==0) { /* VEC*FLOAT */ | ||||
| 		if (((scalar= PyFloat_AsDouble(v1)) == -1.0f && PyErr_Occurred())==0) { /* FLOAT * VEC */ | ||||
| 			return vector_mul_float(vec2, scalar); | ||||
| 		} | ||||
| 	} | ||||
| @@ -1134,7 +1133,7 @@ static PyObject *Vector_mul(PyObject * v1, PyObject * v2) | ||||
| } | ||||
|  | ||||
| /* mulplication in-place: obj *= obj */ | ||||
| static PyObject *Vector_imul(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_imul(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	VectorObject *vec = (VectorObject *)v1; | ||||
| 	float scalar; | ||||
| @@ -1168,7 +1167,7 @@ static PyObject *Vector_imul(PyObject * v1, PyObject * v2) | ||||
| 		} | ||||
| 		mul_qt_v3(quat2->quat, vec->vec); | ||||
| 	} | ||||
| 	else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC*=FLOAT */ | ||||
| 	else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */ | ||||
| 		mul_vn_fl(vec->vec, vec->size, scalar); | ||||
| 	} | ||||
| 	else { | ||||
| @@ -1182,7 +1181,7 @@ static PyObject *Vector_imul(PyObject * v1, PyObject * v2) | ||||
| } | ||||
|  | ||||
| /* divid: obj / obj */ | ||||
| static PyObject *Vector_div(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_div(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	int i; | ||||
| 	float vec[4], scalar; | ||||
| @@ -1214,7 +1213,7 @@ static PyObject *Vector_div(PyObject * v1, PyObject * v2) | ||||
| } | ||||
|  | ||||
| /* divide in-place: obj /= obj */ | ||||
| static PyObject *Vector_idiv(PyObject * v1, PyObject * v2) | ||||
| static PyObject *Vector_idiv(PyObject *v1, PyObject *v2) | ||||
| { | ||||
| 	int i; | ||||
| 	float scalar; | ||||
| @@ -1489,7 +1488,7 @@ static PyObject *Vector_getAxis(VectorObject *self, void *type) | ||||
| 	return vector_item_internal(self, GET_INT_FROM_POINTER(type), TRUE); | ||||
| } | ||||
|  | ||||
| static int Vector_setAxis(VectorObject *self, PyObject * value, void *type) | ||||
| static int Vector_setAxis(VectorObject *self, PyObject *value, void *type) | ||||
| { | ||||
| 	return vector_ass_item_internal(self, GET_INT_FROM_POINTER(type), value, TRUE); | ||||
| } | ||||
| @@ -1596,7 +1595,7 @@ static PyObject *Vector_getSwizzle(VectorObject *self, void *closure) | ||||
|  | ||||
|    Returns 0 on success and -1 on failure. On failure, the vector will be | ||||
|    unchanged. */ | ||||
| static int Vector_setSwizzle(VectorObject *self, PyObject * value, void *closure) | ||||
| static int Vector_setSwizzle(VectorObject *self, PyObject *value, void *closure) | ||||
| { | ||||
| 	size_t size_from; | ||||
| 	float scalarVal; | ||||
|   | ||||
| @@ -169,7 +169,7 @@ PyDoc_STRVAR(M_Geometry_intersect_line_line_doc, | ||||
| ); | ||||
| static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject *args) | ||||
| { | ||||
| 	PyObject * tuple; | ||||
| 	PyObject *tuple; | ||||
| 	VectorObject *vec1, *vec2, *vec3, *vec4; | ||||
| 	float v1[3], v2[3], v3[3], v4[3], i1[3], i2[3]; | ||||
|  | ||||
| @@ -720,7 +720,7 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static void boxPack_ToPyObject(PyObject * value, boxPack **boxarray) | ||||
| static void boxPack_ToPyObject(PyObject *value, boxPack **boxarray) | ||||
| { | ||||
| 	int len, i; | ||||
| 	PyObject *list_item; | ||||
|   | ||||
| @@ -231,7 +231,7 @@ static PyObject *bpy_import_test(const char *modname) | ||||
| /***************************************************************************** | ||||
| * Description: Creates the bpy module and adds it to sys.modules for importing | ||||
| *****************************************************************************/ | ||||
| void BPy_init_modules( void ) | ||||
| void BPy_init_modules(void) | ||||
| { | ||||
| 	extern BPy_StructRNA *bpy_context_module; | ||||
| 	extern int bpy_lib_init(PyObject *); | ||||
| @@ -262,17 +262,17 @@ void BPy_init_modules( void ) | ||||
| 	/* run first, initializes rna types */ | ||||
| 	BPY_rna_init(); | ||||
|  | ||||
| 	PyModule_AddObject( mod, "types", BPY_rna_types() ); /* needs to be first so bpy_types can run */ | ||||
| 	PyModule_AddObject(mod, "types", BPY_rna_types()); /* needs to be first so bpy_types can run */ | ||||
| 	PyModule_AddObject(mod, "StructMetaPropGroup", (PyObject *)&pyrna_struct_meta_idprop_Type); /* metaclass for idprop types, bpy_types.py needs access */ | ||||
|  | ||||
| 	bpy_lib_init(mod); /* adds '_bpy._library_load', must be called before 'bpy_types' which uses it */ | ||||
|  | ||||
| 	bpy_import_test("bpy_types"); | ||||
| 	PyModule_AddObject( mod, "data", BPY_rna_module() ); /* imports bpy_types by running this */ | ||||
| 	PyModule_AddObject(mod, "data", BPY_rna_module()); /* imports bpy_types by running this */ | ||||
| 	bpy_import_test("bpy_types"); | ||||
| 	PyModule_AddObject( mod, "props", BPY_rna_props() ); | ||||
| 	PyModule_AddObject( mod, "ops", BPY_operator_module() ); /* ops is now a python module that does the conversion from SOME_OT_foo -> some.foo */ | ||||
| 	PyModule_AddObject( mod, "app", BPY_app_struct() ); | ||||
| 	PyModule_AddObject(mod, "props", BPY_rna_props()); | ||||
| 	PyModule_AddObject(mod, "ops", BPY_operator_module()); /* ops is now a python module that does the conversion from SOME_OT_foo -> some.foo */ | ||||
| 	PyModule_AddObject(mod, "app", BPY_app_struct()); | ||||
|  | ||||
| 	/* bpy context */ | ||||
| 	RNA_pointer_create(NULL, &RNA_Context, (void *)BPy_GetContext(), &ctx_ptr); | ||||
|   | ||||
| @@ -26,5 +26,5 @@ | ||||
|  */ | ||||
|  | ||||
|   | ||||
| void BPy_init_modules( void ); | ||||
| void BPy_init_modules(void); | ||||
| extern PyObject *bpy_package_py; | ||||
|   | ||||
| @@ -29,6 +29,6 @@ | ||||
| #ifndef BPY_APP_H | ||||
| #define BPY_APP_H | ||||
|  | ||||
| PyObject *BPY_app_struct( void ); | ||||
| PyObject *BPY_app_struct(void); | ||||
|  | ||||
| #endif // BPY_APP_H | ||||
|   | ||||
| @@ -60,7 +60,7 @@ int bpy_pydriver_create_dict(void) | ||||
| 	else | ||||
| 		bpy_pydriver_Dict= d; | ||||
|  | ||||
| 	/* import some modules: builtins, bpy, math, (Blender.noise )*/ | ||||
| 	/* import some modules: builtins, bpy, math, (Blender.noise)*/ | ||||
| 	PyDict_SetItemString(d, "__builtins__", PyEval_GetBuiltins()); | ||||
|  | ||||
| 	mod= PyImport_ImportModule("math"); | ||||
|   | ||||
| @@ -171,6 +171,8 @@ void BPY_context_set(bContext *C) | ||||
|  | ||||
| /* defined in AUD_C-API.cpp */ | ||||
| extern PyObject *AUD_initPython(void); | ||||
| /* defined in gpu_python.c */ | ||||
| extern PyObject *GPU_initPython(void); | ||||
|  | ||||
| static struct _inittab bpy_internal_modules[]= { | ||||
| 	{(char *)"noise", BPyInit_noise}, | ||||
| @@ -179,6 +181,7 @@ static struct _inittab bpy_internal_modules[]= { | ||||
| 	{(char *)"bgl", BPyInit_bgl}, | ||||
| 	{(char *)"blf", BPyInit_blf}, | ||||
| 	{(char *)"aud", AUD_initPython}, | ||||
| 	{(char *)"gpu", GPU_initPython}, | ||||
| 	{NULL, NULL} | ||||
| }; | ||||
|  | ||||
|   | ||||
| @@ -213,7 +213,7 @@ static PyObject *_bpy_names(BPy_Library *self, int blocktype) | ||||
| 		int counter= 0; | ||||
| 		list= PyList_New(totnames); | ||||
| 		for(l= names; l; l= l->next) { | ||||
| 			PyList_SET_ITEM(list, counter, PyUnicode_FromString((char * )l->link)); | ||||
| 			PyList_SET_ITEM(list, counter, PyUnicode_FromString((char *)l->link)); | ||||
| 			counter++; | ||||
| 		} | ||||
| 		BLI_linklist_free(names, free);	/* free linklist *and* each node's data */ | ||||
|   | ||||
| @@ -1156,7 +1156,7 @@ static struct PyModuleDef props_module= { | ||||
| 	NULL, NULL, NULL, NULL | ||||
| }; | ||||
|  | ||||
| PyObject *BPY_rna_props( void ) | ||||
| PyObject *BPY_rna_props(void) | ||||
| { | ||||
| 	PyObject *submodule; | ||||
| 	PyObject *submodule_dict; | ||||
|   | ||||
| @@ -30,7 +30,7 @@ | ||||
| #ifndef BPY_PROPS_H | ||||
| #define BPY_PROPS_H | ||||
|  | ||||
| PyObject *BPY_rna_props( void ); | ||||
| PyObject *BPY_rna_props(void); | ||||
|  | ||||
| #define PYRNA_STACK_ARRAY 32 | ||||
|  | ||||
|   | ||||
| @@ -1200,7 +1200,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val) | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| PyObject * pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) | ||||
| PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop) | ||||
| { | ||||
| 	PyObject *ret; | ||||
| 	int type= RNA_property_type(prop); | ||||
| @@ -1334,7 +1334,7 @@ int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, int all_args, const cha | ||||
| 	return error_val; | ||||
| } | ||||
|  | ||||
| static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw); | ||||
| static PyObject *pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw); | ||||
|  | ||||
| static PyObject *pyrna_func_to_py(BPy_DummyPointerRNA *pyrna, FunctionRNA *func) | ||||
| { | ||||
|   | ||||
| @@ -148,18 +148,18 @@ typedef struct { | ||||
| StructRNA *srna_from_self(PyObject *self, const char *error_prefix); | ||||
| StructRNA *pyrna_struct_as_srna(PyObject *self, int parent, const char *error_prefix); | ||||
|  | ||||
| void      BPY_rna_init( void ); | ||||
| PyObject *BPY_rna_module( void ); | ||||
| void	  BPY_update_rna_module( void ); | ||||
| /*PyObject *BPY_rna_doc( void );*/ | ||||
| PyObject *BPY_rna_types( void ); | ||||
| void      BPY_rna_init(void); | ||||
| PyObject *BPY_rna_module(void); | ||||
| void	  BPY_update_rna_module(void); | ||||
| /*PyObject *BPY_rna_doc(void);*/ | ||||
| PyObject *BPY_rna_types(void); | ||||
|  | ||||
| PyObject *pyrna_struct_CreatePyObject( PointerRNA *ptr ); | ||||
| PyObject *pyrna_prop_CreatePyObject( PointerRNA *ptr, PropertyRNA *prop ); | ||||
| PyObject *pyrna_struct_CreatePyObject(PointerRNA *ptr); | ||||
| PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop); | ||||
|  | ||||
| /* operators also need this to set args */ | ||||
| int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, int all_args, const char *error_prefix); | ||||
| PyObject * pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop); | ||||
| PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop); | ||||
|  | ||||
| PyObject *pyrna_enum_bitfield_to_py(struct EnumPropertyItem *items, int value); | ||||
| int pyrna_set_to_enum_bitfield(EnumPropertyItem *items, PyObject *value, int *r_value, const char *error_prefix); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user