
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;


// Read the teapot, teacup and teaspoon txt files.
// and write to files in array format. 
int main(int argc, char** argv)
{
	int ii = 0;
	int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;
	float x, y, z; //for each vertex

	// Teapot
	char* inputFileName = "teapot.txt";
	char* outputFileName = "teapotNew.txt";
	int nPatches = 0, nVertices = 0;
	FILE *fread = fopen(inputFileName,"r");
	FILE *fwrite = fopen(outputFileName,"w");

	if(fread==NULL) fprintf(stderr,"Error opening file %s\n",inputFileName);
	else
	{	
		fprintf(fwrite," Teapot patches\n\n");
		fscanf(fread,"%d",&nPatches);
		for(ii=0;ii<nPatches;ii++)
		{
			(void)fscanf(fread,"%i, %i, %i, %i,",&a,&b,&c,&d);
			(void)fscanf(fread,"%i, %i, %i, %i,",&e,&f,&g,&h);
			(void)fscanf(fread,"%i, %i, %i, %i,",&i,&j,&k,&l);
			(void)fscanf(fread,"%i, %i, %i, %i\n",&m,&n,&o,&p);

			fprintf(fwrite,"{\t%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\t}, \n",
				a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);           //number of vertices

		}

		fprintf(fwrite," \n\nTeapot Vertices\n\n");
		fscanf(fread,"%d",&nVertices);
		for(ii=0;ii<nVertices;ii++)
		{
			(void)fscanf(fread, "%f, %f, %f\n",&x,&y,&z);
			fprintf(fwrite,"{\t%f, %f, %f\t},", x, y, z);           //number of vertices
			if ((ii+1)%3 == 0)
				fprintf(fwrite, "\n");	// new line
		}
		fflush(fwrite);
		fclose(fread);
		fclose(fwrite);
	}
	
	// Tea Cup
	inputFileName = "teacup.txt";
	outputFileName = "teacupNew.txt";
	nPatches = 0, nVertices = 0;
	fread = fopen(inputFileName,"r");
	fwrite = fopen(outputFileName,"w");

	if(fread==NULL) fprintf(stderr,"Error opening file %s\n",inputFileName);
	else
	{	
		fprintf(fwrite," Tea Cup patches\n\n");
		fscanf(fread,"%d",&nPatches);
		for(ii=0;ii<nPatches;ii++)
		{
			(void)fscanf(fread,"%i, %i, %i, %i,",&a,&b,&c,&d);
			(void)fscanf(fread,"%i, %i, %i, %i,",&e,&f,&g,&h);
			(void)fscanf(fread,"%i, %i, %i, %i,",&i,&j,&k,&l);
			(void)fscanf(fread,"%i, %i, %i, %i\n",&m,&n,&o,&p);

			fprintf(fwrite,"{\t%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\t}, \n",
				a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);           //number of vertices

		}

		fprintf(fwrite," \n\nTea Cup Vertices\n\n");
		fscanf(fread,"%d",&nVertices);
		for(ii=0;ii<nVertices;ii++)
		{
			(void)fscanf(fread, "%f, %f, %f\n",&x,&y,&z);
			fprintf(fwrite,"{\t%f, %f, %f\t},", x, y, z);           //number of vertices
			if ((ii+1)%3 == 0)
				fprintf(fwrite, "\n");
		}
		fflush(fwrite);
		fclose(fread);
		fclose(fwrite);
	}

	inputFileName = "teaspoon.txt";
	outputFileName = "teaspoonNew.txt";
	nPatches = 0, nVertices = 0;
	fread = fopen(inputFileName,"r");
	fwrite = fopen(outputFileName,"w");

	if(fread==NULL) fprintf(stderr,"Error opening file %s\n",inputFileName);
	else
	{	
		fprintf(fwrite," Tea spoon patches\n\n");
		fscanf(fread,"%d",&nPatches);
		for(ii=0;ii<nPatches;ii++)
		{
			(void)fscanf(fread,"%i, %i, %i, %i,",&a,&b,&c,&d);
			(void)fscanf(fread,"%i, %i, %i, %i,",&e,&f,&g,&h);
			(void)fscanf(fread,"%i, %i, %i, %i,",&i,&j,&k,&l);
			(void)fscanf(fread,"%i, %i, %i, %i\n",&m,&n,&o,&p);

			fprintf(fwrite,"{\t%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d\t}, \n",
				a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);           //number of vertices

		}

		fprintf(fwrite," \n\nTea spoon Vertices\n\n");
		fscanf(fread,"%d",&nVertices);
		for(ii=0;ii<nVertices;ii++)
		{
			(void)fscanf(fread, "%f, %f, %f\n",&x,&y,&z);
			fprintf(fwrite,"{\t%f, %f, %f\t},", x, y, z);           //number of vertices
			if ((ii+1)%3 == 0)
				fprintf(fwrite, "\n");
		}
		fflush(fwrite);
		fclose(fread);
		fclose(fwrite);
	}
}

