|
@@ -51,6 +51,11 @@ GLuint vColor;
|
|
|
GLuint rquat_loc;
|
|
|
GLuint move_loc;
|
|
|
|
|
|
+const std::string models_file[] = {
|
|
|
+ "bunny_color_HoleFill.obj",
|
|
|
+ "gargoyle_color.obj",
|
|
|
+ "v1_color.obj",
|
|
|
+};
|
|
|
|
|
|
|
|
|
void load_model(const std::string &file_name) {
|
|
@@ -278,8 +283,6 @@ void stopMotion(int x, int y) {
|
|
|
}
|
|
|
|
|
|
void mouseButton(int button, int state, int x, int y) {
|
|
|
- if (button == GLUT_RIGHT_BUTTON)
|
|
|
- exit(0);
|
|
|
if (button == GLUT_LEFT_BUTTON)
|
|
|
switch (state) {
|
|
|
case GLUT_DOWN:
|
|
@@ -303,6 +306,16 @@ void spinCube() {
|
|
|
glutPostRedisplay();
|
|
|
}
|
|
|
|
|
|
+void mymenu(int value) {
|
|
|
+ if (value == 3) {
|
|
|
+ exit(EXIT_SUCCESS);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void select(int value) {
|
|
|
+ init(models_file[value]);
|
|
|
+ glutPostRedisplay();
|
|
|
+}
|
|
|
|
|
|
|
|
|
int main(int argc, char **argv) {
|
|
@@ -317,7 +330,14 @@ int main(int argc, char **argv) {
|
|
|
std::cerr << "Failed to initialize GLEW ... exiting" << std::endl;
|
|
|
exit(EXIT_FAILURE);
|
|
|
}
|
|
|
-
|
|
|
+ int menu = glutCreateMenu(select);
|
|
|
+ glutAddMenuEntry("bunny_color_HoleFill.obj", 0);
|
|
|
+ glutAddMenuEntry("gargoyle_color.obj.obj", 1);
|
|
|
+ glutAddMenuEntry("v1_color.obj", 2);
|
|
|
+ glutCreateMenu(mymenu);
|
|
|
+ glutAddSubMenu("select model", menu);
|
|
|
+ glutAddMenuEntry("Exit", 3);
|
|
|
+ glutAttachMenu(GLUT_RIGHT_BUTTON);
|
|
|
init("v1_color.obj");
|
|
|
glutReshapeFunc(myReshape);
|
|
|
glutIdleFunc(spinCube);
|