struct fgLIGHT *l;
struct fgTIME *t;
struct VIEW *v;
+
double x_2, x_4, x_8, x_10;
double ambient, diffuse, sky;
GLfloat color[4] = { 1.0, 1.0, 0.50, 1.0 };
- GLfloat amb[3], diff[3], fog[4], clear[4];
+ /* GLfloat amb[3], diff[3], fog[4], clear[4]; */
f = ¤t_aircraft.flight;
l = &cur_light_params;
if ( sky < 0.0 ) { sky = 0.0; }
- amb[0] = color[0] * ambient;
- amb[1] = color[1] * ambient;
- amb[2] = color[2] * ambient;
+ l->scene_ambient[0] = color[0] * ambient;
+ l->scene_ambient[1] = color[1] * ambient;
+ l->scene_ambient[2] = color[2] * ambient;
- diff[0] = color[0] * diffuse;
- diff[1] = color[1] * diffuse;
- diff[2] = color[2] * diffuse;
+ l->scene_diffuse[0] = color[0] * diffuse;
+ l->scene_diffuse[1] = color[1] * diffuse;
+ l->scene_diffuse[2] = color[2] * diffuse;
/* set lighting parameters */
- glLightfv(GL_LIGHT0, GL_AMBIENT, amb );
- glLightfv(GL_LIGHT0, GL_DIFFUSE, diff );
+ glLightfv(GL_LIGHT0, GL_AMBIENT, l->scene_ambient );
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, l->scene_diffuse );
/* set fog color */
- fog[0] = fgFogColor[0] * (ambient + diffuse);
- fog[1] = fgFogColor[1] * (ambient + diffuse);
- fog[2] = fgFogColor[2] * (ambient + diffuse);
- fog[3] = fgFogColor[3];
- glFogfv (GL_FOG_COLOR, fog);
+ l->scene_fog[0] = fgFogColor[0] * (ambient + diffuse);
+ l->scene_fog[1] = fgFogColor[1] * (ambient + diffuse);
+ l->scene_fog[2] = fgFogColor[2] * (ambient + diffuse);
+ l->scene_fog[3] = fgFogColor[3];
+ glFogfv (GL_FOG_COLOR, l->scene_fog);
/* set sky color */
- clear[0] = fgClearColor[0] * sky;
- clear[1] = fgClearColor[1] * sky;
- clear[2] = fgClearColor[2] * sky;
- clear[3] = fgClearColor[3];
- glClearColor(clear[0], clear[1], clear[2], clear[3]);
+ l->scene_clear[0] = fgClearColor[0] * sky;
+ l->scene_clear[1] = fgClearColor[1] * sky;
+ l->scene_clear[2] = fgClearColor[2] * sky;
+ l->scene_clear[3] = fgClearColor[3];
+ glClearColor(l->scene_clear[0], l->scene_clear[1],
+ l->scene_clear[2], l->scene_clear[3]);
}
/* $Log$
-/* Revision 1.26 1997/12/09 04:25:29 curt
-/* Working on adding a global lighting params structure.
+/* Revision 1.27 1997/12/09 05:11:54 curt
+/* Working on tweaking lighting.
/*
+ * Revision 1.26 1997/12/09 04:25:29 curt
+ * Working on adding a global lighting params structure.
+ *
* Revision 1.25 1997/12/08 22:54:09 curt
* Enabled GL_CULL_FACE.
*
#include "../Main/views.h"
#include "../Time/fg_time.h"
-struct CelestialCoord
- moonPos;
+struct CelestialCoord moonPos;
float xMoon, yMoon, zMoon;
+GLint moon;
/*
static GLfloat vdata[12][3] =
{6,1,10}, {9,0,11}, {9,11,2}, {9,2,5}, {7,2,11}
};*/
-GLint moon;
-
/* -------------------------------------------------------------
This section contains the code that generates a yellow
Icosahedron. It's under development... (of Course)
}
-void fgMoonInit()
-{
+void fgMoonInit() {
// int i;
-// moon = glGenLists(1);
-// glNewList(moon, GL_COMPILE );
-
- fgSolarSystemUpdate(&(pltOrbElements[1]), cur_time_params);
- moonPos = fgCalculateMoon(pltOrbElements[1], pltOrbElements[0], cur_time_params);
- #ifdef DEBUG
- printf("Moon found at %f (ra), %f (dec)\n", moonPos.RightAscension, moonPos.Declination);
- #endif
- glColor3f(1.0, 1.0, 0.0);
+ moon = glGenLists(1);
+ glNewList(moon, GL_COMPILE );
- /* xMoon = 90000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
- yMoon = 90000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
- zMoon = 90000.0 * sin(moonPos.Declination); */
+ fgSolarSystemUpdate(&(pltOrbElements[1]), cur_time_params);
+ moonPos = fgCalculateMoon(pltOrbElements[1], pltOrbElements[0],
+ cur_time_params);
+#ifdef DEBUG
+ printf("Moon found at %f (ra), %f (dec)\n", moonPos.RightAscension,
+ moonPos.Declination);
+#endif
- xMoon = 60000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
- yMoon = 60000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
- zMoon = 60000.0 * sin(moonPos.Declination);
+ /* xMoon = 90000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
+ yMoon = 90000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
+ zMoon = 90000.0 * sin(moonPos.Declination); */
-// glPushMatrix();
-// glBegin(GL_TRIANGLES);
- /*
- for (i = 0; i < 20; i++)
- subdivide(&vdata[tindices[i][0]][0],
- &vdata[tindices[i][1]][0],
- &vdata[tindices[i][2]][0], 3);*/
-// glutSolidSphere(1.0, 25, 25);
+ xMoon = 60000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
+ yMoon = 60000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
+ zMoon = 60000.0 * sin(moonPos.Declination);
-// glEnd();
-// glPopMatrix();
-// glEndList();
+ glColor3f(1.0, 1.0, 1.0);
+ glutSolidSphere(1.0, 10, 10);
+
+ glEndList();
}
/* Draw the moon */
void fgMoonRender() {
+ struct fgLIGHT *l;
GLfloat color[4] = { 1.0, 1.0, 1.0, 1.0 };
+ l = &cur_light_params;
+
/* set lighting parameters */
- glLightfv(GL_LIGHT0, GL_AMBIENT, color );
+ glLightfv(GL_LIGHT0, GL_AMBIENT, l->scene_clear );
glLightfv(GL_LIGHT0, GL_DIFFUSE, color );
- glMaterialfv(GL_FRONT, GL_AMBIENT, fgClearColor);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, color);
glPushMatrix();
glTranslatef(xMoon, yMoon, zMoon);
glScalef(1400, 1400, 1400);
+
+ /* glColor3fv(color); */
/* glutSolidSphere(1.0, 25, 25); */
- glutSolidSphere(1.0, 15, 15);
+ glCallList(moon);
+
glPopMatrix();
}
GLint sun;
-static struct CelestialCoord
- sunPos;
+static struct CelestialCoord sunPos;
float xSun, ySun, zSun;
void fgSunInit()
{
// int i;
-// sun = glGenLists(1);
-// glNewList(sun, GL_COMPILE );
+
+ sun = glGenLists(1);
+ glNewList(sun, GL_COMPILE );
+
// glBegin( GL_POINTS );
- fgSolarSystemUpdate(&(pltOrbElements[0]), cur_time_params);
- sunPos = fgCalculateSun(pltOrbElements[0], cur_time_params);
- #ifdef DEBUG
- printf("Sun found at %f (ra), %f (dec)\n", sunPos.RightAscension, sunPos.Declination);
- #endif
- /* give the moon a temporary color, for testing purposes */
+
+ fgSolarSystemUpdate(&(pltOrbElements[0]), cur_time_params);
+ sunPos = fgCalculateSun(pltOrbElements[0], cur_time_params);
+#ifdef DEBUG
+ printf("Sun found at %f (ra), %f (dec)\n", sunPos.RightAscension,
+ sunPos.Declination);
+#endif
+
+ /* give the moon a temporary color, for testing purposes */
// glColor3f( 0.0, 1.0, 0.0);
// glVertex3f( 190000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination),
// 190000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination),
//xMoon = 190000.0 * cos(moonPos.RightAscension) * cos(moonPos.Declination);
//yMoon = 190000.0 * sin(moonPos.RightAscension) * cos(moonPos.Declination);
//zMoon = 190000.0 * sin(moonPos.Declination);
+
xSun = 60000.0 * cos(sunPos.RightAscension) * cos(sunPos.Declination);
ySun = 60000.0 * sin(sunPos.RightAscension) * cos(sunPos.Declination);
zSun = 60000.0 * sin(sunPos.Declination);
// glutSolidSphere(1.0, 25, 25);
// glEnd();
- //glPopMatrix();
-// glEndList();
+ //glPopMatrix();
+
+ glColor3f(0.85, 0.65, 0.05);
+ glutSolidSphere(1.0, 10, 10);
+
+ glEndList();
}
glMaterialfv(GL_FRONT, GL_DIFFUSE, diff); */
glDisable( GL_LIGHTING );
+
glPushMatrix();
glTranslatef(xSun, ySun, zSun);
glScalef(1400, 1400, 1400);
- glColor3fv( color );
+
+ /* glColor3fv( color ); */
/* glutSolidSphere(1.0, 25, 25); */
- glutSolidSphere(1.0, 10, 10);
- //glCallList(sun);
+ glCallList(sun);
+
glPopMatrix();
+
glEnable( GL_LIGHTING );
}
/* $Log$
-/* Revision 1.2 1997/11/25 19:25:39 curt
-/* Changes to integrate Durk's moon/sun code updates + clean up.
+/* Revision 1.3 1997/12/09 05:11:56 curt
+/* Working on tweaking lighting.
/*
+ * Revision 1.2 1997/11/25 19:25:39 curt
+ * Changes to integrate Durk's moon/sun code updates + clean up.
+ *
* Revision 1.1 1997/10/25 03:16:11 curt
* Initial revision of code contributed by Durk Talsma.
*
/* get current Unix calendar time (in seconds) */
warp += 60;
/* warp = 0; */
- t->cur_time = time(NULL) + (0) * 60 * 60;
+ t->cur_time = time(NULL) + (12) * 60 * 60;
t->cur_time += warp;
printf("Current Unix calendar time = %ld warp = %ld\n", t->cur_time, warp);
/* $Log$
-/* Revision 1.12 1997/12/09 04:25:37 curt
-/* Working on adding a global lighting params structure.
+/* Revision 1.13 1997/12/09 05:11:56 curt
+/* Working on tweaking lighting.
/*
+ * Revision 1.12 1997/12/09 04:25:37 curt
+ * Working on adding a global lighting params structure.
+ *
* Revision 1.11 1997/11/25 19:25:40 curt
* Changes to integrate Durk's moon/sun code updates + clean up.
*