
#include <GL/openglut.h>
#include <math.h>

#define TAM_VENTANA_X	640
#define TAM_VENTANA_Y	480
#define PI		3.141516

void draw_grid(int g_x, int g_y);

// Var Globales
//-------------
float angulo=0;
int gap_x = 15, gap_y = 15;


// Rutina de dibujado de la primitiva "linea" mediante Bresenham
//-----------------------------------------------------------



// Rutina de dibujado de un Grid de Gaps (x,y)
//--------------------------------------------
void draw_grid(int gap_x, int gap_y)
{
  

}

// Rutina de dibujado
//-------------------
void miDraw(void)
{

  /* Color de Fondo   */
     glClearColor(0,0,0,0); //El color de fondo del buffer sera el negro
     glClear(GL_COLOR_BUFFER_BIT); //lIMPIA EL BUFFER DE COLOR
     glFlush();

  /* Dibujado ....   */
  // glColor3f(1.0, 1.0, 1.0);

}

// Rutina de control del Ratón
//----------------------------
void MiRaton(int boton, int estado, int x, int y)
{
     if (boton ==  GLUT_LEFT_BUTTON && estado == GLUT_DOWN)
     {
       glColor3f(1.0, 1.0, 1.0);
       glBegin(GL_POINTS);
       glVertex2f(x,480-y);
       glEnd();
       glFlush();
      }
      else ;
}


void miTeclado(unsigned char tecla, int x, int y)
{
    
}

// Rutina de cálculos
//-------------------
void miIdle(void)
{

}

int main(int argcp, char **argv)
{
  /* Poner el tamaño y posición de la ventana */
     glutInitWindowSize(TAM_VENTANA_X, TAM_VENTANA_Y);
     glutInitWindowPosition(0, 0);

  /* Seleccionar el tipo de modo de display: Buffer simple y color RGBA */
     glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);

  /* Inicializar el estado de GLUT */
     glutInit(&argcp, argv);

  /* Abrir una ventana */
     glutCreateWindow("Laboratorio de Informática Gráfica");

  /* Sistema de Coordenadas 2D Ortogonal (min_x, max_x, min_y, max_y)  */
     gluOrtho2D(0.0,TAM_VENTANA_X,0.0,TAM_VENTANA_Y);

  /* Registrar funciones Callback */
     glutDisplayFunc(miDraw);
     glutIdleFunc(miIdle);
     glutMouseFunc(MiRaton);  // CallBack para el raton
     glutKeyboardFunc(miTeclado); // CallBack para el teclado


  /* Iniciar el procesado de eventos */
     glutMainLoop();

  return 0;
};
