forked from bartvdbraak/blender
bmesh py api: add BMesh.calc_tessface()
This commit is contained in:
parent
28940d79b1
commit
de379c05de
@ -1217,6 +1217,44 @@ static PyObject *bpy_bmesh_calc_volume(BPy_BMElem *self, PyObject *args, PyObjec
|
||||
}
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(bpy_bmesh_calc_tessface_doc,
|
||||
".. method:: calc_tessface()\n"
|
||||
"\n"
|
||||
" Calculate triangle tessellation from quads/ngons.\n"
|
||||
"\n"
|
||||
" :return: The triangulated faces.\n"
|
||||
" :rtype: list of :class:`BMLoop` tuples\n"
|
||||
);
|
||||
static PyObject *bpy_bmesh_calc_tessface(BPy_BMElem *self)
|
||||
{
|
||||
BMesh *bm;
|
||||
|
||||
int looptris_tot;
|
||||
int tottri;
|
||||
BMLoop *(*looptris)[3];
|
||||
|
||||
PyObject *ret;
|
||||
int i;
|
||||
|
||||
BPY_BM_CHECK_OBJ(self);
|
||||
|
||||
bm = self->bm;
|
||||
|
||||
looptris_tot = poly_to_tri_count(bm->totface, bm->totloop);
|
||||
looptris = PyMem_MALLOC(sizeof(*looptris) * looptris_tot);
|
||||
|
||||
BM_bmesh_calc_tessellation(bm, looptris, &tottri);
|
||||
|
||||
ret = PyList_New(tottri);
|
||||
for (i = 0; i < tottri; i++) {
|
||||
PyList_SET_ITEM(ret, i, BPy_BMLoop_Array_As_Tuple(bm, looptris[i], 3));
|
||||
}
|
||||
|
||||
PyMem_FREE(looptris);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* Elem
|
||||
* ---- */
|
||||
@ -2488,6 +2526,7 @@ static struct PyMethodDef bpy_bmesh_methods[] = {
|
||||
|
||||
/* calculations */
|
||||
{"calc_volume", (PyCFunction)bpy_bmesh_calc_volume, METH_VARARGS | METH_KEYWORDS, bpy_bmesh_calc_volume_doc},
|
||||
{"calc_tessface", (PyCFunction)bpy_bmesh_calc_tessface, METH_NOARGS, bpy_bmesh_calc_tessface_doc},
|
||||
{NULL, NULL, 0, NULL}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user