From 51f7fd23ba4e56dc198273eb795c8d1730cf4dbe Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Mon, 19 Apr 2021 13:54:45 +0000
Subject: [PATCH] Work in progress

---
 src/cell.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/cell.c b/src/cell.c
index 246866b..2015be7 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -1,3 +1,4 @@
+/* vim: set ts=4 sts=4 sw=4 noet : */
 #include<stdlib.h>
 #include "general.h"
 #include "vertex.h"
@@ -44,7 +45,6 @@
 }
 
 
-//TODO: not debugged at all!
 inline ts_uint vertex_self_avoidance(ts_vesicle *vesicle, ts_vertex *vtx){
     ts_uint cellidx;
     ts_uint ncx, ncy,ncz;
@@ -68,7 +68,6 @@
 }
 
 
-//TODO: looks ok, but debug anyway in the future
 inline ts_bool cell_add_vertex(ts_cell *cell, ts_vertex *vtx){
 	ts_uint i;
 	for(i=0;i<cell->nvertex;i++){
@@ -124,7 +123,7 @@
     return TS_SUCCESS;
 }
 
-// TODO: compiles ok, but it is completely untested and undebugged. It was debugged before rewrite, but this was long time ago.
+
 ts_bool cell_occupation_number_and_internal_proximity(ts_cell_list *clist, ts_uint cellidx, ts_vertex *vtx){
     ts_uint ncx,ncy,ncz,remainder,cell_occupation;
     ts_uint i,j,k,l,neigh_cidx;
@@ -143,19 +142,25 @@
                 cell_occupation=clist->cell[neigh_cidx]->nvertex;
           //      fprintf(stderr, "cell_occupation=%i\n",cell_occupation);
                 if(cell_occupation>clist->max_occupancy){
+			ts_fprintf(stderr,"max occupancy= %d, cell occupation= %d", clist->max_occupancy, cell_occupation);
                     fatal("Neighbouring cell occupation more than set max_occupancy value.",2000);
                 }
 // Now we check whether we didn't come close to some other vertices in the same
 // cell!
-                if(cell_occupation>1){
+                if(cell_occupation>0){
                     for(l=0;l<cell_occupation;l++){
 
 				//carefull with this checks!
-                        if(clist->cell[neigh_cidx]->vertex[l]->idx!=vtx->idx){
+                        if(clist->cell[neigh_cidx]->vertex[l]!=vtx){
                     //        fprintf(stderr,"calling dist on vertex %i\n",l);
                            dist=vtx_distance_sq(clist->cell[neigh_cidx]->vertex[l],vtx);
-                    //        fprintf(stderr,"dist was %f\n",dist);
-                            if(dist<=1.0) return TS_FAIL;
+
+//				if(vtx->idx==1)
+//				fprintf(stderr,"VTX(0) ima bliznji vertex z indeksom, %d, tipa %d \n", clist->cell[neigh_cidx]->vertex[l]->idx, clist->cell[neigh_cidx]->vertex[l]->id);
+//				if(vtx->idx==0 && clist->cell[neigh_cidx]->vertex[l]->idx==0)
+//                            fprintf(stderr,"*** dist was %f\n",dist);
+				
+                            if(dist<=1.0 || (dist<=clist->dmin_interspecies && (clist->cell[neigh_cidx]->vertex[l]->id != vtx->id))) return TS_FAIL;
                         }
                     }
                 }

--
Gitblit v1.9.3