#include "fileman.h" #include #include datFileType::datFileType(){name = wrl_path = dat_path = NULL;} datFileType::datFileType(char *dpt,char *wpt,char *nm){ dat_path = dpt; wrl_path = wpt; name = nm; } void datFileType::setName(char *nm){name = nm;} void datFileType::setWrl_Path(char *pt){wrl_path = pt;} void datFileType::setDat_Path(char *pt){dat_path = pt;} int datFileType::openFile(){ char *tm; sprintf(tm,"%s%s.dat",dat_path,name); if (!(fp = fopen(tm,"w"))) return -1; else return 0; } void datFileType::writeFile(){ char *buf; sprintf(buf,"%s%s.wrl\n" "0.0 0.0 0.0 #Translation\n" "0.0 0.0 0.0 #Rotation\n" "10.0 0.0 0.0 #Scale\n",wrl_path,name); fprintf(fp,"%s",buf); } int datFileType::closeFile(){ if((fclose(fp))!=0) return -1; else return 0; } datFileType::~datFileType(){ } //////////////////////////////////////////////////////////////// objFileType::objFileType(){ new_model_name = patt_to_change = NULL; } void objFileType::setNewModelName(char *nm){new_model_name = nm;} void objFileType::setPattToChange(char *pt){patt_to_change = pt;} int objFileType::openFile(){ if(!(fr = fopen("Data/object_data_vrml_","r"))) return -1; if(!(fw = fopen("Data/object_data_vrml_tmp","w+"))) return -1; fprintf(fw,"#the number of patterns to be recognized\n22\n\n"); return 0; } void objFileType::writeFile(){ char * buf = new char[200]; char * wrlp, * wrln, * t, * patt_line = NULL, * dat_line = NULL; if((wrln = rindex(new_model_name,'/'))) wrln+=1; t = rindex(wrln,'.'); wrln = strndup(wrln,(strlen(wrln)-strlen(t))); wrlp = new_model_name; t = rindex(wrlp,'/'); wrlp = strndup(wrlp,(strlen(wrlp)-strlen(t)+1)); // +1 pa q agarre el '/' datFileType * me = new datFileType(); // creamos el objeto para el .dat me->setDat_Path("Wrl/"); //path donde se guardara el dat me->setName(wrln); me->setWrl_Path(wrlp); me->openFile(); me->writeFile(); me->closeFile(); do{ fgets(buf,200,fr); // NOTA: fgets captura el '\n' if((strstr(buf,".patt"))) patt_line = buf; if((strstr(buf,patt_to_change))) sprintf(dat_line,"VRML\tWrl/%s.dat\n",wrln); else if((strstr(buf,"VRML"))) dat_line = buf; if(patt_line){ //&& dat_line){ fprintf(fw,"%s" "%s" "80.0\n" "0.0 0.0\n\n",dat_line,patt_line); patt_line = dat_line = NULL; } }while(!(feof(fr))); delete(buf); } int objFileType::closeFile(){ if((fclose(fr))!=0)return -1; if((fclose(fw))!=0)return -1; else return 0; } objFileType::~objFileType(){ }