+ glLightfv (GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv (GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv (GL_LIGHT0, GL_POSITION, position0);
+ glEnable (GL_LIGHT0);
+
+ glLightfv (GL_LIGHT1, GL_AMBIENT, ambient1);
+ glLightfv (GL_LIGHT1, GL_DIFFUSE, diffuse1);
+ glLightfv (GL_LIGHT1, GL_POSITION, position1);
+ glEnable (GL_LIGHT1);
+
+ glLightModelfv (GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+ glLightModelfv (GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
+
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SHININESS, front_mat_shininess);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, front_mat_specular);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_DIFFUSE, front_mat_diffuse);
+
+ glColorMaterial (GL_FRONT_AND_BACK, GL_DIFFUSE);
+ // glColorMaterial (GL_FRONT_AND_BACK, GL_SPECULAR);
+ glEnable(GL_COLOR_MATERIAL);
+#else
+ GLfloat impLPos[] = {1.0, 1.0, 1.0, 0.0};
+
+ GLfloat defaultLightAmb [] = {.2, .2, .2, 1.0};
+ GLfloat defaultLightDiff [] = {.2, .2, .2, 1.0};
+ GLfloat defaultLightSpec [] = { .3, .3, .3, 1.0};
+
+ GLfloat defaultGlobalAmb [] = {.3, .3, .3, 1.0};
+ GLfloat defaultGlobalDiff[] = {.3, .3, .3, 1.0};
+
+ GLfloat defaultMatShine[] = { 30.0 };
+ GLfloat defaultMatSpec[] = { .4, .4, .4, 1.0};
+ GLfloat defaultMatAmb[] = { .3, .3, .3, 1.0};
+ GLfloat defaultMatDiff[] = { .5, .5, .5, 1.0};
+
+ GLfloat brassMatAmb[] = { .33, .22, .03, 1.0};
+ GLfloat brassMatDiff[] = { .78, .57, .11, 1.0};
+ GLfloat brassMatSpec[] = { .99, .91, .81, 1.0};
+ GLfloat brassMatShine[] = { 27.8 };
+
+ GLfloat emeraldMatAmb[] = { .021, .1745 , .021, 1.0};
+ GLfloat emeraldMatDiff[] = { .075, .6142 , .075, 1.0 };
+ GLfloat emeraldMatSpec[] = { .633, .7278 , .633, 1.0 };
+ GLfloat emeraldMatShine[] = { 76.8 };
+
+ GLfloat slateMatAmb[] = { .02, .02 , .02, 1.0 };
+ GLfloat slateMatDiff[] = { .02, .01 , .01, 1.0 };
+ GLfloat slateMatSpec[] = { .4, .4 , .4 , 1.0 };
+ GLfloat slateMatShine[] = { .768 };
+
+ // double opnX = nx, opnY = ny, opnZ = z;
+ // eyeX = 1; eyeY = 1, eyeZ = 1;
+
+ impLPos[0] = nx/2.; impLPos[1]= ny/2.; impLPos[2] = 0.;
+ //opnListNum = 1;
+ //impGraphicsFlag = IMP__3D;
+
+ // glutInitDisplayMode (GLUT_DOUBLE| GLUT_RGB | GLUT_DEPTH | GLUT_ACCUM);
+ // glutInitWindowSize (IMP_WIN_X, IMP_WIN_Y);
+ // glutInitWindowPosition (100, 100);
+ // glutCreateWindow ("- imp3D graphics -" );
+
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+
+ glShadeModel (GL_SMOOTH);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+ glHint(GL_LINE_SMOOTH, GL_DONT_CARE);
+ glEnable(GL_NORMALIZE);
+
+
+ glEnable(GL_DEPTH_TEST);
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, defaultLightAmb);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, defaultLightDiff);
+ glLightfv(GL_LIGHT0, GL_SPECULAR,defaultLightSpec);
+
+ glLightfv(GL_LIGHT1, GL_AMBIENT, defaultLightAmb);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, defaultLightDiff);
+ glLightfv(GL_LIGHT1, GL_SPECULAR,defaultLightSpec);
+
+ glLightfv(GL_LIGHT2, GL_AMBIENT , defaultLightAmb);
+ glLightfv(GL_LIGHT2, GL_DIFFUSE , defaultLightDiff);
+ glLightfv(GL_LIGHT2, GL_SPECULAR, defaultLightSpec);
+
+ glLightfv(GL_LIGHT0, GL_POSITION,impLPos);
+ glLightfv(GL_LIGHT1, GL_POSITION,impLPos);
+ glLightfv(GL_LIGHT2, GL_POSITION,impLPos);
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT , defaultMatAmb);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE , defaultMatDiff);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR , defaultMatSpec);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, defaultMatShine);
+
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, defaultGlobalAmb);
+
+ glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+
+ glEnable(GL_COLOR_MATERIAL);