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>2011-12-28 14:20:37 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-12-28 14:20:37 +0400
commit2e92b14bc6c9280b488061b9f4a4326d4ae69c10 (patch)
tree1ad36862639edee3f61b379c0ee182333503646f /source/blender/modifiers
parent337d397d09c8b130f85e0fbd43afb467dd6c5593 (diff)
copy BLI_edgehash changes from bmesh branch, main change is use of mempool.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_explode.c28
-rw-r--r--source/blender/modifiers/intern/MOD_solidify.c16
2 files changed, 23 insertions, 21 deletions
diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c
index 9821c0b3836..5bd38579b67 100644
--- a/source/blender/modifiers/intern/MOD_explode.c
+++ b/source/blender/modifiers/intern/MOD_explode.c
@@ -556,10 +556,11 @@ static DerivedMesh * cutEdges(ExplodeModifierData *emd, DerivedMesh *dm)
int *vertpa = MEM_callocN(sizeof(int)*totvert,"explode_vertpa2");
int *facepa = emd->facepa;
int *fs, totesplit=0,totfsplit=0,curdupface=0;
- int i,j,v1,v2,v3,v4,esplit,
+ int i, v1, v2, v3, v4, esplit,
v[4] = {0, 0, 0, 0}, /* To quite gcc barking... */
uv[4] = {0, 0, 0, 0}; /* To quite gcc barking... */
int numlayer;
+ unsigned int ed_v1, ed_v2;
edgehash= BLI_edgehash_new();
@@ -650,16 +651,16 @@ static DerivedMesh * cutEdges(ExplodeModifierData *emd, DerivedMesh *dm)
/* create new verts */
ehi= BLI_edgehashIterator_new(edgehash);
for(; !BLI_edgehashIterator_isDone(ehi); BLI_edgehashIterator_step(ehi)) {
- BLI_edgehashIterator_getKey(ehi, &i, &j);
+ BLI_edgehashIterator_getKey(ehi, &ed_v1, &ed_v2);
esplit= GET_INT_FROM_POINTER(BLI_edgehashIterator_getValue(ehi));
- mv=CDDM_get_vert(splitdm,j);
+ mv=CDDM_get_vert(splitdm, ed_v2);
dupve=CDDM_get_vert(splitdm,esplit);
- DM_copy_vert_data(splitdm,splitdm,j,esplit,1);
+ DM_copy_vert_data(splitdm,splitdm, ed_v2, esplit,1);
*dupve=*mv;
- mv=CDDM_get_vert(splitdm,i);
+ mv=CDDM_get_vert(splitdm, ed_v1);
add_v3_v3(dupve->co, mv->co);
mul_v3_fl(dupve->co, 0.5f);
@@ -789,7 +790,8 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd,
/* float timestep; */
int *facepa=emd->facepa;
int totdup=0,totvert=0,totface=0,totpart=0;
- int i, j, v, mindex=0;
+ int i, v, mindex=0;
+ unsigned int ed_v1, ed_v2;
MTFace *mtface = NULL, *mtf;
totface= dm->getNumFaces(dm);
@@ -852,24 +854,24 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd,
MVert *dest;
/* get particle + vertex from hash */
- BLI_edgehashIterator_getKey(ehi, &j, &i);
- i -= totvert;
+ BLI_edgehashIterator_getKey(ehi, &ed_v1, &ed_v2);
+ ed_v2 -= totvert;
v= GET_INT_FROM_POINTER(BLI_edgehashIterator_getValue(ehi));
- dm->getVert(dm, j, &source);
+ dm->getVert(dm, ed_v1, &source);
dest = CDDM_get_vert(explode,v);
- DM_copy_vert_data(dm,explode,j,v,1);
+ DM_copy_vert_data(dm, explode, ed_v1, v, 1);
*dest = source;
- if(i!=totpart) {
+ if(ed_v2 != totpart) {
/* get particle */
- pa= pars+i;
+ pa= pars + ed_v2;
psys_get_birth_coordinates(&sim, pa, &birth, 0, 0);
state.time=cfra;
- psys_get_particle_state(&sim, i, &state, 1);
+ psys_get_particle_state(&sim, ed_v2, &state, 1);
vertco=CDDM_get_vert(explode,v)->co;
mul_m4_v3(ob->obmat,vertco);
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 0391f33184f..ad47e3fe569 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -93,7 +93,7 @@ static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
EdgeHash *edge_hash = BLI_edgehash_new();
EdgeHashIterator *edge_iter;
int edge_ref_count = 0;
- int ed_v1, ed_v2; /* use when getting the key */
+ unsigned int ed_v1, ed_v2; /* use when getting the key */
EdgeFaceRef *edge_ref_array = MEM_callocN(numEdges * sizeof(EdgeFaceRef), "Edge Connectivity");
EdgeFaceRef *edge_ref;
float edge_normal[3];
@@ -101,17 +101,17 @@ static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
/* This function adds an edge hash if its not there, and adds the face index */
#define NOCALC_EDGEWEIGHT_ADD_EDGEREF_FACE(EDV1, EDV2); \
{ \
- const unsigned int ed_v1 = EDV1; \
- const unsigned int ed_v2 = EDV2; \
- edge_ref = (EdgeFaceRef *)BLI_edgehash_lookup(edge_hash, ed_v1, ed_v2); \
+ const unsigned int ml_v1 = EDV1; \
+ const unsigned int ml_v2 = EDV2; \
+ edge_ref = (EdgeFaceRef *)BLI_edgehash_lookup(edge_hash, ml_v1, ml_v2); \
if (!edge_ref) { \
edge_ref = &edge_ref_array[edge_ref_count]; edge_ref_count++; \
edge_ref->f1 = i; \
edge_ref->f2 =- 1; \
- BLI_edgehash_insert(edge_hash, ed_v1, ed_v2, edge_ref); \
+ BLI_edgehash_insert(edge_hash, ml_v1, ml_v2, edge_ref); \
} \
else { \
- edge_ref->f2=i; \
+ edge_ref->f2 = i; \
} \
}
/* --- end define --- */
@@ -139,7 +139,7 @@ static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
for(edge_iter = BLI_edgehashIterator_new(edge_hash); !BLI_edgehashIterator_isDone(edge_iter); BLI_edgehashIterator_step(edge_iter)) {
/* Get the edge vert indices, and edge value (the face indices that use it)*/
- BLI_edgehashIterator_getKey(edge_iter, (int*)&ed_v1, (int*)&ed_v2);
+ BLI_edgehashIterator_getKey(edge_iter, &ed_v1, &ed_v2);
edge_ref = BLI_edgehashIterator_getValue(edge_iter);
if (edge_ref->f2 != -1) {
@@ -256,7 +256,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
if(smd->flag & MOD_SOLIDIFY_RIM) {
EdgeHash *edgehash = BLI_edgehash_new();
EdgeHashIterator *ehi;
- int v1, v2;
+ unsigned int v1, v2;
int eidx;
for(i=0, mv=orig_mvert; i<numVerts; i++, mv++) {