Commit: 2bba04f1b0c3fa3ebee7958706147e07fb413f56
Author: Campbell Barton
Date:   Fri Apr 4 14:15:57 2014 +1100
https://developer.blender.org/rB2bba04f1b0c3fa3ebee7958706147e07fb413f56

Cloth: replace EdgeHash with EdgeSet

===================================================================

M       source/blender/blenkernel/BKE_cloth.h
M       source/blender/blenkernel/intern/cloth.c
M       source/blender/blenkernel/intern/collision.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_cloth.h 
b/source/blender/blenkernel/BKE_cloth.h
index 1e7ac28..757d63e 100644
--- a/source/blender/blenkernel/BKE_cloth.h
+++ b/source/blender/blenkernel/BKE_cloth.h
@@ -80,7 +80,7 @@ typedef struct Cloth {
        struct MFace            *mfaces;
        struct Implicit_Data    *implicit;              /* our implicit solver 
connects to this pointer */
        struct Implicit_Data    *implicitEM;            /* our implicit solver 
connects to this pointer */
-       struct EdgeHash         *edgehash;              /* used for 
selfcollisions (currently used as a 'set', value is ignored) */
+       struct EdgeSet          *edgeset;               /* used for 
selfcollisions */
        int last_frame, pad4;
 } Cloth;
 
diff --git a/source/blender/blenkernel/intern/cloth.c 
b/source/blender/blenkernel/intern/cloth.c
index 220ceb8..f5c7f9e 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -621,8 +621,8 @@ void cloth_free_modifier(ClothModifierData *clmd )
                if ( cloth->mfaces )
                        MEM_freeN ( cloth->mfaces );
                
-               if (cloth->edgehash)
-                       BLI_edgehash_free ( cloth->edgehash, NULL );
+               if (cloth->edgeset)
+                       BLI_edgeset_free(cloth->edgeset);
                
                
                /*
@@ -690,8 +690,8 @@ void cloth_free_modifier_extern(ClothModifierData *clmd )
                if ( cloth->mfaces )
                        MEM_freeN ( cloth->mfaces );
 
-               if (cloth->edgehash)
-                       BLI_edgehash_free ( cloth->edgehash, NULL );
+               if (cloth->edgeset)
+                       BLI_edgeset_free(cloth->edgeset);
 
 
                /*
@@ -854,7 +854,7 @@ static int cloth_from_object(Object *ob, ClothModifierData 
*clmd, DerivedMesh *d
                clmd->clothObject->old_solver_type = 255;
                // clmd->clothObject->old_collision_type = 255;
                cloth = clmd->clothObject;
-               clmd->clothObject->edgehash = NULL;
+               clmd->clothObject->edgeset = NULL;
        }
        else if (!clmd->clothObject) {
                modifier_setError(&(clmd->modifier), "Out of memory on 
allocating clmd->clothObject");
@@ -1062,9 +1062,9 @@ static void cloth_free_errorsprings(Cloth *cloth,  
LinkNode **edgelist)
 
        cloth_free_edgelist(edgelist, cloth->numverts);
        
-       if (cloth->edgehash) {
-               BLI_edgehash_free(cloth->edgehash, NULL);
-               cloth->edgehash = NULL;
+       if (cloth->edgeset) {
+               BLI_edgeset_free(cloth->edgeset);
+               cloth->edgeset = NULL;
        }
 }
 
@@ -1123,20 +1123,20 @@ static int cloth_build_springs ( ClothModifierData 
*clmd, DerivedMesh *dm )
        MFace *mface = dm->getTessFaceArray (dm);
        int index2 = 0; // our second vertex index
        LinkNode **edgelist = NULL;
-       EdgeHash *edgehash = NULL;
+       EdgeSet *edgeset = NULL;
        LinkNode *search = NULL, *search2 = NULL;
        
        // error handling
        if ( numedges==0 )
                return 0;
 
-       /* NOTE: handling ownership of springs and edgehash is quite sloppy
+       /* NOTE: handling ownership of springs and edgeset is quite sloppy
         * currently they are never initialized but assert just to be sure */
        BLI_assert(cloth->springs == NULL);
