[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39838] branches/bmesh/blender/source/ blender/blenkernel/intern/mesh_validate.c: BKE_mesh_calc_edges() now uses polygons when available.
Campbell Barton
ideasman42 at gmail.com
Thu Sep 1 10:27:35 CEST 2011
Revision: 39838
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39838
Author: campbellbarton
Date: 2011-09-01 08:27:35 +0000 (Thu, 01 Sep 2011)
Log Message:
-----------
BKE_mesh_calc_edges() now uses polygons when available.
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c 2011-09-01 07:51:20 UTC (rev 39837)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/mesh_validate.c 2011-09-01 08:27:35 UTC (rev 39838)
@@ -338,20 +338,35 @@
BLI_edgehash_insert(eh, med->v1, med->v2, med);
}
- for (i = 0; i < totface; i++, mf++) {
- if (!BLI_edgehash_haskey(eh, mf->v1, mf->v2))
- BLI_edgehash_insert(eh, mf->v1, mf->v2, NULL);
- if (!BLI_edgehash_haskey(eh, mf->v2, mf->v3))
- BLI_edgehash_insert(eh, mf->v2, mf->v3, NULL);
+ if(mesh->totpoly) {
+ /* mesh loops (bmesh only) */
+ MPoly *mp= mesh->mpoly;
+ for(i=0; i < mesh->totpoly; i++, mp++) {
+ MLoop *l= &mesh->mloop[mp->loopstart];
+ int j, l_prev= (l + (mp->totloop-1))->v;
+ for (j=0; j < mp->totloop; j++, l++) {
+ BLI_edgehash_insert(eh, l_prev, l->v, NULL);
+ l_prev= l->v;
+ }
+ }
+ }
+ else {
+ /* regular faces (note, we could remove this for bmesh - campbell) */
+ for (i = 0; i < totface; i++, mf++) {
+ if (!BLI_edgehash_haskey(eh, mf->v1, mf->v2))
+ BLI_edgehash_insert(eh, mf->v1, mf->v2, NULL);
+ if (!BLI_edgehash_haskey(eh, mf->v2, mf->v3))
+ BLI_edgehash_insert(eh, mf->v2, mf->v3, NULL);
- if (mf->v4) {
- if (!BLI_edgehash_haskey(eh, mf->v3, mf->v4))
- BLI_edgehash_insert(eh, mf->v3, mf->v4, NULL);
- if (!BLI_edgehash_haskey(eh, mf->v4, mf->v1))
- BLI_edgehash_insert(eh, mf->v4, mf->v1, NULL);
- } else {
- if (!BLI_edgehash_haskey(eh, mf->v3, mf->v1))
- BLI_edgehash_insert(eh, mf->v3, mf->v1, NULL);
+ if (mf->v4) {
+ if (!BLI_edgehash_haskey(eh, mf->v3, mf->v4))
+ BLI_edgehash_insert(eh, mf->v3, mf->v4, NULL);
+ if (!BLI_edgehash_haskey(eh, mf->v4, mf->v1))
+ BLI_edgehash_insert(eh, mf->v4, mf->v1, NULL);
+ } else {
+ if (!BLI_edgehash_haskey(eh, mf->v3, mf->v1))
+ BLI_edgehash_insert(eh, mf->v3, mf->v1, NULL);
+ }
}
}
More information about the Bf-blender-cvs
mailing list