Object disappears when trying to scale

Hi there,

So i’ve come across a weird bug that I just cant seem to figure out. Basically I have code that takes in a set of verticies from a file and constructs a various triangles to form a cube. From there I am trying to scale it by some amount by either pressing the ‘,’ or ‘.’ keys. However whenever I press these keys (or any key for that matter) my object disappears. Any help on how to fix this would be greatly appreciated!

#include <stdio.h>

#include <stdlib.h>

#include <math.h>



#include <GL/glut.h>



typedef struct vect_{
	float x;
	float y;
	float z;
} vect;

typedef struct tvect_{
	int a;
	int b;
	int c;
} tvect;

typedef struct fourTup_{
	int a;
	int b;
	int c;
	int d;
} fourTup;

vect verticies[20];

tvect triangles[20];

fourTup quad[20];

int vertexCounter = 1;

int triangleCounter = 0;

int quadCounter = 0;

char outString[150];

char garbageStr[100];

int i = 0;

int tempCount = 0;

float dk_grey[4];

float lt_grey[4];

float medium_grey[4];

float notshiny[1];

float light_position[4];

float light_ambient[4];

float light_diffuse[4];

float light_specular[4];

float scale_fac = 1;

void fileHandler(){
	FILE * fp;
	fp = fopen("input.txt", "r");

	if(fp == NULL) {
		printf("Error! File Not Found!");
		return;
	}

	while(fgets (outString, 150, fp) != NULL){
		if(outString[0] == '#' || outString[0] == '
'){
		}
		else if(strstr(outString, "v") != NULL){
			printf(outString);
			sscanf(outString, "%c %f %f %f", garbageStr, &verticies[vertexCounter].x, &verticies[vertexCounter].y, &verticies[vertexCounter].z); 

			printf("%f %f %f

", verticies[vertexCounter].x, verticies[vertexCounter].y, verticies[vertexCounter].z);
			vertexCounter++;
		}
		else if(strstr(outString, "t") != NULL){
			printf(outString);
			sscanf(outString, "%c %d %d %d", garbageStr, &triangles[triangleCounter].a, &triangles[triangleCounter].b, &triangles[triangleCounter].c); 
			printf("%d %d %d

", triangles[triangleCounter].a, triangles[triangleCounter].b, triangles[triangleCounter].c);
			triangleCounter++;
		}
		else if(strstr(outString, "q") != NULL){
			printf(outString);
			sscanf(outString, "%c %d %d %d %d", garbageStr, &quad[quadCounter].a, &quad[quadCounter].b, &quad[quadCounter].c, &quad[quadCounter].d); 
			printf("%d %d %d %d

", quad[quadCounter].a, quad[quadCounter].b, quad[quadCounter].c, quad[quadCounter].d);
			quadCounter++;
		}
	}

}

void init() {

	glEnable(GL_DEPTH_TEST);
	glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);
	glMatrixMode(GL_PROJECTION);
	gluPerspective(60.0, 1.0, 0.1, 10.0);
	light_position[0] = 0.0;
	light_position[1] = 0.0;
	light_position[2] = 10.0;
	light_position[3] = 1.0;

        light_ambient[0] = 0.0;
	light_ambient[1] = 0.0;
	light_ambient[2] = 0.0;
	light_ambient[3] = 1.0;

	light_diffuse[0] = 1.0;
	light_diffuse[1] = 1.0;
	light_diffuse[2] = 1.0;
	light_diffuse[3] = 1.0;

	light_specular[0] = 1.0;
	light_specular[1] = 1.0;
	light_specular[2] = 1.0;
	light_specular[3] = 1.0;

	glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
	glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
	glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
	glLightfv(GL_LIGHT0, GL_POSITION, light_position);

	dk_grey[0] = 0.2;
	dk_grey[1] = 0.2;
	dk_grey[2] = 0.2;
	dk_grey[3] = 1.0;

	medium_grey[1] = 0.5;
	medium_grey[2] = 0.5;
	medium_grey[3] = 0.5;
	medium_grey[4] = 1.0;

	lt_grey[1] = 0.8;
	lt_grey[2] = 0.8;
	lt_grey[3] = 0.8;
	lt_grey[4] = 1.0;

	notshiny[0] = 5.0;

	glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, lt_grey);
	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, dk_grey);
	glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, lt_grey);
	glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, notshiny);

}



