[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58519] trunk/blender/source/blender/ editors/util/crazyspace.c: use BLI_bitmap for crazyspace vertex tagging.
Campbell Barton
ideasman42 at gmail.com
Tue Jul 23 01:33:53 CEST 2013
Revision: 58519
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58519
Author: campbellbarton
Date: 2013-07-22 23:33:53 +0000 (Mon, 22 Jul 2013)
Log Message:
-----------
use BLI_bitmap for crazyspace vertex tagging.
Modified Paths:
--------------
trunk/blender/source/blender/editors/util/crazyspace.c
Modified: trunk/blender/source/blender/editors/util/crazyspace.c
===================================================================
--- trunk/blender/source/blender/editors/util/crazyspace.c 2013-07-22 23:20:48 UTC (rev 58518)
+++ trunk/blender/source/blender/editors/util/crazyspace.c 2013-07-22 23:33:53 UTC (rev 58519)
@@ -40,6 +40,7 @@
#include "BLI_utildefines.h"
#include "BLI_math.h"
+#include "BLI_bitmap.h"
#include "BKE_DerivedMesh.h"
#include "BKE_modifier.h"
@@ -51,7 +52,7 @@
typedef struct {
float *vertexcos;
- short *flags;
+ BLI_bitmap *vertex_visit;
} MappedUserData;
#define TAN_MAKE_VEC(a, b, c) a[0] = b[0] + 0.2f * (b[0] - c[0]); a[1] = b[1] + 0.2f * (b[1] - c[1]); a[2] = b[2] + 0.2f * (b[2] - c[2])
@@ -79,11 +80,11 @@
float *vec = mappedData->vertexcos;
vec += 3 * index;
- if (!mappedData->flags[index]) {
+ if (BLI_BITMAP_GET(mappedData->vertex_visit, index) == 0) {
/* we need coord from prototype vertex, not it clones or images,
* suppose they stored in the beginning of vertex array stored in DM */
copy_v3_v3(vec, co);
- mappedData->flags[index] = 1;
+ BLI_BITMAP_SET(mappedData->vertex_visit, index);
}
}
@@ -109,7 +110,7 @@
DerivedMesh *dm;
float *vertexcos;
int nverts = me->edit_btmesh->bm->totvert;
- short *flags;
+ BLI_bitmap *vertex_visit;
MappedUserData userData;
/* disable subsurf temporal, get mapped cos, and enable it */
@@ -122,10 +123,10 @@
dm = editbmesh_get_derived_cage(scene, obedit, me->edit_btmesh, CD_MASK_BAREMESH);
vertexcos = MEM_callocN(3 * sizeof(float) * nverts, "vertexcos map");
- flags = MEM_callocN(sizeof(short) * nverts, "vertexcos flags");
+ vertex_visit = BLI_BITMAP_NEW(nverts, "vertexcos flags");
userData.vertexcos = vertexcos;
- userData.flags = flags;
+ userData.vertex_visit = vertex_visit;
dm->foreachMappedVert(dm, make_vertexcos__mapFunc, &userData, DM_FOREACH_NOP);
dm->release(dm);
@@ -133,7 +134,7 @@
/* set back the flag, no new cage needs to be built, transform does it */
modifiers_disable_subsurf_temporary(obedit);
- MEM_freeN(flags);
+ MEM_freeN(vertex_visit);
return vertexcos;
}
@@ -278,7 +279,7 @@
if (!defmats) {
dm = getEditDerivedBMesh(em, ob, NULL);
deformedVerts = editbmesh_get_vertex_cos(em, &numVerts);
- defmats = MEM_callocN(sizeof(*defmats) * numVerts, "defmats");
+ defmats = MEM_mallocN(sizeof(*defmats) * numVerts, "defmats");
for (a = 0; a < numVerts; a++)
unit_m3(defmats[a]);
More information about the Bf-blender-cvs
mailing list