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>2012-02-26 21:20:36 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-02-26 21:20:36 +0400
commit74e9563b8a76e509263390763b7328ce7c2ccff1 (patch)
tree05bbd6ff0ab3d51918e702d482c1328432fe6429 /source/blender
parentd184fe0df35a8d285139c513803f62454ee1e004 (diff)
* bmesh py api BMEdge.verts was using 2 v1's
* bmesh pu api __repr__ functions for mesh data. * correct py hash defines.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/bmesh/intern/bmesh_iterators.c2
-rw-r--r--source/blender/python/bmesh/bmesh_py_types.c88
-rw-r--r--source/blender/python/generic/idprop_py_api.c2
-rw-r--r--source/blender/python/intern/bpy_rna.c2
4 files changed, 89 insertions, 5 deletions
diff --git a/source/blender/bmesh/intern/bmesh_iterators.c b/source/blender/bmesh/intern/bmesh_iterators.c
index fb63ab36ef5..11944dc1fa2 100644
--- a/source/blender/bmesh/intern/bmesh_iterators.c
+++ b/source/blender/bmesh/intern/bmesh_iterators.c
@@ -389,7 +389,7 @@ void *bmiter__vert_of_edge_step(BMIter *iter)
case 1:
return iter->edata->v1;
case 2:
- return iter->edata->v1;
+ return iter->edata->v2;
default:
return NULL;
}
diff --git a/source/blender/python/bmesh/bmesh_py_types.c b/source/blender/python/bmesh/bmesh_py_types.c
index 906451f0d57..f18741ba0ed 100644
--- a/source/blender/python/bmesh/bmesh_py_types.c
+++ b/source/blender/python/bmesh/bmesh_py_types.c
@@ -2015,11 +2015,15 @@ static void bpy_bmelemseq_dealloc(BPy_BMElemSeq *self)
}
/* not sure where this should go */
-static long bpy_bm_elem_hash(PyObject *self)
+static Py_hash_t bpy_bm_elem_hash(PyObject *self)
{
return _Py_HashPointer(((BPy_BMElem *)self)->ele);
}
+static Py_hash_t bpy_bm_hash(PyObject *self)
+{
+ return _Py_HashPointer(((BPy_BMesh *)self)->bm);
+}
/* Type Docstrings
* =============== */
@@ -2051,6 +2055,77 @@ PyDoc_STRVAR(bpy_bmiter_doc,
"used for iterating over :class:`BMElemSeq` types.\n"
);
+static PyObject *bpy_bmesh_repr(BPy_BMesh *self)
+{
+ BMesh *bm = self->bm;
+
+ if (bm) {
+ return PyUnicode_FromFormat("<BMesh(%p), totvert=%d, totedge=%d, totface=%d, totloop=%d>",
+ bm, bm->totvert, bm->totedge, bm->totface, bm->totloop);
+ }
+ else {
+ return PyUnicode_FromFormat("<BMesh dead at %p>", self);
+ }
+}
+
+static PyObject *bpy_bmvert_repr(BPy_BMVert *self)
+{
+ BMesh *bm = self->bm;
+
+ if (bm) {
+ return PyUnicode_FromFormat("<BMVert(%p), index=%d>",
+ self->v, BM_elem_index_get(self->v));
+ }
+ else {
+ return PyUnicode_FromFormat("<BMVert dead at %p>", self);
+ }
+}
+
+static PyObject *bpy_bmedge_repr(BPy_BMEdge *self)
+{
+ BMesh *bm = self->bm;
+
+ if (bm) {
+ return PyUnicode_FromFormat("<BMEdge(%p), index=%d, verts=(%p/%d, %p/%d)>",
+ self->e, BM_elem_index_get(self->e),
+ self->e->v1, BM_elem_index_get(self->e->v1),
+ self->e->v2, BM_elem_index_get(self->e->v2));
+ }
+ else {
+ return PyUnicode_FromFormat("<BMEdge dead at %p>", self);
+ }
+}
+
+static PyObject *bpy_bmface_repr(BPy_BMFace *self)
+{
+ BMesh *bm = self->bm;
+
+ if (bm) {
+ return PyUnicode_FromFormat("<BMFace(%p), index=%d, totverts=%d>",
+ self->f, BM_elem_index_get(self->f),
+ self->f->len);
+ }
+ else {
+ return PyUnicode_FromFormat("<BMFace dead at %p>", self);
+ }
+}
+
+static PyObject *bpy_bmloop_repr(BPy_BMLoop *self)
+{
+ BMesh *bm = self->bm;
+
+ if (bm) {
+ return PyUnicode_FromFormat("<BMLoop(%p), index=%d, vert=%p/%d, edge=%p/%d, face=%p/%d>",
+ self->l, BM_elem_index_get(self->l),
+ self->l->v, BM_elem_index_get(self->l->v),
+ self->l->e, BM_elem_index_get(self->l->e),
+ self->l->f, BM_elem_index_get(self->l->f));
+ }
+ else {
+ return PyUnicode_FromFormat("<BMLoop dead at %p>", self);
+ }
+}
+
/* Types
* ===== */
@@ -2093,6 +2168,15 @@ void BPy_BM_init_types(void)
BPy_BMIter_Type.tp_doc = bpy_bmiter_doc;
+ BPy_BMesh_Type.tp_repr = (reprfunc)bpy_bmesh_repr;
+ BPy_BMVert_Type.tp_repr = (reprfunc)bpy_bmvert_repr;
+ BPy_BMEdge_Type.tp_repr = (reprfunc)bpy_bmedge_repr;
+ BPy_BMFace_Type.tp_repr = (reprfunc)bpy_bmface_repr;
+ BPy_BMLoop_Type.tp_repr = (reprfunc)bpy_bmloop_repr;
+ BPy_BMElemSeq_Type.tp_repr = NULL;
+ BPy_BMIter_Type.tp_repr = NULL;
+
+
BPy_BMesh_Type.tp_getset = bpy_bmesh_getseters;
BPy_BMVert_Type.tp_getset = bpy_bmvert_getseters;
BPy_BMEdge_Type.tp_getset = bpy_bmedge_getseters;
@@ -2111,7 +2195,7 @@ void BPy_BM_init_types(void)
BPy_BMIter_Type.tp_methods = NULL;
- BPy_BMesh_Type.tp_hash = NULL;
+ BPy_BMesh_Type.tp_hash = bpy_bm_hash;
BPy_BMVert_Type.tp_hash = bpy_bm_elem_hash;
BPy_BMEdge_Type.tp_hash = bpy_bm_elem_hash;
BPy_BMFace_Type.tp_hash = bpy_bm_elem_hash;
diff --git a/source/blender/python/generic/idprop_py_api.c b/source/blender/python/generic/idprop_py_api.c
index 516c0afa883..4cff5cbca95 100644
--- a/source/blender/python/generic/idprop_py_api.c
+++ b/source/blender/python/generic/idprop_py_api.c
@@ -127,7 +127,7 @@ static PyObject *idprop_py_from_idp_idparray(ID *id, IDProperty *prop)
/* -------------------------------------------------------------------------- */
/* use for both array and group */
-static long BPy_IDGroup_hash(BPy_IDProperty *self)
+static Py_hash_t BPy_IDGroup_hash(BPy_IDProperty *self)
{
return _Py_HashPointer(self->prop);
}
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index 23718df1c66..babd4c91165 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -999,7 +999,7 @@ static PyObject *pyrna_func_repr(BPy_FunctionRNA *self)
}
-static long pyrna_struct_hash(BPy_StructRNA *self)
+static Py_hash_t pyrna_struct_hash(BPy_StructRNA *self)
{
return _Py_HashPointer(self->ptr.data);
}