void display(void){

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	gluLookAt(1.5, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
	//glTranslatef(0.0, 0,0, 0.0);
	//glMultMatrixf(rmat);
	glScalef(scale_fac, scale_fac, 1);
	//glScalef(fit_fac, fit_fac, fit_fac);
	//glTranslatef(recenter_x, recenter_y, recenter_z)

	if(triangleCounter > 1){
		for(i; i < triangleCounter; i++){
			glBegin(GL_TRIANGLES);			glNormal3f(verticies[triangles[i].a].x, verticies[triangles[i].a].y, verticies[triangles[i].a].z);
			//glColor3f(1.0f,0.0f,0.0f);
			glVertex3f(verticies[triangles[i].a].x, verticies[triangles[i].a].y, verticies[triangles[i].a].z);
			glNormal3f(verticies[triangles[i].b].x, verticies[triangles[i].b].y, verticies[triangles[i].b].z);
			//glColor3f(0.0f,1.0f,0.0f);
			glVertex3f(verticies[triangles[i].b].x, verticies[triangles[i].b].y, verticies[triangles[i].b].z);
			glNormal3f(verticies[triangles[i].c].x, verticies[triangles[i].c].y, verticies[triangles[i].c].z);
			//glColor3f(0.0f,0.0f,1.0f);
			glVertex3f(verticies[triangles[i].c].x, verticies[triangles[i].c].y, verticies[triangles[i].c].z);
			glEnd();
		}
	}
	else if(quadCounter > 1){
		for(i; i < quadCounter; i++){
			glBegin(GL_QUADS);
			glColor3f(1.0f,0.0f,0.0f);
			glVertex3f(verticies[quad[i].a].x, verticies[quad[i].a].y, verticies[quad[i].a].z);
			glColor3f(0.0f,1.0f,0.0f);
			glVertex3f(verticies[quad[i].b].x, verticies[quad[i].b].y, verticies[quad[i].b].z);
			glColor3f(0.0f,0.0f,1.0f);
			glVertex3f(verticies[quad[i].c].x, verticies[quad[i].c].y, verticies[quad[i].c].z);
			glColor3f(0.5f,0.5f,0.5f);
			glVertex3f(verticies[quad[i].d].x, verticies[quad[i].d].y, verticies[quad[i].d].z);
			glEnd();
		}
	}
	glutSwapBuffers();

	//glFlush();
}



void processNormalKeys(unsigned char key, int x, int y){

	if(key == '.'){
		scale_fac = scale_fac + 0.1;
	}

	if(key == ','){
		scale_fac = scale_fac - 0.1;
	}

	if (key == 'q'){
        exit(0);
    }
	glutPostRedisplay();

}

int main(int argc, char **argv){
	fileHandler();
	printf("%s %d", "The number of verticies are: ", vertexCounter);
	printf("%s %d", "
The number of triangles are: ", triangleCounter);
	printf("%s %d", "
The number of quads are: ", quadCounter);
	printf("%s %d", "
This is the triangles: ", tempCount);
	//printf("%s %f %f %f", "
THE FIRST THREE THINGS: ", verticies[triangles[0].a].x, verticies[triangles[0].a].y, verticies[triangles[0].a].z);
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
	glutCreateWindow("Test");
	init();
	glutDisplayFunc(display);
	glutKeyboardFunc(processNormalKeys);
	glutMainLoop();
	return 0;
}

[/b]