#include "cs148.h"
#include <vector>

#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480

struct point {
  int x, y;
};

// Our list of clicked points
std::vector<point> myline;

// Mouse function: collect a list of clicked points
void myMouse(int button, int state, int x, int y) {

  // We only care about clicks
  if (state != GLUT_DOWN) return;
  point p;
  p.x = x; p.y = SCREEN_HEIGHT-y;  
  myline.push_back(p);
  glutPostRedisplay();
}


void myDisplay(void) {
  glClear(GL_COLOR_BUFFER_BIT);
	
  // Connect all the points in our list with lines
  glBegin(GL_LINE_STRIP);
    for(int i=0; i<myline.size(); i++) {
      glVertex2i(myline[i].x,myline[i].y);
    } 
	glEnd();
  glFlush();
}



void myInit(void) {
	glClearColor(1.0,1.0,1.0,0.0);
	glColor3f(0.0f,0.0f,0.0f);
	glLineWidth(3.0);
  glPointSize(12.0);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}


void main(int argc, char** argv) {
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(SCREEN_WIDTH,SCREEN_HEIGHT);
	glutInitWindowPosition(100,150);
	glutCreateWindow("OpenGL");
	glutDisplayFunc(myDisplay);
  glutMouseFunc(myMouse);
	myInit();
	glutMainLoop();
}

