Trisurf Monte Carlo simulator
Samo Penic
2020-04-09 4f5ffcfd5ba38b6b7dd6d3b15de8bb8677537b9f
src/restore.c
@@ -344,6 +344,7 @@
//            vals=(char *)values;
            unsigned long data_len=0;
            ts_double *curv_values=(double *)ts_decompress((unsigned char *)values,strlen((char *)values), &data_len);
            data_len=data_len/sizeof(ts_double);
//            token=strtok(vals," ");
            for(idx=0;idx<data_len;idx++){
//            while(token!=NULL){
@@ -362,7 +363,9 @@
               //idx++;
               //token=strtok(NULL," ");
            }
            xmlFree(values);      
            free(curv_values);
         }
         xmlFree(property_name);
      }
@@ -376,42 +379,44 @@
   xmlNodePtr child = cur->xmlChildrenNode;
   xmlChar *points;
//   char *pts;
   int idx, polyidx, monoidx, filidx, fonoidx;
   int i,idx, polyidx, monoidx, filidx, fonoidx;
//   char *token[3];
   while (child != NULL) {
      if ((!xmlStrcmp(child->name, (const xmlChar *)"DataArray"))){
         points = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
         unsigned long data_len=0;
         ts_double *coords=(double *)ts_decompress((unsigned char *)points,strlen((char *)points), &data_len);
         data_len=data_len/sizeof(ts_double);
         //pts=(char *)points;
         //token[0]=strtok(pts," ");
         //token[1]=strtok(NULL," ");
         //token[2]=strtok(NULL,"\n");
         for(idx=0;idx<data_len;idx+=3){
         for(i=0,idx=0;i<data_len;i+=3,idx++){
//         while(token[0]!=NULL){
            if(idx<vesicle->vlist->n){
               vesicle->vlist->vtx[idx]->x=coords[idx];//atof(token[0]);
               vesicle->vlist->vtx[idx]->y=coords[idx+1];//atof(token[1]);
               vesicle->vlist->vtx[idx]->z=coords[idx+2];//atof(token[2]);
               vesicle->vlist->vtx[idx]->x=coords[i];//atof(token[0]);
               vesicle->vlist->vtx[idx]->y=coords[i+1];//atof(token[1]);
               vesicle->vlist->vtx[idx]->z=coords[i+2];//atof(token[2]);
            } else if(vesicle->tape->nmono && vesicle->tape->npoly && idx<vesicle->vlist->n+vesicle->tape->nmono*vesicle->tape->npoly) {
               polyidx=(idx-vesicle->vlist->n)/vesicle->tape->nmono;
               monoidx=(idx-vesicle->vlist->n)%vesicle->tape->nmono;
               vesicle->poly_list->poly[polyidx]->vlist->vtx[monoidx]->x=coords[idx];//atof(token[0]);
               vesicle->poly_list->poly[polyidx]->vlist->vtx[monoidx]->y=coords[idx+1];//atof(token[1]);
               vesicle->poly_list->poly[polyidx]->vlist->vtx[monoidx]->z=coords[idx+2];//atof(token[2]);
               vesicle->poly_list->poly[polyidx]->vlist->vtx[monoidx]->x=coords[i];//atof(token[0]);
               vesicle->poly_list->poly[polyidx]->vlist->vtx[monoidx]->y=coords[i+1];//atof(token[1]);
               vesicle->poly_list->poly[polyidx]->vlist->vtx[monoidx]->z=coords[i+2];//atof(token[2]);
            } else {
               filidx=(idx-vesicle->vlist->n-vesicle->tape->nmono*vesicle->tape->npoly)/vesicle->tape->nfono;
               fonoidx=(idx-vesicle->vlist->n-vesicle->tape->nmono*vesicle->tape->npoly)%vesicle->tape->nfono;
               //fprintf(stderr,"filidx=%d, fonoidx=%d, coord=%s,%s,%s\n",filidx,fonoidx,token[0],token[1],token[2]);
               vesicle->filament_list->poly[filidx]->vlist->vtx[fonoidx]->x=coords[idx];//atof(token[0]);
               vesicle->filament_list->poly[filidx]->vlist->vtx[fonoidx]->y=coords[idx+1];//atof(token[1]);
               vesicle->filament_list->poly[filidx]->vlist->vtx[fonoidx]->z=coords[idx+2];//atof(token[2]);
               vesicle->filament_list->poly[filidx]->vlist->vtx[fonoidx]->x=coords[i];//atof(token[0]);
               vesicle->filament_list->poly[filidx]->vlist->vtx[fonoidx]->y=coords[i+1];//atof(token[1]);
               vesicle->filament_list->poly[filidx]->vlist->vtx[fonoidx]->z=coords[i+2];//atof(token[2]);
            }
            //for(i=0;i<2;i++)   token[i]=strtok(NULL," ");   
            //token[2]=strtok(NULL,"\n");
            //idx++;
         }
         xmlFree(points);
         free(coords);
      }
      child=child->next;
   }
@@ -433,6 +438,7 @@
         bonds = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
         unsigned long data_len=0;
         unsigned long *conn=(unsigned long *)ts_decompress((unsigned char *)bonds,strlen((char *)bonds), &data_len);
         data_len=data_len/sizeof(unsigned long);
         //token[0]=strtok(b," ");
         //token[1]=strtok(NULL,"\n");
         for(idx=0;idx<data_len;idx+=2){
@@ -456,6 +462,7 @@
            }
         }
         xmlFree(bonds);
         free(conn);
      }
      xmlFree(conname);
      child=child->next;