rendered paste body#include "fileman.h"
#include <stdio.h>
#include <string.h>
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(){
}