All pastes #184220 Raw Edit

bytex

public text v1 · immutable
#184220 ·published 2006-09-27 17:44 UTC
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(){
}