Merged changes in the trunk up to revision 45820.
Conflicts resolved: source/creator/creator.c
This commit is contained in:
@@ -129,7 +129,7 @@ PyObject *BPyInit_bmesh(void)
|
||||
{
|
||||
PyObject *mod;
|
||||
PyObject *submodule;
|
||||
PyObject *sys_modules = PySys_GetObject("modules"); /* not pretty */
|
||||
PyObject *sys_modules = PyThreadState_GET()->interp->modules;
|
||||
|
||||
BPy_BM_init_types();
|
||||
BPy_BM_init_types_select();
|
||||
@@ -140,11 +140,11 @@ PyObject *BPyInit_bmesh(void)
|
||||
|
||||
/* bmesh.types */
|
||||
PyModule_AddObject(mod, "types", (submodule = BPyInit_bmesh_types()));
|
||||
PyDict_SetItemString(sys_modules, "bmesh.types", submodule);
|
||||
PyDict_SetItemString(sys_modules, PyModule_GetName(submodule), submodule);
|
||||
Py_INCREF(submodule);
|
||||
|
||||
PyModule_AddObject(mod, "utils", (submodule = BPyInit_bmesh_utils()));
|
||||
PyDict_SetItemString(sys_modules, "bmesh.utils", submodule);
|
||||
PyDict_SetItemString(sys_modules, PyModule_GetName(submodule), submodule);
|
||||
Py_INCREF(submodule);
|
||||
|
||||
return mod;
|
||||
|
||||
@@ -998,13 +998,13 @@ static PyObject *bpy_bmesh_transform(BPy_BMElem *self, PyObject *args, PyObject
|
||||
mat_ptr = mat->matrix;
|
||||
|
||||
if (!filter_flags) {
|
||||
BM_ITER(eve, &iter, self->bm, BM_VERTS_OF_MESH, NULL) {
|
||||
BM_ITER_MESH (eve, &iter, self->bm, BM_VERTS_OF_MESH) {
|
||||
mul_m4_v3((float (*)[4])mat_ptr, eve->co);
|
||||
}
|
||||
}
|
||||
else {
|
||||
char filter_flags_ch = (char)filter_flags;
|
||||
BM_ITER(eve, &iter, self->bm, BM_VERTS_OF_MESH, NULL) {
|
||||
BM_ITER_MESH (eve, &iter, self->bm, BM_VERTS_OF_MESH) {
|
||||
if (eve->head.hflag & filter_flags_ch) {
|
||||
mul_m4_v3((float (*)[4])mat_ptr, eve->co);
|
||||
}
|
||||
@@ -1189,9 +1189,9 @@ static PyObject *bpy_bmvert_copy_from_face_interp(BPy_BMVert *self, PyObject *ar
|
||||
PyDoc_STRVAR(bpy_bmvert_calc_edge_angle_doc,
|
||||
".. method:: calc_edge_angle()\n"
|
||||
"\n"
|
||||
" Return the angle between 2 connected edges.\n"
|
||||
" Return the angle between this verts 2 connected edges.\n"
|
||||
"\n"
|
||||
" :return: The angle between both edges in radians.\n"
|
||||
" :return: Angle between edges in radians.\n"
|
||||
" :rtype: float\n"
|
||||
);
|
||||
static PyObject *bpy_bmvert_calc_edge_angle(BPy_BMVert *self)
|
||||
@@ -1200,6 +1200,21 @@ static PyObject *bpy_bmvert_calc_edge_angle(BPy_BMVert *self)
|
||||
return PyFloat_FromDouble(BM_vert_edge_angle(self->v));
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(bpy_bmvert_calc_shell_factor_doc,
|
||||
".. method:: calc_shell_factor()\n"
|
||||
"\n"
|
||||
" Return a multiplier calculated based on the sharpness of the vertex.\n"
|
||||
" Where a flat surface gives 1.0, and higher values sharper edges.\n"
|
||||
" This is used to maintain shell thickness when offsetting verts along their normals.\n"
|
||||
"\n"
|
||||
" :return: offset multiplier\n"
|
||||
" :rtype: float\n"
|
||||
);
|
||||
static PyObject *bpy_bmvert_calc_shell_factor(BPy_BMVert *self)
|
||||
{
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
return PyFloat_FromDouble(BM_vert_shell_factor(self->v));
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(bpy_bmvert_normal_update_doc,
|
||||
".. method:: normal_update()\n"
|
||||
@@ -1210,7 +1225,7 @@ static PyObject *bpy_bmvert_normal_update(BPy_BMVert *self)
|
||||
{
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
|
||||
BM_vert_normal_update(self->bm, self->v);
|
||||
BM_vert_normal_update(self->v);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -1243,6 +1258,36 @@ static PyObject *bpy_bmedge_calc_face_angle(BPy_BMEdge *self)
|
||||
return PyFloat_FromDouble(BM_edge_face_angle(self->e));
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(bpy_bmedge_calc_tangent_doc,
|
||||
".. method:: calc_tangent(loop)\n"
|
||||
"\n"
|
||||
" Return the tangent at this edge relative to a face (pointing inward into the face).\n"
|
||||
" This uses the face normal for calculation.\n"
|
||||
"\n"
|
||||
" :arg loop: The loop used for tangent calculation.\n"
|
||||
" :type loop: :class:`BMLoop`\n"
|
||||
" :return: a normalized vector.\n"
|
||||
" :rtype: :class:`mathutils.Vector`\n"
|
||||
);
|
||||
static PyObject *bpy_bmedge_calc_tangent(BPy_BMEdge *self, PyObject *args)
|
||||
{
|
||||
BPy_BMLoop *py_loop;
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O!:BMEdge.calc_face_tangent",
|
||||
&BPy_BMLoop_Type, &py_loop))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
else {
|
||||
float vec[3];
|
||||
BPY_BM_CHECK_OBJ(py_loop);
|
||||
/* no need to check if they are from the same mesh or even connected */
|
||||
BM_edge_face_tangent(self->e, py_loop->l, vec);
|
||||
return Vector_CreatePyObject(vec, 3, Py_NEW, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PyDoc_STRVAR(bpy_bmedge_other_vert_doc,
|
||||
".. method:: other_vert(vert)\n"
|
||||
@@ -1295,7 +1340,7 @@ static PyObject *bpy_bmedge_normal_update(BPy_BMEdge *self)
|
||||
{
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
|
||||
BM_edge_normals_update(self->bm, self->e);
|
||||
BM_edge_normals_update(self->e);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -1396,7 +1441,22 @@ PyDoc_STRVAR(bpy_bmface_calc_area_doc,
|
||||
static PyObject *bpy_bmface_calc_area(BPy_BMFace *self)
|
||||
{
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
return PyFloat_FromDouble(BM_face_area_calc(self->bm, self->f));
|
||||
return PyFloat_FromDouble(BM_face_area_calc(self->f));
|
||||
}
|
||||
|
||||
|
||||
PyDoc_STRVAR(bpy_bmface_calc_perimeter_doc,
|
||||
".. method:: calc_perimeter()\n"
|
||||
"\n"
|
||||
" Return the perimeter of the face.\n"
|
||||
"\n"
|
||||
" :return: Return the perimeter of the face.\n"
|
||||
" :rtype: float\n"
|
||||
);
|
||||
static PyObject *bpy_bmface_calc_perimeter(BPy_BMFace *self)
|
||||
{
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
return PyFloat_FromDouble(BM_face_perimeter_calc(self->f));
|
||||
}
|
||||
|
||||
|
||||
@@ -1413,7 +1473,7 @@ static PyObject *bpy_bmface_calc_center_mean(BPy_BMFace *self)
|
||||
float cent[3];
|
||||
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
BM_face_center_mean_calc(self->bm, self->f, cent);
|
||||
BM_face_center_mean_calc(self->f, cent);
|
||||
return Vector_CreatePyObject(cent, 3, Py_NEW, NULL);
|
||||
}
|
||||
|
||||
@@ -1431,7 +1491,7 @@ static PyObject *bpy_bmface_calc_center_bounds(BPy_BMFace *self)
|
||||
float cent[3];
|
||||
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
BM_face_center_bounds_calc(self->bm, self->f, cent);
|
||||
BM_face_center_bounds_calc(self->f, cent);
|
||||
return Vector_CreatePyObject(cent, 3, Py_NEW, NULL);
|
||||
}
|
||||
|
||||
@@ -1445,7 +1505,7 @@ static PyObject *bpy_bmface_normal_update(BPy_BMFace *self)
|
||||
{
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
|
||||
BM_face_normal_update(self->bm, self->f);
|
||||
BM_face_normal_update(self->f);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
@@ -2049,7 +2109,8 @@ static struct PyMethodDef bpy_bmvert_methods[] = {
|
||||
{"copy_from_face_interp", (PyCFunction)bpy_bmvert_copy_from_face_interp, METH_VARARGS, bpy_bmvert_copy_from_face_interp_doc},
|
||||
{"copy_from_vert_interp", (PyCFunction)bpy_bmvert_copy_from_vert_interp, METH_VARARGS, bpy_bmvert_copy_from_vert_interp_doc},
|
||||
|
||||
{"calc_vert_angle", (PyCFunction)bpy_bmvert_calc_edge_angle, METH_NOARGS, bpy_bmvert_calc_edge_angle_doc},
|
||||
{"calc_vert_angle", (PyCFunction)bpy_bmvert_calc_edge_angle, METH_NOARGS, bpy_bmvert_calc_edge_angle_doc},
|
||||
{"calc_shell_factor", (PyCFunction)bpy_bmvert_calc_shell_factor, METH_NOARGS, bpy_bmvert_calc_shell_factor_doc},
|
||||
|
||||
{"normal_update", (PyCFunction)bpy_bmvert_normal_update, METH_NOARGS, bpy_bmvert_normal_update_doc},
|
||||
|
||||
@@ -2063,8 +2124,9 @@ static struct PyMethodDef bpy_bmedge_methods[] = {
|
||||
|
||||
{"other_vert", (PyCFunction)bpy_bmedge_other_vert, METH_O, bpy_bmedge_other_vert_doc},
|
||||
|
||||
{"calc_length", (PyCFunction)bpy_bmedge_calc_length, METH_NOARGS, bpy_bmedge_calc_length_doc},
|
||||
{"calc_face_angle", (PyCFunction)bpy_bmedge_calc_face_angle, METH_NOARGS, bpy_bmedge_calc_face_angle_doc},
|
||||
{"calc_length", (PyCFunction)bpy_bmedge_calc_length, METH_NOARGS, bpy_bmedge_calc_length_doc},
|
||||
{"calc_face_angle", (PyCFunction)bpy_bmedge_calc_face_angle, METH_NOARGS, bpy_bmedge_calc_face_angle_doc},
|
||||
{"calc_tangent", (PyCFunction)bpy_bmedge_calc_tangent, METH_VARARGS, bpy_bmedge_calc_tangent_doc},
|
||||
|
||||
{"normal_update", (PyCFunction)bpy_bmedge_normal_update, METH_NOARGS, bpy_bmedge_normal_update_doc},
|
||||
|
||||
@@ -2081,6 +2143,7 @@ static struct PyMethodDef bpy_bmface_methods[] = {
|
||||
{"copy", (PyCFunction)bpy_bmface_copy, METH_VARARGS|METH_KEYWORDS, bpy_bmface_copy_doc},
|
||||
|
||||
{"calc_area", (PyCFunction)bpy_bmface_calc_area, METH_NOARGS, bpy_bmface_calc_area_doc},
|
||||
{"calc_perimeter", (PyCFunction)bpy_bmface_calc_perimeter, METH_NOARGS, bpy_bmface_calc_perimeter_doc},
|
||||
{"calc_center_median", (PyCFunction)bpy_bmface_calc_center_mean, METH_NOARGS, bpy_bmface_calc_center_mean_doc},
|
||||
{"calc_center_bounds", (PyCFunction)bpy_bmface_calc_center_bounds, METH_NOARGS, bpy_bmface_calc_center_bounds_doc},
|
||||
|
||||
@@ -2138,7 +2201,7 @@ static struct PyMethodDef bpy_bmfaceseq_methods[] = {
|
||||
|
||||
static struct PyMethodDef bpy_bmloopseq_methods[] = {
|
||||
/* odd function, initializes index values */
|
||||
{"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
|
||||
/* no: index_update() function since we cant iterate over loops */
|
||||
{NULL, NULL, 0, NULL}
|
||||
};
|
||||
|
||||
|
||||
@@ -138,8 +138,8 @@ void BPy_BM_init_types(void);
|
||||
PyObject *BPyInit_bmesh_types(void);
|
||||
|
||||
enum {
|
||||
BPY_BMFLAG_NOP = 0, /* do nothing */
|
||||
BPY_BMFLAG_IS_WRAPPED = 1 /* the mesh is owned by editmode */
|
||||
BPY_BMFLAG_NOP = 0, /* do nothing */
|
||||
BPY_BMFLAG_IS_WRAPPED = 1 /* the mesh is owned by editmode */
|
||||
};
|
||||
|
||||
PyObject *BPy_BMesh_CreatePyObject(BMesh *bm, int flag);
|
||||
@@ -175,8 +175,15 @@ char *BPy_BMElem_StringFromHType(const char htype);
|
||||
|
||||
#define BPY_BM_IS_VALID(obj) (LIKELY((obj)->bm != NULL))
|
||||
|
||||
#define BM_ITER_BPY_BM_SEQ(ele, iter, bpy_bmelemseq) \
|
||||
BM_ITER(ele, iter, (bpy_bmelemseq)->bm, (bpy_bmelemseq)->itype, \
|
||||
(bpy_bmelemseq)->py_ele ? ((BPy_BMElem *)(bpy_bmelemseq)->py_ele)->ele : NULL)
|
||||
#define BM_ITER_BPY_BM_SEQ(ele, iter, bpy_bmelemseq) \
|
||||
for (ele = BM_iter_new(iter, \
|
||||
(bpy_bmelemseq)->bm, \
|
||||
(bpy_bmelemseq)->itype, \
|
||||
(bpy_bmelemseq)->py_ele ? \
|
||||
((BPy_BMElem *)(bpy_bmelemseq)->py_ele)->ele : \
|
||||
NULL \
|
||||
); \
|
||||
ele; \
|
||||
ele = BM_iter_step(iter))
|
||||
|
||||
#endif /* __BMESH_TYPES_H__ */
|
||||
|
||||
@@ -886,7 +886,7 @@ static PyMappingMethods BPy_IDGroup_Mapping = {
|
||||
PyTypeObject BPy_IDGroup_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
/* For printing, in format "<module>.<name>" */
|
||||
"Blender IDProperty", /* char *tp_name; */
|
||||
"IDPropertyGroup", /* char *tp_name; */
|
||||
sizeof(BPy_IDProperty), /* int tp_basicsize; */
|
||||
0, /* tp_itemsize; For allocation */
|
||||
|
||||
@@ -1236,7 +1236,7 @@ static PyMappingMethods BPy_IDArray_AsMapping = {
|
||||
PyTypeObject BPy_IDArray_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
/* For printing, in format "<module>.<name>" */
|
||||
"Blender IDArray", /* char *tp_name; */
|
||||
"IDPropertyArray", /* char *tp_name; */
|
||||
sizeof(BPy_IDArray), /* int tp_basicsize; */
|
||||
0, /* tp_itemsize; For allocation */
|
||||
|
||||
@@ -1350,7 +1350,7 @@ static PyObject *BPy_Group_Iter_Next(BPy_IDGroup_Iter *self)
|
||||
PyTypeObject BPy_IDGroup_Iter_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
/* For printing, in format "<module>.<name>" */
|
||||
"Blender IDGroup_Iter", /* char *tp_name; */
|
||||
"IDPropertyGroupIter", /* char *tp_name; */
|
||||
sizeof(BPy_IDGroup_Iter), /* int tp_basicsize; */
|
||||
0, /* tp_itemsize; For allocation */
|
||||
|
||||
@@ -1410,3 +1410,76 @@ void IDProp_Init_Types(void)
|
||||
PyType_Ready(&BPy_IDGroup_Iter_Type);
|
||||
PyType_Ready(&BPy_IDArray_Type);
|
||||
}
|
||||
|
||||
/*----------------------------MODULE INIT-------------------------*/
|
||||
|
||||
/* --- */
|
||||
|
||||
static struct PyModuleDef IDProp_types_module_def = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
"idprop.types", /* m_name */
|
||||
NULL, /* m_doc */
|
||||
0, /* m_size */
|
||||
NULL, /* m_methods */
|
||||
NULL, /* m_reload */
|
||||
NULL, /* m_traverse */
|
||||
NULL, /* m_clear */
|
||||
NULL, /* m_free */
|
||||
};
|
||||
|
||||
static PyObject *BPyInit_idprop_types(void)
|
||||
{
|
||||
PyObject *submodule;
|
||||
|
||||
submodule = PyModule_Create(&IDProp_types_module_def);
|
||||
|
||||
#define MODULE_TYPE_ADD(s, t) \
|
||||
PyModule_AddObject(s, t.tp_name, (PyObject *)&t); Py_INCREF((PyObject *)&t)
|
||||
|
||||
/* bmesh_py_types.c */
|
||||
MODULE_TYPE_ADD(submodule, BPy_IDGroup_Type);
|
||||
MODULE_TYPE_ADD(submodule, BPy_IDGroup_Iter_Type);
|
||||
MODULE_TYPE_ADD(submodule, BPy_IDArray_Type);
|
||||
|
||||
#undef MODULE_TYPE_ADD
|
||||
|
||||
return submodule;
|
||||
}
|
||||
|
||||
/* --- */
|
||||
|
||||
static PyMethodDef IDProp_methods[] = {
|
||||
{NULL, NULL, 0, NULL}
|
||||
};
|
||||
|
||||
|
||||
PyDoc_STRVAR(IDProp_module_doc,
|
||||
"This module provides access id property types (currently mainly for docs)."
|
||||
);
|
||||
static struct PyModuleDef IDProp_module_def = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
"idprop", /* m_name */
|
||||
IDProp_module_doc, /* m_doc */
|
||||
0, /* m_size */
|
||||
IDProp_methods, /* m_methods */
|
||||
NULL, /* m_reload */
|
||||
NULL, /* m_traverse */
|
||||
NULL, /* m_clear */
|
||||
NULL, /* m_free */
|
||||
};
|
||||
|
||||
PyObject *BPyInit_idprop(void)
|
||||
{
|
||||
PyObject *mod;
|
||||
PyObject *submodule;
|
||||
PyObject *sys_modules = PyThreadState_GET()->interp->modules;
|
||||
|
||||
mod = PyModule_Create(&IDProp_module_def);
|
||||
|
||||
/* bmesh.types */
|
||||
PyModule_AddObject(mod, "types", (submodule = BPyInit_idprop_types()));
|
||||
PyDict_SetItemString(sys_modules, PyModule_GetName(submodule), submodule);
|
||||
Py_INCREF(submodule);
|
||||
|
||||
return mod;
|
||||
}
|
||||
|
||||
@@ -64,6 +64,8 @@ const char *BPy_IDProperty_Map_ValidateAndCreate(PyObject *key, struct IDPropert
|
||||
|
||||
void IDProp_Init_Types(void);
|
||||
|
||||
PyObject *BPyInit_idprop(void);
|
||||
|
||||
#define IDPROP_ITER_KEYS 0
|
||||
#define IDPROP_ITER_ITEMS 1
|
||||
|
||||
|
||||
@@ -74,9 +74,11 @@
|
||||
/* inittab initialization functions */
|
||||
#include "../generic/bgl.h"
|
||||
#include "../generic/blf_py_api.h"
|
||||
#include "../generic/idprop_py_api.h"
|
||||
#include "../bmesh/bmesh_py_api.h"
|
||||
#include "../mathutils/mathutils.h"
|
||||
|
||||
|
||||
/* for internal use, when starting and ending python scripts */
|
||||
|
||||
/* in case a python script triggers another python call, stop bpy_context_clear from invalidating */
|
||||
@@ -211,6 +213,7 @@ static struct _inittab bpy_internal_modules[] = {
|
||||
{(char *)"_cycles", CCL_initPython},
|
||||
#endif
|
||||
{(char *)"gpu", GPU_initPython},
|
||||
{(char *)"idprop", BPyInit_idprop},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
|
||||
@@ -433,8 +433,8 @@ static struct PyModuleDef M_Mathutils_module_def = {
|
||||
|
||||
PyMODINIT_FUNC PyInit_mathutils(void)
|
||||
{
|
||||
PyObject *mod;
|
||||
PyObject *submodule;
|
||||
PyObject *item;
|
||||
PyObject *sys_modules = PyThreadState_GET()->interp->modules;
|
||||
|
||||
if (PyType_Ready(&vector_Type) < 0)
|
||||
@@ -450,31 +450,31 @@ PyMODINIT_FUNC PyInit_mathutils(void)
|
||||
if (PyType_Ready(&color_Type) < 0)
|
||||
return NULL;
|
||||
|
||||
submodule = PyModule_Create(&M_Mathutils_module_def);
|
||||
mod = PyModule_Create(&M_Mathutils_module_def);
|
||||
|
||||
/* each type has its own new() function */
|
||||
PyModule_AddObject(submodule, "Vector", (PyObject *)&vector_Type);
|
||||
PyModule_AddObject(submodule, "Matrix", (PyObject *)&matrix_Type);
|
||||
PyModule_AddObject(submodule, "Euler", (PyObject *)&euler_Type);
|
||||
PyModule_AddObject(submodule, "Quaternion", (PyObject *)&quaternion_Type);
|
||||
PyModule_AddObject(submodule, "Color", (PyObject *)&color_Type);
|
||||
PyModule_AddObject(mod, vector_Type.tp_name, (PyObject *)&vector_Type);
|
||||
PyModule_AddObject(mod, matrix_Type.tp_name, (PyObject *)&matrix_Type);
|
||||
PyModule_AddObject(mod, euler_Type.tp_name, (PyObject *)&euler_Type);
|
||||
PyModule_AddObject(mod, quaternion_Type.tp_name, (PyObject *)&quaternion_Type);
|
||||
PyModule_AddObject(mod, color_Type.tp_name, (PyObject *)&color_Type);
|
||||
|
||||
/* submodule */
|
||||
PyModule_AddObject(submodule, "geometry", (item = PyInit_mathutils_geometry()));
|
||||
PyModule_AddObject(mod, "geometry", (submodule = PyInit_mathutils_geometry()));
|
||||
/* XXX, python doesnt do imports with this usefully yet
|
||||
* 'from mathutils.geometry import PolyFill'
|
||||
* ...fails without this. */
|
||||
PyDict_SetItemString(sys_modules, "mathutils.geometry", item);
|
||||
Py_INCREF(item);
|
||||
PyDict_SetItemString(sys_modules, PyModule_GetName(submodule), submodule);
|
||||
Py_INCREF(submodule);
|
||||
|
||||
/* Noise submodule */
|
||||
PyModule_AddObject(submodule, "noise", (item = PyInit_mathutils_noise()));
|
||||
PyDict_SetItemString(sys_modules, "mathutils.noise", item);
|
||||
Py_INCREF(item);
|
||||
PyModule_AddObject(mod, "noise", (submodule = PyInit_mathutils_noise()));
|
||||
PyDict_SetItemString(sys_modules, PyModule_GetName(submodule), submodule);
|
||||
Py_INCREF(submodule);
|
||||
|
||||
mathutils_matrix_row_cb_index = Mathutils_RegisterCallback(&mathutils_matrix_row_cb);
|
||||
mathutils_matrix_col_cb_index = Mathutils_RegisterCallback(&mathutils_matrix_col_cb);
|
||||
mathutils_matrix_translation_cb_index = Mathutils_RegisterCallback(&mathutils_matrix_translation_cb);
|
||||
|
||||
return submodule;
|
||||
return mod;
|
||||
}
|
||||
|
||||
@@ -807,7 +807,7 @@ PyDoc_STRVAR(color_doc,
|
||||
);
|
||||
PyTypeObject color_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
"mathutils.Color", //tp_name
|
||||
"Color", //tp_name
|
||||
sizeof(ColorObject), //tp_basicsize
|
||||
0, //tp_itemsize
|
||||
(destructor)BaseMathObject_dealloc, //tp_dealloc
|
||||
|
||||
@@ -650,7 +650,7 @@ PyDoc_STRVAR(euler_doc,
|
||||
);
|
||||
PyTypeObject euler_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
"mathutils.Euler", //tp_name
|
||||
"Euler", //tp_name
|
||||
sizeof(EulerObject), //tp_basicsize
|
||||
0, //tp_itemsize
|
||||
(destructor)BaseMathObject_dealloc, //tp_dealloc
|
||||
|
||||
@@ -2316,7 +2316,7 @@ PyDoc_STRVAR(matrix_doc,
|
||||
);
|
||||
PyTypeObject matrix_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
"mathutils.Matrix", /*tp_name*/
|
||||
"Matrix", /*tp_name*/
|
||||
sizeof(MatrixObject), /*tp_basicsize*/
|
||||
0, /*tp_itemsize*/
|
||||
(destructor)BaseMathObject_dealloc, /*tp_dealloc*/
|
||||
|
||||
@@ -1192,7 +1192,7 @@ PyDoc_STRVAR(quaternion_doc,
|
||||
);
|
||||
PyTypeObject quaternion_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
"mathutils.Quaternion", //tp_name
|
||||
"Quaternion", //tp_name
|
||||
sizeof(QuaternionObject), //tp_basicsize
|
||||
0, //tp_itemsize
|
||||
(destructor)BaseMathObject_dealloc, //tp_dealloc
|
||||
|
||||
@@ -2791,7 +2791,7 @@ PyDoc_STRVAR(vector_doc,
|
||||
PyTypeObject vector_Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
/* For printing, in format "<module>.<name>" */
|
||||
"mathutils.Vector", /* char *tp_name; */
|
||||
"Vector", /* char *tp_name; */
|
||||
sizeof(VectorObject), /* int tp_basicsize; */
|
||||
0, /* tp_itemsize; For allocation */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user