#include <GL/glut.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define NP 4000
#define AGE 200
float winWid,winHeight;
float rx,ry;
float pri, seg;
int v[100]={0};
float vrx[100]={0};
float vry[100]={0};
int indi=0;
int b=0;
void menu(int opc)
{
v[indi]=opc;
vrx[indi]=(rx/(winWid/2))-1;
vry[indi]=(ry/(winHeight/2))-1;
switch(v[indi])
{
case 1:
glPushMatrix();
glTranslatef(vrx[indi],vry[indi],0.0);
glColor3f(1.0,0.0,0.0);
glutWireSphere(0.1,15,15);
glPopMatrix();
glFlush();
break;
case 2:
glColor3f(1.0,0.0,0.0);
glPushMatrix();
glTranslatef(vrx[indi],vry[indi],0.0);
glRotatef(55,0,1,1);
glutWireCone(0.1,0.1,15,15);
glPopMatrix();
glFlush();
break;
case 3:
glColor3f(1.0,0.0,0.0);
glPushMatrix();
glTranslatef(vrx[indi],vry[indi],0.0);
glRotatef(55,0,1,1);
glutWireCube(0.1);
glPopMatrix();
glFlush();
break;
case 4:
glColor3f(1.0,0.0,0.0);
glPushMatrix();
glTranslatef(vrx[indi],vry[indi],0.0);
glScalef(0.1,0.1,0.1);
glRotatef(55,0,1,1);
glutWireDodecahedron();
glPopMatrix();
glFlush();
break;
}
}
void dibuja(){
//glClear(GL_COLOR_BUFFER_BIT);
menu(v[indi]);
glutSwapBuffers();
}
// en donde se de clic se movera el punto
void mousebutton(int button, int state, int x, int y)
{
cerr << "mousebutton. x:" << x << ", y:" << y << "\n";
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
rx = float(x);
ry = winHeight - float(y);
indi++;
// redraw();
}
}
int main(int argc, char *argv[]){
winWid = 600.0;
winHeight = 400.0;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutCreateWindow(" ");
glutPositionWindow(200,100);
glutReshapeWindow(int(winWid),int(winHeight));
glClearColor(0.0,0.0,0.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// glutMotionFunc(motion);
glutDisplayFunc(dibuja);
glutIdleFunc(dibuja);
glutMouseFunc(mousebutton);
glutCreateMenu(menu);
glutAddMenuEntry("Opcion 1", 1);
glutAddMenuEntry("Opcion 2", 2);
glutAddMenuEntry("Opcion 3", 3);
glutAddMenuEntry("Opcion 4", 4);
glutAttachMenu(GLUT_RIGHT_BUTTON);
glutMainLoop();
return 0;
}
No hay comentarios:
Publicar un comentario