[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46518] trunk/blender/source/blender/ blenlib: Add paint mask access to the PBVH vertex iterator.
Nicholas Bishop
nicholasbishop at gmail.com
Thu May 10 22:33:45 CEST 2012
Revision: 46518
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46518
Author: nicholasbishop
Date: 2012-05-10 20:33:45 +0000 (Thu, 10 May 2012)
Log Message:
-----------
Add paint mask access to the PBVH vertex iterator.
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/BLI_pbvh.h
trunk/blender/source/blender/blenlib/intern/pbvh.c
Modified: trunk/blender/source/blender/blenlib/BLI_pbvh.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_pbvh.h 2012-05-10 20:33:36 UTC (rev 46517)
+++ trunk/blender/source/blender/blenlib/BLI_pbvh.h 2012-05-10 20:33:45 UTC (rev 46518)
@@ -191,6 +191,7 @@
struct MVert *mverts;
int totvert;
int *vert_indices;
+ float *vmask;
/* result: these are all computed in the macro, but we assume
* that compiler optimization's will skip the ones we don't use */
@@ -198,6 +199,7 @@
float *co;
short *no;
float *fno;
+ float *mask;
} PBVHVertexIter;
#ifdef _MSC_VER
@@ -228,6 +230,7 @@
if(vi.grid) { \
vi.co= CCG_elem_co(vi.key, vi.grid); \
vi.fno= CCG_elem_no(vi.key, vi.grid); \
+ vi.mask= CCG_elem_mask(vi.key, vi.grid); \
vi.grid= CCG_elem_next(vi.key, vi.grid); \
if(vi.gh) { \
if(BLI_BITMAP_GET(vi.gh, vi.gy * vi.gridsize + vi.gx)) \
@@ -240,6 +243,8 @@
continue; \
vi.co= vi.mvert->co; \
vi.no= vi.mvert->no; \
+ if(vi.vmask) \
+ vi.mask= &vi.vmask[vi.vert_indices[vi.gx]]; \
} \
#define BLI_pbvh_vertex_iter_end \
Modified: trunk/blender/source/blender/blenlib/intern/pbvh.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/pbvh.c 2012-05-10 20:33:36 UTC (rev 46517)
+++ trunk/blender/source/blender/blenlib/intern/pbvh.c 2012-05-10 20:33:45 UTC (rev 46518)
@@ -1885,4 +1885,8 @@
vi->gh= NULL;
if (vi->grids && mode == PBVH_ITER_UNIQUE)
vi->grid_hidden= bvh->grid_hidden;
+
+ vi->mask= NULL;
+ if(!vi->grids)
+ vi->vmask= CustomData_get_layer(bvh->vdata, CD_PAINT_MASK);
}
More information about the Bf-blender-cvs
mailing list