-       BLI_assert(cloth->edgehash == NULL);
+       BLI_assert(cloth->edgeset == NULL);
 
        cloth->springs = NULL;
-       cloth->edgehash = NULL;
+       cloth->edgeset = NULL;
 
        edgelist = MEM_callocN ( sizeof (LinkNode *) * numverts, 
"cloth_edgelist_alloc" );
        
@@ -1240,8 +1240,8 @@ static int cloth_build_springs ( ClothModifierData *clmd, 
DerivedMesh *dm )
                BLI_linklist_prepend ( &cloth->springs, spring );
        }
 
-       edgehash = BLI_edgehash_new_ex(__func__, numedges);
-       cloth->edgehash = edgehash;
+       edgeset = BLI_edgeset_new_ex(__func__, numedges);
+       cloth->edgeset = edgeset;
 
        if (numfaces) {
                // bending springs
@@ -1259,7 +1259,7 @@ static int cloth_build_springs ( ClothModifierData *clmd, 
DerivedMesh *dm )
                                // check for existing spring
                                // check also if startpoint is equal to endpoint
                                if ((index2 != tspring2->ij) &&
-                                   !BLI_edgehash_haskey(edgehash, 
tspring2->ij, index2))
+                                   !BLI_edgeset_haskey(edgeset, tspring2->ij, 
index2))
                                {
                                        spring = (ClothSpring *)MEM_callocN ( 
sizeof ( ClothSpring ), "cloth spring" );
 
@@ -1272,7 +1272,7 @@ static int cloth_build_springs ( ClothModifierData *clmd, 
DerivedMesh *dm )
                                        spring->restlen = 
len_v3v3(cloth->verts[spring->kl].xrest, cloth->verts[spring->ij].xrest);
                                        spring->type = 
CLOTH_SPRING_TYPE_BENDING;
                                        spring->stiffness = 
(cloth->verts[spring->kl].bend_stiff + cloth->verts[spring->ij].bend_stiff) / 
2.0f;
-                                       BLI_edgehash_insert(edgehash, 
spring->ij, spring->kl, NULL);
+                                       BLI_edgeset_insert(edgeset, spring->ij, 
spring->kl);
                                        bend_springs++;
 
                                        BLI_linklist_prepend ( &cloth->springs, 
spring );
@@ -1321,16 +1321,16 @@ static int cloth_build_springs ( ClothModifierData 
*clmd, DerivedMesh *dm )
        
        /* note: the edges may already exist so run reinsert */
 
-       /* insert other near springs in edgehash AFTER bending springs are 
calculated (for selfcolls) */
+       /* insert other near springs in edgeset AFTER bending springs are 
calculated (for selfcolls) */
        for (i = 0; i < numedges; i++) { /* struct springs */
-               BLI_edgehash_reinsert(edgehash, medge[i].v1, medge[i].v2, NULL);
+               BLI_edgeset_reinsert(edgeset, medge[i].v1, medge[i].v2);
        }
 
        for (i = 0; i < numfaces; i++) { /* edge springs */
                if (mface[i].v4) {
-                       BLI_edgehash_reinsert(edgehash, mface[i].v1, 
mface[i].v3, NULL);
+                       BLI_edgeset_reinsert(edgeset, mface[i].v1, mface[i].v3);
                        
-                       BLI_edgehash_reinsert(edgehash, mface[i].v2, 
mface[i].v4, NULL);
+                       BLI_edgeset_reinsert(edgeset, mface[i].v2, mface[i].v4);
                }
        }
        
diff --git a/source/blender/blenkernel/intern/collision.c 
b/source/blender/blenkernel/intern/collision.c
index 3936321..f7e5228 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -863,7 +863,7 @@ int cloth_bvh_objcollision(Object *ob, ClothModifierData 
*clmd, float step, floa
        
                                                if ( ( ABS ( temp[0] ) > 
mindistance ) || ( ABS ( temp[1] ) > mindistance ) || ( ABS ( temp[2] ) > 
mindistance ) ) continue;
        
-                                               if 
(BLI_edgehash_haskey(cloth->edgehash, i, j)) {
+                                               if 
(BLI_edgeset_haskey(cloth->edgeset, i, j)) {
                                                        continue;
                                                }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to