-/*************
- * ROAM Code *
- *************/
-static void _set_visuals(GisOpenGL *self)
-{
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- /* Camera 1 */
- double lat, lon, elev, rx, ry, rz;
- gis_viewer_get_location(GIS_VIEWER(self), &lat, &lon, &elev);
- gis_viewer_get_rotation(GIS_VIEWER(self), &rx, &ry, &rz);
- glRotatef(rx, 1, 0, 0);
- glRotatef(rz, 0, 0, 1);
-
- /* Lighting */
-#ifdef ROAM_DEBUG
- float light_ambient[] = {0.7f, 0.7f, 0.7f, 1.0f};
- float light_diffuse[] = {2.0f, 2.0f, 2.0f, 1.0f};
-#else
- float light_ambient[] = {0.2f, 0.2f, 0.2f, 1.0f};
- float light_diffuse[] = {5.0f, 5.0f, 5.0f, 1.0f};
-#endif
- float light_position[] = {-13*EARTH_R, 1*EARTH_R, 3*EARTH_R, 1.0f};
- glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
- glEnable(GL_LIGHT0);
- glEnable(GL_LIGHTING);
-
- float material_ambient[] = {0.2, 0.2, 0.2, 1.0};
- float material_diffuse[] = {0.8, 0.8, 0.8, 1.0};
- float material_specular[] = {0.0, 0.0, 0.0, 1.0};
- float material_emission[] = {0.0, 0.0, 0.0, 1.0};
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material_ambient);
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material_diffuse);
- glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material_specular);
- glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, material_emission);
- glDisable(GL_TEXTURE_2D);
- glDisable(GL_COLOR_MATERIAL);
-
- /* Camera 2 */
- glTranslatef(0, 0, -elev2rad(elev));
- glRotatef(lat, 1, 0, 0);
- glRotatef(-lon, 0, 1, 0);
-
- /* Misc */
- gdouble rg = MAX(0, 1-(elev/20000));
- gdouble blue = MAX(0, 1-(elev/50000));
- glClearColor(MIN(0.65,rg), MIN(0.65,rg), MIN(1,blue), 1.0f);
- glColor4f(1, 1, 1, 1);
-
- glDisable(GL_ALPHA_TEST);
-
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glEnable(GL_BLEND);
-
-#ifndef ROAM_DEBUG
- glCullFace(GL_BACK);
- glEnable(GL_CULL_FACE);
-#endif
-
- glClearDepth(1.0);
- glDepthFunc(GL_LEQUAL);
- glEnable(GL_DEPTH_TEST);
-
- glEnable(GL_LINE_SMOOTH);
-
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- //glShadeModel(GL_FLAT);
-
- roam_sphere_update_view(self->sphere);
-}
-