Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-17 07:17:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-17 07:21:24 +0300
commite12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch)
tree8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/python/bmesh/bmesh_py_types_meshdata.c
parentb3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff)
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/python/bmesh/bmesh_py_types_meshdata.c')
-rw-r--r--source/blender/python/bmesh/bmesh_py_types_meshdata.c766
1 files changed, 384 insertions, 382 deletions
diff --git a/source/blender/python/bmesh/bmesh_py_types_meshdata.c b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
index 604b55de6e6..34a4ec3b1ed 100644
--- a/source/blender/python/bmesh/bmesh_py_types_meshdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
@@ -45,111 +45,118 @@
/* Mesh Loop UV
* ************ */
-#define BPy_BMLoopUV_Check(v) (Py_TYPE(v) == &BPy_BMLoopUV_Type)
+#define BPy_BMLoopUV_Check(v) (Py_TYPE(v) == &BPy_BMLoopUV_Type)
typedef struct BPy_BMLoopUV {
- PyObject_VAR_HEAD
- MLoopUV *data;
+ PyObject_VAR_HEAD MLoopUV *data;
} BPy_BMLoopUV;
PyDoc_STRVAR(bpy_bmloopuv_uv_doc,
-"Loops UV (as a 2D Vector).\n\n:type: :class:`mathutils.Vector`"
-);
+ "Loops UV (as a 2D Vector).\n\n:type: :class:`mathutils.Vector`");
static PyObject *bpy_bmloopuv_uv_get(BPy_BMLoopUV *self, void *UNUSED(closure))
{
- return Vector_CreatePyObject_wrap(self->data->uv, 2, NULL);
+ return Vector_CreatePyObject_wrap(self->data->uv, 2, NULL);
}
static int bpy_bmloopuv_uv_set(BPy_BMLoopUV *self, PyObject *value, void *UNUSED(closure))
{
- float tvec[2];
- if (mathutils_array_parse(tvec, 2, 2, value, "BMLoopUV.uv") != -1) {
- copy_v2_v2(self->data->uv, tvec);
- return 0;
- }
- else {
- return -1;
- }
+ float tvec[2];
+ if (mathutils_array_parse(tvec, 2, 2, value, "BMLoopUV.uv") != -1) {
+ copy_v2_v2(self->data->uv, tvec);
+ return 0;
+ }
+ else {
+ return -1;
+ }
}
-PyDoc_STRVAR(bpy_bmloopuv_flag__pin_uv_doc,
-"UV pin state.\n\n:type: boolean"
-);
-PyDoc_STRVAR(bpy_bmloopuv_flag__select_doc,
-"UV select state.\n\n:type: boolean"
-);
-PyDoc_STRVAR(bpy_bmloopuv_flag__select_edge_doc,
-"UV edge select state.\n\n:type: boolean"
-);
-
+PyDoc_STRVAR(bpy_bmloopuv_flag__pin_uv_doc, "UV pin state.\n\n:type: boolean");
+PyDoc_STRVAR(bpy_bmloopuv_flag__select_doc, "UV select state.\n\n:type: boolean");
+PyDoc_STRVAR(bpy_bmloopuv_flag__select_edge_doc, "UV edge select state.\n\n:type: boolean");
static PyObject *bpy_bmloopuv_flag_get(BPy_BMLoopUV *self, void *flag_p)
{
- const int flag = POINTER_AS_INT(flag_p);
- return PyBool_FromLong(self->data->flag & flag);
+ const int flag = POINTER_AS_INT(flag_p);
+ return PyBool_FromLong(self->data->flag & flag);
}
static int bpy_bmloopuv_flag_set(BPy_BMLoopUV *self, PyObject *value, void *flag_p)
{
- const int flag = POINTER_AS_INT(flag_p);
+ const int flag = POINTER_AS_INT(flag_p);
- switch (PyC_Long_AsBool(value)) {
- case true:
- self->data->flag |= flag;
- return 0;
- case false:
- self->data->flag &= ~flag;
- return 0;
- default:
- /* error is set */
- return -1;
- }
+ switch (PyC_Long_AsBool(value)) {
+ case true:
+ self->data->flag |= flag;
+ return 0;
+ case false:
+ self->data->flag &= ~flag;
+ return 0;
+ default:
+ /* error is set */
+ return -1;
+ }
}
static PyGetSetDef bpy_bmloopuv_getseters[] = {
- /* attributes match rna_def_mloopuv */
- {(char *)"uv", (getter)bpy_bmloopuv_uv_get, (setter)bpy_bmloopuv_uv_set, (char *)bpy_bmloopuv_uv_doc, NULL},
- {(char *)"pin_uv", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__pin_uv_doc, (void *)MLOOPUV_PINNED},
- {(char *)"select", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__select_doc, (void *)MLOOPUV_VERTSEL},
- {(char *)"select_edge", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__select_edge_doc, (void *)MLOOPUV_EDGESEL},
-
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ /* attributes match rna_def_mloopuv */
+ {(char *)"uv",
+ (getter)bpy_bmloopuv_uv_get,
+ (setter)bpy_bmloopuv_uv_set,
+ (char *)bpy_bmloopuv_uv_doc,
+ NULL},
+ {(char *)"pin_uv",
+ (getter)bpy_bmloopuv_flag_get,
+ (setter)bpy_bmloopuv_flag_set,
+ (char *)bpy_bmloopuv_flag__pin_uv_doc,
+ (void *)MLOOPUV_PINNED},
+ {(char *)"select",
+ (getter)bpy_bmloopuv_flag_get,
+ (setter)bpy_bmloopuv_flag_set,
+ (char *)bpy_bmloopuv_flag__select_doc,
+ (void *)MLOOPUV_VERTSEL},
+ {(char *)"select_edge",
+ (getter)bpy_bmloopuv_flag_get,
+ (setter)bpy_bmloopuv_flag_set,
+ (char *)bpy_bmloopuv_flag__select_edge_doc,
+ (void *)MLOOPUV_EDGESEL},
+
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
PyTypeObject BPy_BMLoopUV_Type; /* bm.loops.layers.uv.active */
static void bm_init_types_bmloopuv(void)
{
- BPy_BMLoopUV_Type.tp_basicsize = sizeof(BPy_BMLoopUV);
+ BPy_BMLoopUV_Type.tp_basicsize = sizeof(BPy_BMLoopUV);
- BPy_BMLoopUV_Type.tp_name = "BMLoopUV";
+ BPy_BMLoopUV_Type.tp_name = "BMLoopUV";
- BPy_BMLoopUV_Type.tp_doc = NULL; // todo
+ BPy_BMLoopUV_Type.tp_doc = NULL; // todo
- BPy_BMLoopUV_Type.tp_getset = bpy_bmloopuv_getseters;
+ BPy_BMLoopUV_Type.tp_getset = bpy_bmloopuv_getseters;
- BPy_BMLoopUV_Type.tp_flags = Py_TPFLAGS_DEFAULT;
+ BPy_BMLoopUV_Type.tp_flags = Py_TPFLAGS_DEFAULT;
- PyType_Ready(&BPy_BMLoopUV_Type);
+ PyType_Ready(&BPy_BMLoopUV_Type);
}
int BPy_BMLoopUV_AssignPyObject(struct MLoopUV *mloopuv, PyObject *value)
{
- if (UNLIKELY(!BPy_BMLoopUV_Check(value))) {
- PyErr_Format(PyExc_TypeError, "expected BMLoopUV, not a %.200s", Py_TYPE(value)->tp_name);
- return -1;
- }
- else {
- *((MLoopUV *)mloopuv) = *(((BPy_BMLoopUV *)value)->data);
- return 0;
- }
+ if (UNLIKELY(!BPy_BMLoopUV_Check(value))) {
+ PyErr_Format(PyExc_TypeError, "expected BMLoopUV, not a %.200s", Py_TYPE(value)->tp_name);
+ return -1;
+ }
+ else {
+ *((MLoopUV *)mloopuv) = *(((BPy_BMLoopUV *)value)->data);
+ return 0;
+ }
}
PyObject *BPy_BMLoopUV_CreatePyObject(struct MLoopUV *mloopuv)
{
- BPy_BMLoopUV *self = PyObject_New(BPy_BMLoopUV, &BPy_BMLoopUV_Type);
- self->data = mloopuv;
- return (PyObject *)self;
+ BPy_BMLoopUV *self = PyObject_New(BPy_BMLoopUV, &BPy_BMLoopUV_Type);
+ self->data = mloopuv;
+ return (PyObject *)self;
}
/* --- End Mesh Loop UV --- */
@@ -157,106 +164,114 @@ PyObject *BPy_BMLoopUV_CreatePyObject(struct MLoopUV *mloopuv)
/* Mesh Vert Skin
* ************ */
-#define BPy_BMVertSkin_Check(v) (Py_TYPE(v) == &BPy_BMVertSkin_Type)
+#define BPy_BMVertSkin_Check(v) (Py_TYPE(v) == &BPy_BMVertSkin_Type)
typedef struct BPy_BMVertSkin {
- PyObject_VAR_HEAD
- MVertSkin *data;
+ PyObject_VAR_HEAD MVertSkin *data;
} BPy_BMVertSkin;
PyDoc_STRVAR(bpy_bmvertskin_radius_doc,
-"Vert skin radii (as a 2D Vector).\n\n:type: :class:`mathutils.Vector`"
-);
+ "Vert skin radii (as a 2D Vector).\n\n:type: :class:`mathutils.Vector`");
static PyObject *bpy_bmvertskin_radius_get(BPy_BMVertSkin *self, void *UNUSED(closure))
{
- return Vector_CreatePyObject_wrap(self->data->radius, 2, NULL);
+ return Vector_CreatePyObject_wrap(self->data->radius, 2, NULL);
}
static int bpy_bmvertskin_radius_set(BPy_BMVertSkin *self, PyObject *value, void *UNUSED(closure))
{
- float tvec[2];
- if (mathutils_array_parse(tvec, 2, 2, value, "BMVertSkin.radius") != -1) {
- copy_v2_v2(self->data->radius, tvec);
- return 0;
- }
- else {
- return -1;
- }
+ float tvec[2];
+ if (mathutils_array_parse(tvec, 2, 2, value, "BMVertSkin.radius") != -1) {
+ copy_v2_v2(self->data->radius, tvec);
+ return 0;
+ }
+ else {
+ return -1;
+ }
}
PyDoc_STRVAR(bpy_bmvertskin_flag__use_root_doc,
-"Use as root vertex. Setting this flag does not clear other roots in the same mesh island.\n\n:type: boolean"
-);
-PyDoc_STRVAR(bpy_bmvertskin_flag__use_loose_doc,
-"Use loose vertex.\n\n:type: boolean"
-);
+ "Use as root vertex. Setting this flag does not clear other roots in the same mesh "
+ "island.\n\n:type: boolean");
+PyDoc_STRVAR(bpy_bmvertskin_flag__use_loose_doc, "Use loose vertex.\n\n:type: boolean");
static PyObject *bpy_bmvertskin_flag_get(BPy_BMVertSkin *self, void *flag_p)
{
- const int flag = POINTER_AS_INT(flag_p);
- return PyBool_FromLong(self->data->flag & flag);
+ const int flag = POINTER_AS_INT(flag_p);
+ return PyBool_FromLong(self->data->flag & flag);
}
static int bpy_bmvertskin_flag_set(BPy_BMVertSkin *self, PyObject *value, void *flag_p)
{
- const int flag = POINTER_AS_INT(flag_p);
+ const int flag = POINTER_AS_INT(flag_p);
- switch (PyC_Long_AsBool(value)) {
- case true:
- self->data->flag |= flag;
- return 0;
- case false:
- self->data->flag &= ~flag;
- return 0;
- default:
- /* error is set */
- return -1;
- }
+ switch (PyC_Long_AsBool(value)) {
+ case true:
+ self->data->flag |= flag;
+ return 0;
+ case false:
+ self->data->flag &= ~flag;
+ return 0;
+ default:
+ /* error is set */
+ return -1;
+ }
}
static PyGetSetDef bpy_bmvertskin_getseters[] = {
- /* attributes match rna_mesh_gen */
- {(char *)"radius", (getter)bpy_bmvertskin_radius_get, (setter)bpy_bmvertskin_radius_set, (char *)bpy_bmvertskin_radius_doc, NULL},
- {(char *)"use_root", (getter)bpy_bmvertskin_flag_get, (setter)bpy_bmvertskin_flag_set, (char *)bpy_bmvertskin_flag__use_root_doc, (void *)MVERT_SKIN_ROOT},
- {(char *)"use_loose", (getter)bpy_bmvertskin_flag_get, (setter)bpy_bmvertskin_flag_set, (char *)bpy_bmvertskin_flag__use_loose_doc, (void *)MVERT_SKIN_LOOSE},
-
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ /* attributes match rna_mesh_gen */
+ {(char *)"radius",
+ (getter)bpy_bmvertskin_radius_get,
+ (setter)bpy_bmvertskin_radius_set,
+ (char *)bpy_bmvertskin_radius_doc,
+ NULL},
+ {(char *)"use_root",
+ (getter)bpy_bmvertskin_flag_get,
+ (setter)bpy_bmvertskin_flag_set,
+ (char *)bpy_bmvertskin_flag__use_root_doc,
+ (void *)MVERT_SKIN_ROOT},
+ {(char *)"use_loose",
+ (getter)bpy_bmvertskin_flag_get,
+ (setter)bpy_bmvertskin_flag_set,
+ (char *)bpy_bmvertskin_flag__use_loose_doc,
+ (void *)MVERT_SKIN_LOOSE},
+
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyTypeObject BPy_BMVertSkin_Type; /* bm.loops.layers.skin.active */
static void bm_init_types_bmvertskin(void)
{
- BPy_BMVertSkin_Type.tp_basicsize = sizeof(BPy_BMVertSkin);
+ BPy_BMVertSkin_Type.tp_basicsize = sizeof(BPy_BMVertSkin);
- BPy_BMVertSkin_Type.tp_name = "BMVertSkin";
+ BPy_BMVertSkin_Type.tp_name = "BMVertSkin";
- BPy_BMVertSkin_Type.tp_doc = NULL; // todo
+ BPy_BMVertSkin_Type.tp_doc = NULL; // todo
- BPy_BMVertSkin_Type.tp_getset = bpy_bmvertskin_getseters;
+ BPy_BMVertSkin_Type.tp_getset = bpy_bmvertskin_getseters;
- BPy_BMVertSkin_Type.tp_flags = Py_TPFLAGS_DEFAULT;
+ BPy_BMVertSkin_Type.tp_flags = Py_TPFLAGS_DEFAULT;
- PyType_Ready(&BPy_BMVertSkin_Type);
+ PyType_Ready(&BPy_BMVertSkin_Type);
}
int BPy_BMVertSkin_AssignPyObject(struct MVertSkin *mvertskin, PyObject *value)
{
- if (UNLIKELY(!BPy_BMVertSkin_Check(value))) {
- PyErr_Format(PyExc_TypeError, "expected BMVertSkin, not a %.200s", Py_TYPE(value)->tp_name);
- return -1;
- }
- else {
- *((MVertSkin *)mvertskin) = *(((BPy_BMVertSkin *)value)->data);
- return 0;
- }
+ if (UNLIKELY(!BPy_BMVertSkin_Check(value))) {
+ PyErr_Format(PyExc_TypeError, "expected BMVertSkin, not a %.200s", Py_TYPE(value)->tp_name);
+ return -1;
+ }
+ else {
+ *((MVertSkin *)mvertskin) = *(((BPy_BMVertSkin *)value)->data);
+ return 0;
+ }
}
PyObject *BPy_BMVertSkin_CreatePyObject(struct MVertSkin *mvertskin)
{
- BPy_BMVertSkin *self = PyObject_New(BPy_BMVertSkin, &BPy_BMVertSkin_Type);
- self->data = mvertskin;
- return (PyObject *)self;
+ BPy_BMVertSkin *self = PyObject_New(BPy_BMVertSkin, &BPy_BMVertSkin_Type);
+ self->data = mvertskin;
+ return (PyObject *)self;
}
/* --- End Mesh Vert Skin --- */
@@ -268,101 +283,100 @@ PyObject *BPy_BMVertSkin_CreatePyObject(struct MVertSkin *mvertskin)
* color which uses mathutils callbacks for mathutils.Color
*/
-#define MLOOPCOL_FROM_CAPSULE(color_capsule) \
- ((MLoopCol *)PyCapsule_GetPointer(color_capsule, NULL))
+#define MLOOPCOL_FROM_CAPSULE(color_capsule) \
+ ((MLoopCol *)PyCapsule_GetPointer(color_capsule, NULL))
static void mloopcol_to_float(const MLoopCol *mloopcol, float r_col[3])
{
- rgba_uchar_to_float(r_col, (const unsigned char *)&mloopcol->r);
+ rgba_uchar_to_float(r_col, (const unsigned char *)&mloopcol->r);
}
static void mloopcol_from_float(MLoopCol *mloopcol, const float col[3])
{
- rgba_float_to_uchar((unsigned char *)&mloopcol->r, col);
+ rgba_float_to_uchar((unsigned char *)&mloopcol->r, col);
}
static unsigned char mathutils_bmloopcol_cb_index = -1;
static int mathutils_bmloopcol_check(BaseMathObject *UNUSED(bmo))
{
- /* always ok */
- return 0;
+ /* always ok */
+ return 0;
}
static int mathutils_bmloopcol_get(BaseMathObject *bmo, int UNUSED(subtype))
{
- MLoopCol *mloopcol = MLOOPCOL_FROM_CAPSULE(bmo->cb_user);
- mloopcol_to_float(mloopcol, bmo->data);
- return 0;
+ MLoopCol *mloopcol = MLOOPCOL_FROM_CAPSULE(bmo->cb_user);
+ mloopcol_to_float(mloopcol, bmo->data);
+ return 0;
}
static int mathutils_bmloopcol_set(BaseMathObject *bmo, int UNUSED(subtype))
{
- MLoopCol *mloopcol = MLOOPCOL_FROM_CAPSULE(bmo->cb_user);
- mloopcol_from_float(mloopcol, bmo->data);
- return 0;
+ MLoopCol *mloopcol = MLOOPCOL_FROM_CAPSULE(bmo->cb_user);
+ mloopcol_from_float(mloopcol, bmo->data);
+ return 0;
}
static int mathutils_bmloopcol_get_index(BaseMathObject *bmo, int subtype, int UNUSED(index))
{
- /* lazy, avoid repeteing the case statement */
- if (mathutils_bmloopcol_get(bmo, subtype) == -1) {
- return -1;
- }
- return 0;
+ /* lazy, avoid repeteing the case statement */
+ if (mathutils_bmloopcol_get(bmo, subtype) == -1) {
+ return -1;
+ }
+ return 0;
}
static int mathutils_bmloopcol_set_index(BaseMathObject *bmo, int subtype, int index)
{
- const float f = bmo->data[index];
+ const float f = bmo->data[index];
- /* lazy, avoid repeteing the case statement */
- if (mathutils_bmloopcol_get(bmo, subtype) == -1) {
- return -1;
- }
+ /* lazy, avoid repeteing the case statement */
+ if (mathutils_bmloopcol_get(bmo, subtype) == -1) {
+ return -1;
+ }
- bmo->data[index] = f;
- return mathutils_bmloopcol_set(bmo, subtype);
+ bmo->data[index] = f;
+ return mathutils_bmloopcol_set(bmo, subtype);
}
static Mathutils_Callback mathutils_bmloopcol_cb = {
- mathutils_bmloopcol_check,
- mathutils_bmloopcol_get,
- mathutils_bmloopcol_set,
- mathutils_bmloopcol_get_index,
- mathutils_bmloopcol_set_index,
+ mathutils_bmloopcol_check,
+ mathutils_bmloopcol_get,
+ mathutils_bmloopcol_set,
+ mathutils_bmloopcol_get_index,
+ mathutils_bmloopcol_set_index,
};
static void bm_init_types_bmloopcol(void)
{
- /* pass */
- mathutils_bmloopcol_cb_index = Mathutils_RegisterCallback(&mathutils_bmloopcol_cb);
+ /* pass */
+ mathutils_bmloopcol_cb_index = Mathutils_RegisterCallback(&mathutils_bmloopcol_cb);
}
int BPy_BMLoopColor_AssignPyObject(struct MLoopCol *mloopcol, PyObject *value)
{
- float tvec[4];
- if (mathutils_array_parse(tvec, 4, 4, value, "BMLoopCol") != -1) {
- mloopcol_from_float(mloopcol, tvec);
- return 0;
- }
- else {
- return -1;
- }
+ float tvec[4];
+ if (mathutils_array_parse(tvec, 4, 4, value, "BMLoopCol") != -1) {
+ mloopcol_from_float(mloopcol, tvec);
+ return 0;
+ }
+ else {
+ return -1;
+ }
}
PyObject *BPy_BMLoopColor_CreatePyObject(struct MLoopCol *data)
{
- PyObject *color_capsule;
- color_capsule = PyCapsule_New(data, NULL, NULL);
- return Vector_CreatePyObject_cb(color_capsule, 4, mathutils_bmloopcol_cb_index, 0);
+ PyObject *color_capsule;
+ color_capsule = PyCapsule_New(data, NULL, NULL);
+ return Vector_CreatePyObject_cb(color_capsule, 4, mathutils_bmloopcol_cb_index, 0);
}
#undef MLOOPCOL_FROM_CAPSULE
/* --- End Mesh Loop Color --- */
-
/* Mesh Deform Vert
* **************** */
@@ -388,322 +402,310 @@ PyObject *BPy_BMLoopColor_CreatePyObject(struct MLoopCol *data)
* only expose as mapping, not a sequence.
*/
-#define BPy_BMDeformVert_Check(v) (Py_TYPE(v) == &BPy_BMDeformVert_Type)
+#define BPy_BMDeformVert_Check(v) (Py_TYPE(v) == &BPy_BMDeformVert_Type)
typedef struct BPy_BMDeformVert {
- PyObject_VAR_HEAD
- MDeformVert *data;
+ PyObject_VAR_HEAD MDeformVert *data;
} BPy_BMDeformVert;
-
/* Mapping Protocols
* ================= */
static int bpy_bmdeformvert_len(BPy_BMDeformVert *self)
{
- return self->data->totweight;
+ return self->data->totweight;
}
static PyObject *bpy_bmdeformvert_subscript(BPy_BMDeformVert *self, PyObject *key)
{
- if (PyIndex_Check(key)) {
- int i;
- i = PyNumber_AsSsize_t(key, PyExc_IndexError);
- if (i == -1 && PyErr_Occurred()) {
- return NULL;
- }
- else {
- MDeformWeight *dw = defvert_find_index(self->data, i);
-
- if (dw == NULL) {
- PyErr_SetString(PyExc_KeyError, "BMDeformVert[key] = x: "
- "key not found");
- return NULL;
- }
- else {
- return PyFloat_FromDouble(dw->weight);
- }
- }
- }
- else {
- PyErr_Format(PyExc_TypeError,
- "BMDeformVert keys must be integers, not %.200s",
- Py_TYPE(key)->tp_name);
- return NULL;
- }
+ if (PyIndex_Check(key)) {
+ int i;
+ i = PyNumber_AsSsize_t(key, PyExc_IndexError);
+ if (i == -1 && PyErr_Occurred()) {
+ return NULL;
+ }
+ else {
+ MDeformWeight *dw = defvert_find_index(self->data, i);
+
+ if (dw == NULL) {
+ PyErr_SetString(PyExc_KeyError,
+ "BMDeformVert[key] = x: "
+ "key not found");
+ return NULL;
+ }
+ else {
+ return PyFloat_FromDouble(dw->weight);
+ }
+ }
+ }
+ else {
+ PyErr_Format(
+ PyExc_TypeError, "BMDeformVert keys must be integers, not %.200s", Py_TYPE(key)->tp_name);
+ return NULL;
+ }
}
static int bpy_bmdeformvert_ass_subscript(BPy_BMDeformVert *self, PyObject *key, PyObject *value)
{
- if (PyIndex_Check(key)) {
- int i;
-
- i = PyNumber_AsSsize_t(key, PyExc_IndexError);
- if (i == -1 && PyErr_Occurred()) {
- return -1;
- }
-
- if (value) {
- /* dvert[group_index] = 0.5 */
- if (i < 0) {
- PyErr_SetString(PyExc_KeyError, "BMDeformVert[key] = x: "
- "weight keys can't be negative");
- return -1;
- }
- else {
- MDeformWeight *dw = defvert_verify_index(self->data, i);
- const float f = PyFloat_AsDouble(value);
- if (f == -1 && PyErr_Occurred()) { // parsed key not a number
- PyErr_SetString(PyExc_TypeError,
- "BMDeformVert[key] = x: "
- "assigned value not a number");
- return -1;
- }
-
- dw->weight = clamp_f(f, 0.0f, 1.0f);
- }
- }
- else {
- /* del dvert[group_index] */
- MDeformWeight *dw = defvert_find_index(self->data, i);
-
- if (dw == NULL) {
- PyErr_SetString(PyExc_KeyError, "del BMDeformVert[key]: "
- "key not found");
- }
- defvert_remove_group(self->data, dw);
- }
-
- return 0;
-
- }
- else {
- PyErr_Format(PyExc_TypeError,
- "BMDeformVert keys must be integers, not %.200s",
- Py_TYPE(key)->tp_name);
- return -1;
- }
+ if (PyIndex_Check(key)) {
+ int i;
+
+ i = PyNumber_AsSsize_t(key, PyExc_IndexError);
+ if (i == -1 && PyErr_Occurred()) {
+ return -1;
+ }
+
+ if (value) {
+ /* dvert[group_index] = 0.5 */
+ if (i < 0) {
+ PyErr_SetString(PyExc_KeyError,
+ "BMDeformVert[key] = x: "
+ "weight keys can't be negative");
+ return -1;
+ }
+ else {
+ MDeformWeight *dw = defvert_verify_index(self->data, i);
+ const float f = PyFloat_AsDouble(value);
+ if (f == -1 && PyErr_Occurred()) { // parsed key not a number
+ PyErr_SetString(PyExc_TypeError,
+ "BMDeformVert[key] = x: "
+ "assigned value not a number");
+ return -1;
+ }
+
+ dw->weight = clamp_f(f, 0.0f, 1.0f);
+ }
+ }
+ else {
+ /* del dvert[group_index] */
+ MDeformWeight *dw = defvert_find_index(self->data, i);
+
+ if (dw == NULL) {
+ PyErr_SetString(PyExc_KeyError,
+ "del BMDeformVert[key]: "
+ "key not found");
+ }
+ defvert_remove_group(self->data, dw);
+ }
+
+ return 0;
+ }
+ else {
+ PyErr_Format(
+ PyExc_TypeError, "BMDeformVert keys must be integers, not %.200s", Py_TYPE(key)->tp_name);
+ return -1;
+ }
}
static int bpy_bmdeformvert_contains(BPy_BMDeformVert *self, PyObject *value)
{
- const int key = PyLong_AsSsize_t(value);
+ const int key = PyLong_AsSsize_t(value);
- if (key == -1 && PyErr_Occurred()) {
- PyErr_SetString(PyExc_TypeError,
- "BMDeformVert.__contains__: expected an int");
- return -1;
- }
+ if (key == -1 && PyErr_Occurred()) {
+ PyErr_SetString(PyExc_TypeError, "BMDeformVert.__contains__: expected an int");
+ return -1;
+ }
- return (defvert_find_index(self->data, key) != NULL) ? 1 : 0;
+ return (defvert_find_index(self->data, key) != NULL) ? 1 : 0;
}
/* only defined for __contains__ */
static PySequenceMethods bpy_bmdeformvert_as_sequence = {
- (lenfunc)bpy_bmdeformvert_len, /* sq_length */
- NULL, /* sq_concat */
- NULL, /* sq_repeat */
-
- /* note: if this is set PySequence_Check() returns True,
- * but in this case we dont want to be treated as a seq */
- NULL, /* sq_item */
-
- NULL, /* sq_slice */
- NULL, /* sq_ass_item */
- NULL, /* *was* sq_ass_slice */
- (objobjproc)bpy_bmdeformvert_contains, /* sq_contains */
- (binaryfunc) NULL, /* sq_inplace_concat */
- (ssizeargfunc) NULL, /* sq_inplace_repeat */
+ (lenfunc)bpy_bmdeformvert_len, /* sq_length */
+ NULL, /* sq_concat */
+ NULL, /* sq_repeat */
+
+ /* note: if this is set PySequence_Check() returns True,
+ * but in this case we dont want to be treated as a seq */
+ NULL, /* sq_item */
+
+ NULL, /* sq_slice */
+ NULL, /* sq_ass_item */
+ NULL, /* *was* sq_ass_slice */
+ (objobjproc)bpy_bmdeformvert_contains, /* sq_contains */
+ (binaryfunc)NULL, /* sq_inplace_concat */
+ (ssizeargfunc)NULL, /* sq_inplace_repeat */
};
static PyMappingMethods bpy_bmdeformvert_as_mapping = {
- (lenfunc)bpy_bmdeformvert_len,
- (binaryfunc)bpy_bmdeformvert_subscript,
- (objobjargproc)bpy_bmdeformvert_ass_subscript,
+ (lenfunc)bpy_bmdeformvert_len,
+ (binaryfunc)bpy_bmdeformvert_subscript,
+ (objobjargproc)bpy_bmdeformvert_ass_subscript,
};
/* Methods
* ======= */
PyDoc_STRVAR(bpy_bmdeformvert_keys_doc,
-".. method:: keys()\n"
-"\n"
-" Return the group indices used by this vertex\n"
-" (matching pythons dict.keys() functionality).\n"
-"\n"
-" :return: the deform group this vertex uses\n"
-" :rtype: list of ints\n"
-);
+ ".. method:: keys()\n"
+ "\n"
+ " Return the group indices used by this vertex\n"
+ " (matching pythons dict.keys() functionality).\n"
+ "\n"
+ " :return: the deform group this vertex uses\n"
+ " :rtype: list of ints\n");
static PyObject *bpy_bmdeformvert_keys(BPy_BMDeformVert *self)
{
- PyObject *ret;
- int i;
- MDeformWeight *dw = self->data->dw;
+ PyObject *ret;
+ int i;
+ MDeformWeight *dw = self->data->dw;
- ret = PyList_New(self->data->totweight);
- for (i = 0; i < self->data->totweight; i++, dw++) {
- PyList_SET_ITEM(ret, i, PyLong_FromLong(dw->def_nr));
- }
+ ret = PyList_New(self->data->totweight);
+ for (i = 0; i < self->data->totweight; i++, dw++) {
+ PyList_SET_ITEM(ret, i, PyLong_FromLong(dw->def_nr));
+ }
- return ret;
+ return ret;
}
PyDoc_STRVAR(bpy_bmdeformvert_values_doc,
-".. method:: values()\n"
-"\n"
-" Return the weights of the deform vertex\n"
-" (matching pythons dict.values() functionality).\n"
-"\n"
-" :return: The weights that influence this vertex\n"
-" :rtype: list of floats\n"
-);
+ ".. method:: values()\n"
+ "\n"
+ " Return the weights of the deform vertex\n"
+ " (matching pythons dict.values() functionality).\n"
+ "\n"
+ " :return: The weights that influence this vertex\n"
+ " :rtype: list of floats\n");
static PyObject *bpy_bmdeformvert_values(BPy_BMDeformVert *self)
{
- PyObject *ret;
- int i;
- MDeformWeight *dw = self->data->dw;
+ PyObject *ret;
+ int i;
+ MDeformWeight *dw = self->data->dw;
- ret = PyList_New(self->data->totweight);
- for (i = 0; i < self->data->totweight; i++, dw++) {
- PyList_SET_ITEM(ret, i, PyFloat_FromDouble(dw->weight));
- }
+ ret = PyList_New(self->data->totweight);
+ for (i = 0; i < self->data->totweight; i++, dw++) {
+ PyList_SET_ITEM(ret, i, PyFloat_FromDouble(dw->weight));
+ }
- return ret;
+ return ret;
}
PyDoc_STRVAR(bpy_bmdeformvert_items_doc,
-".. method:: items()\n"
-"\n"
-" Return (group, weight) pairs for this vertex\n"
-" (matching pythons dict.items() functionality).\n"
-"\n"
-" :return: (key, value) pairs for each deform weight of this vertex.\n"
-" :rtype: list of tuples\n"
-);
+ ".. method:: items()\n"
+ "\n"
+ " Return (group, weight) pairs for this vertex\n"
+ " (matching pythons dict.items() functionality).\n"
+ "\n"
+ " :return: (key, value) pairs for each deform weight of this vertex.\n"
+ " :rtype: list of tuples\n");
static PyObject *bpy_bmdeformvert_items(BPy_BMDeformVert *self)
{
- PyObject *ret;
- PyObject *item;
- int i;
- MDeformWeight *dw = self->data->dw;
+ PyObject *ret;
+ PyObject *item;
+ int i;
+ MDeformWeight *dw = self->data->dw;
- ret = PyList_New(self->data->totweight);
- for (i = 0; i < self->data->totweight; i++, dw++) {
- item = PyTuple_New(2);
- PyTuple_SET_ITEMS(item,
- PyLong_FromLong(dw->def_nr),
- PyFloat_FromDouble(dw->weight));
- PyList_SET_ITEM(ret, i, item);
- }
+ ret = PyList_New(self->data->totweight);
+ for (i = 0; i < self->data->totweight; i++, dw++) {
+ item = PyTuple_New(2);
+ PyTuple_SET_ITEMS(item, PyLong_FromLong(dw->def_nr), PyFloat_FromDouble(dw->weight));
+ PyList_SET_ITEM(ret, i, item);
+ }
- return ret;
+ return ret;
}
PyDoc_STRVAR(bpy_bmdeformvert_get_doc,
-".. method:: get(key, default=None)\n"
-"\n"
-" Returns the deform weight matching the key or default\n"
-" when not found (matches pythons dictionary function of the same name).\n"
-"\n"
-" :arg key: The key associated with deform weight.\n"
-" :type key: int\n"
-" :arg default: Optional argument for the value to return if\n"
-" *key* is not found.\n"
-" :type default: Undefined\n"
-);
+ ".. method:: get(key, default=None)\n"
+ "\n"
+ " Returns the deform weight matching the key or default\n"
+ " when not found (matches pythons dictionary function of the same name).\n"
+ "\n"
+ " :arg key: The key associated with deform weight.\n"
+ " :type key: int\n"
+ " :arg default: Optional argument for the value to return if\n"
+ " *key* is not found.\n"
+ " :type default: Undefined\n");
static PyObject *bpy_bmdeformvert_get(BPy_BMDeformVert *self, PyObject *args)
{
- int key;
- PyObject *def = Py_None;
+ int key;
+ PyObject *def = Py_None;
- if (!PyArg_ParseTuple(args, "i|O:get", &key, &def)) {
- return NULL;
- }
- else {
- MDeformWeight *dw = defvert_find_index(self->data, key);
+ if (!PyArg_ParseTuple(args, "i|O:get", &key, &def)) {
+ return NULL;
+ }
+ else {
+ MDeformWeight *dw = defvert_find_index(self->data, key);
- if (dw) {
- return PyFloat_FromDouble(dw->weight);
- }
- else {
- return Py_INCREF_RET(def);
- }
- }
+ if (dw) {
+ return PyFloat_FromDouble(dw->weight);
+ }
+ else {
+ return Py_INCREF_RET(def);
+ }
+ }
}
-
PyDoc_STRVAR(bpy_bmdeformvert_clear_doc,
-".. method:: clear()\n"
-"\n"
-" Clears all weights.\n"
-);
+ ".. method:: clear()\n"
+ "\n"
+ " Clears all weights.\n");
static PyObject *bpy_bmdeformvert_clear(BPy_BMDeformVert *self)
{
- defvert_clear(self->data);
+ defvert_clear(self->data);
- Py_RETURN_NONE;
+ Py_RETURN_NONE;
}
static struct PyMethodDef bpy_bmdeformvert_methods[] = {
- {"keys", (PyCFunction)bpy_bmdeformvert_keys, METH_NOARGS, bpy_bmdeformvert_keys_doc},
- {"values", (PyCFunction)bpy_bmdeformvert_values, METH_NOARGS, bpy_bmdeformvert_values_doc},
- {"items", (PyCFunction)bpy_bmdeformvert_items, METH_NOARGS, bpy_bmdeformvert_items_doc},
- {"get", (PyCFunction)bpy_bmdeformvert_get, METH_VARARGS, bpy_bmdeformvert_get_doc},
- /* BMESH_TODO pop, popitem, update */
- {"clear", (PyCFunction)bpy_bmdeformvert_clear, METH_NOARGS, bpy_bmdeformvert_clear_doc},
- {NULL, NULL, 0, NULL},
+ {"keys", (PyCFunction)bpy_bmdeformvert_keys, METH_NOARGS, bpy_bmdeformvert_keys_doc},
+ {"values", (PyCFunction)bpy_bmdeformvert_values, METH_NOARGS, bpy_bmdeformvert_values_doc},
+ {"items", (PyCFunction)bpy_bmdeformvert_items, METH_NOARGS, bpy_bmdeformvert_items_doc},
+ {"get", (PyCFunction)bpy_bmdeformvert_get, METH_VARARGS, bpy_bmdeformvert_get_doc},
+ /* BMESH_TODO pop, popitem, update */
+ {"clear", (PyCFunction)bpy_bmdeformvert_clear, METH_NOARGS, bpy_bmdeformvert_clear_doc},
+ {NULL, NULL, 0, NULL},
};
PyTypeObject BPy_BMDeformVert_Type; /* bm.loops.layers.uv.active */
static void bm_init_types_bmdvert(void)
{
- BPy_BMDeformVert_Type.tp_basicsize = sizeof(BPy_BMDeformVert);
+ BPy_BMDeformVert_Type.tp_basicsize = sizeof(BPy_BMDeformVert);
- BPy_BMDeformVert_Type.tp_name = "BMDeformVert";
+ BPy_BMDeformVert_Type.tp_name = "BMDeformVert";
- BPy_BMDeformVert_Type.tp_doc = NULL; // todo
+ BPy_BMDeformVert_Type.tp_doc = NULL; // todo
- BPy_BMDeformVert_Type.tp_as_sequence = &bpy_bmdeformvert_as_sequence;
- BPy_BMDeformVert_Type.tp_as_mapping = &bpy_bmdeformvert_as_mapping;
+ BPy_BMDeformVert_Type.tp_as_sequence = &bpy_bmdeformvert_as_sequence;
+ BPy_BMDeformVert_Type.tp_as_mapping = &bpy_bmdeformvert_as_mapping;
- BPy_BMDeformVert_Type.tp_methods = bpy_bmdeformvert_methods;
+ BPy_BMDeformVert_Type.tp_methods = bpy_bmdeformvert_methods;
- BPy_BMDeformVert_Type.tp_flags = Py_TPFLAGS_DEFAULT;
+ BPy_BMDeformVert_Type.tp_flags = Py_TPFLAGS_DEFAULT;
- PyType_Ready(&BPy_BMDeformVert_Type);
+ PyType_Ready(&BPy_BMDeformVert_Type);
}
int BPy_BMDeformVert_AssignPyObject(struct MDeformVert *dvert, PyObject *value)
{
- if (UNLIKELY(!BPy_BMDeformVert_Check(value))) {
- PyErr_Format(PyExc_TypeError, "expected BMDeformVert, not a %.200s", Py_TYPE(value)->tp_name);
- return -1;
- }
- else {
- MDeformVert *dvert_src = ((BPy_BMDeformVert *)value)->data;
- if (LIKELY(dvert != dvert_src)) {
- defvert_copy(dvert, dvert_src);
- }
- return 0;
- }
+ if (UNLIKELY(!BPy_BMDeformVert_Check(value))) {
+ PyErr_Format(PyExc_TypeError, "expected BMDeformVert, not a %.200s", Py_TYPE(value)->tp_name);
+ return -1;
+ }
+ else {
+ MDeformVert *dvert_src = ((BPy_BMDeformVert *)value)->data;
+ if (LIKELY(dvert != dvert_src)) {
+ defvert_copy(dvert, dvert_src);
+ }
+ return 0;
+ }
}
PyObject *BPy_BMDeformVert_CreatePyObject(struct MDeformVert *dvert)
{
- BPy_BMDeformVert *self = PyObject_New(BPy_BMDeformVert, &BPy_BMDeformVert_Type);
- self->data = dvert;
- return (PyObject *)self;
+ BPy_BMDeformVert *self = PyObject_New(BPy_BMDeformVert, &BPy_BMDeformVert_Type);
+ self->data = dvert;
+ return (PyObject *)self;
}
/* --- End Mesh Deform Vert --- */
-
/* call to init all types */
void BPy_BM_init_types_meshdata(void)
{
- bm_init_types_bmloopuv();
- bm_init_types_bmloopcol();
- bm_init_types_bmdvert();
- bm_init_types_bmvertskin();
+ bm_init_types_bmloopuv();
+ bm_init_types_bmloopcol();
+ bm_init_types_bmdvert();
+ bm_init_types_bmvertskin();
}