void process_transition(char *line) { transition_info_type *tto; char *ppp; tto = &trantos[tranto_knt]; ++tranto_knt; if (tranto_knt >= MAX_TRANTO_KNT){ fprintf(stderr,"Too many transitions ... Processing aborted ...\n"); exit(1);} ppp = line; ppp = strip_state(ppp,&(*tto).start_statenum); if ((*ppp)==',') ++ppp; ppp = strip_state(ppp,&(*tto).dest_statenum); while ((isspace(*ppp)) && ((*ppp)!= '\0')) ++ppp; if ((*ppp)==EQUALS) ++ppp; while ((isspace(*ppp)) && ((*ppp)!= '\0')) ++ppp; (*tto).rate = malloc_copy(ppp); }
int do_database(Interpo_struct *pstru, Name_struct *nstru) { int j; memset(pstru,0,sizeof(*pstru)); j=0; while(j<Index) { if(!strcmp(Ptr[j],"PREFIX:")) { if(++j>=Index)break; malloc_copy(&(nstru->prefix), Ptr[j]); } else if(!strcmp(Ptr[j],"SUFFIX:")) { if(++j>=Index)break; malloc_copy(&(nstru->suffix), Ptr[j]); } else if(!strcmp(Ptr[j],"OUTPUT_FILE_NAME:")) { if(++j>=Index)break; malloc_copy(&(nstru->output_file_name), Ptr[j]); } else if(!strcmp(Ptr[j],"TYPE:")) { if(++j>=Index)break; if(!strcmp(Ptr[j],"CTCTF"))pstru->type = CTCTF; else if(!strcmp(Ptr[j],"CTRAS"))pstru->type = CTRAS; else if(!strcmp(Ptr[j],"CTPGM"))pstru->type = CTPGM; else if(!strcmp(Ptr[j],"CTVOL"))pstru->type = CTVOL; else if(!strcmp(Ptr[j],"CTSLC"))pstru->type = CTSLC; else { printf("unknown type [%s], use default, CTPGM\n",Ptr[j]); } } /* else if(!strcmp(Ptr[j],"METHOD:")) { if(++j>=Index)break; if(!strcmp(Ptr[j],"MARCHING_CUBES"))pstru->method = MARCHING_CUBES; else if(!strcmp(Ptr[j],"TRILINEAR_MARCHING_CUBES")) pstru->method = TRILINEAR_MARCHING_CUBES; else if(!strcmp(Ptr[j],"MARCHING_TETRAHEDRA")) pstru->method = MARCHING_TETRAHEDRA; else if(!strcmp(Ptr[j],"SPIDER_WEB"))pstru->method = SPIDER_WEB; else {printf("unknown method [%s], use default, MARCHING_CUBES\n", Ptr[j]);} } */ else if(!strcmp(Ptr[j],"EPSILON:")) { if(++j>=Index)break; sscanf(Ptr[j],"%f",&(pstru->epsilon)); /* Do not use atof(), it does not work on some machine */ } else if(!strcmp(Ptr[j],"DETZ:")) { if(++j>=Index)break; sscanf(Ptr[j],"%f",&pstru->detz); } else if(!strcmp(Ptr[j],"SCALEZ:")) { if(++j>=Index)break; sscanf(Ptr[j],"%f",&Scale_z); } else if(!strcmp(Ptr[j],"FIRST_Z:")) { if(++j>=Index)break; sscanf(Ptr[j],"%f",&FIRST_Z); } else if(!strcmp(Ptr[j],"MERGE_DISTANCE_SQUARE:")) { if(++j>=Index)break; sscanf(Ptr[j],"%lf",&MERGE_DISTANCE_SQUARE); } else if(!strcmp(Ptr[j],"THRES:")) { if(++j>=Index)break; sscanf(Ptr[j],"%f",&(pstru->thres)); } else if(!strcmp(Ptr[j],"SLICE_RANGE:")) { if(++j>=Index)break; pstru->beg=atoi(Ptr[j]); if(++j>=Index)break; pstru->end=atoi(Ptr[j]); } else if(!strcmp(Ptr[j],"X_RANGE:")) { if(++j>=Index)break; pstru->x1=atoi(Ptr[j]); if(++j>=Index)break; pstru->x2=atoi(Ptr[j]); } else if(!strcmp(Ptr[j],"Y_RANGE:")) { if(++j>=Index)break; pstru->y1=atoi(Ptr[j]); if(++j>=Index)break; pstru->y2=atoi(Ptr[j]); } else if(!strcmp(Ptr[j],"CUBE_SIZE:")) { if(++j>=Index)break; pstru->xcube_vox=atoi(Ptr[j]); if(pstru->xcube_vox<=0 || pstru->xcube_vox>10) fprintf(stderr,"CUBE_SIZE, X =%d should be between [1,32]\n", pstru->xcube_vox); if(++j>=Index)break; pstru->ycube_vox=atoi(Ptr[j]); if(pstru->ycube_vox<=0 || pstru->ycube_vox>10) fprintf(stderr,"CUBE_SIZE, Y =%d should be between [1,32]\n", pstru->ycube_vox); if(++j>=Index)break; pstru->zcube_vox=atoi(Ptr[j]); if(pstru->zcube_vox<=0 || pstru->zcube_vox>10) fprintf(stderr,"CUBE_SIZE, Z =%d should be between [1,10]\n", pstru->zcube_vox); } else if(!strcmp(Ptr[j],"MATH_FUNC:")) { if(++j>=Index)break; MATH_FUNC=atoi(Ptr[j]); } else if(!strcmp(Ptr[j],"FROM_CONTOURS:")) { FROM_CONTOURS=1; } else if(!strcmp(Ptr[j],"DO_APPROX_ONLY:")) { DO_APPROX_ONLY=1; } else if(!strcmp(Ptr[j],"CONTOURS_ONLY:")) { CONTOURS_ONLY=1; } else if(!strcmp(Ptr[j],"FILE_FOR_MESH_GEN:")) { MESH_FILE=1; } else if(!strcmp(Ptr[j],"NON_VALID:")) { NON_VALID=1; } else if(!strcmp(Ptr[j],"SAME_LEVEL:"))SAME_LEVEL=1; else if(!strcmp(Ptr[j],"DIFF_LEVEL_FILES:"))DIFF_LEVEL_FILES=1; else if(!strcmp(Ptr[j],"FILTER_TYPE:")) { if(++j>=Index)break; FILTER_TYPE=atoi(Ptr[j]); } else { printf("unknown command %s in configuration file\n",Ptr[j]); exit(1); } ++j; } free(Ptr); return(1); }