[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44467] trunk/blender/source/blender: * bmesh py api BMEdge.verts was using 2 v1's

Campbell Barton ideasman42 at gmail.com
Sun Feb 26 18:20:44 CET 2012


Revision: 44467
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44467
Author:   campbellbarton
Date:     2012-02-26 17:20:36 +0000 (Sun, 26 Feb 2012)
Log Message:
-----------
* bmesh py api BMEdge.verts was using 2 v1's
* bmesh pu api __repr__ functions for mesh data.
* correct py hash defines.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c
    trunk/blender/source/blender/python/bmesh/bmesh_py_types.c
    trunk/blender/source/blender/python/generic/idprop_py_api.c
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c	2012-02-26 16:54:20 UTC (rev 44466)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c	2012-02-26 17:20:36 UTC (rev 44467)
@@ -389,7 +389,7 @@
 		case 1:
 			return iter->edata->v1;
 		case 2:
-			return iter->edata->v1;
+			return iter->edata->v2;
 		default:
 			return NULL;
 	}

Modified: trunk/blender/source/blender/python/bmesh/bmesh_py_types.c
===================================================================
--- trunk/blender/source/blender/python/bmesh/bmesh_py_types.c	2012-02-26 16:54:20 UTC (rev 44466)
+++ trunk/blender/source/blender/python/bmesh/bmesh_py_types.c	2012-02-26 17:20:36 UTC (rev 44467)
@@ -2015,11 +2015,15 @@
 }
 
 /* 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 @@
 "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 @@
 	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 @@
 	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;

Modified: trunk/blender/source/blender/python/generic/idprop_py_api.c
===================================================================
--- trunk/blender/source/blender/python/generic/idprop_py_api.c	2012-02-26 16:54:20 UTC (rev 44466)
+++ trunk/blender/source/blender/python/generic/idprop_py_api.c	2012-02-26 17:20:36 UTC (rev 44467)
@@ -127,7 +127,7 @@
 /* -------------------------------------------------------------------------- */
 
 /* 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);
 }

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c	2012-02-26 16:54:20 UTC (rev 44466)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2012-02-26 17:20:36 UTC (rev 44467)
@@ -999,7 +999,7 @@
 }
 
 
-static long pyrna_struct_hash(BPy_StructRNA *self)
+static Py_hash_t pyrna_struct_hash(BPy_StructRNA *self)
 {
 	return _Py_HashPointer(self->ptr.data);
 }




More information about the Bf-blender-cvs mailing list