From 142a67fe82b830e5c7816914afa62445959c87ca Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@fe.uni-lj.si>
Date: Tue, 05 Nov 2013 14:04:21 +0000
Subject: [PATCH] changes in bondflip call. No need to bondflip all the bonds, but only as many bonds as there are vertices. Also, rnvec seems to be not needed for bondflip, so it is commented out

---
 src/bond.c |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/bond.c b/src/bond.c
index 289079a..af39532 100644
--- a/src/bond.c
+++ b/src/bond.c
@@ -10,21 +10,25 @@
 }
 
 ts_bond  *bond_add(ts_bond_list *blist, ts_vertex *vtx1, ts_vertex *vtx2){
-    
+    ts_uint i;
     /* no vertices must be null! */
     if(vtx1==NULL || vtx2==NULL) return NULL;
-    /* TODO: Verify if the bond already exists... Don't do multiple bonds */
+    /* Verify if the bond already exists... Don't do multiple bonds */
+    for(i=0;i<blist->n;i++){
+       if((blist->bond[i]->vtx1==vtx1 || blist->bond[i]->vtx1==vtx2)
+        &&(blist->bond[i]->vtx2==vtx1 || blist->bond[i]->vtx2==vtx2))
+        return blist->bond[i];
+    }
 	blist->n++;
 	blist->bond=(ts_bond **)realloc(blist->bond,blist->n*sizeof(ts_bond *));
 	if(blist->bond==NULL) fatal("Cannot reallocate memory for additional **ts_bond.",100);
     blist->bond[blist->n-1]=(ts_bond *)malloc(sizeof(ts_bond));
     if(blist->bond[blist->n-1]==NULL) fatal("Cannot allocate memory for additional *ts_bond.",100);
-    blist->bond[blist->n-1]->data=(ts_bond_data *)malloc(sizeof(ts_bond_data));
     
 	//NOW insert vertices into data!	
-	blist->bond[blist->n - 1]->data->vtx1=vtx1;	
-	blist->bond[blist->n - 1]->data->vtx2=vtx2;
-
+	blist->bond[blist->n - 1]->vtx1=vtx1;	
+	blist->bond[blist->n - 1]->vtx2=vtx2;
+	blist->bond[blist->n - 1]->tainted=0;
     //Should we calculate bond length NOW?
 	
 	return blist->bond[blist->n-1];
@@ -33,7 +37,6 @@
 ts_bool bond_list_free(ts_bond_list *blist){
     ts_uint i;
     for(i=0;i<blist->n;i++){
-    free(blist->bond[i]->data);
     free(blist->bond[i]);
     }
     free(blist->bond);

--
Gitblit v1.9.3