]> git.mxchange.org Git - simgear.git/blobdiff - Astro/sky.c
Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
[simgear.git] / Astro / sky.c
index 4de37c7369d10e2fbf7beaf02ed1b824c363d00c..15cdf77594db03e02ee7bf7228e939689074d2a2 100644 (file)
 */
 
 #include <GL/glut.h>
-#include "../XGL/xgl.h"
+#include <XGL/xgl.h>
 
-#include "sky.h"
+#include <Astro/sky.h>
 
-#include "../Time/event.h"
-#include "../Time/fg_time.h"
+#include <Time/event.h>
+#include <Time/fg_time.h>
+
+#include <Aircraft/aircraft.h>
+#include <Flight/flight.h>
+#include <Include/fg_constants.h>
+#include <Main/views.h>
+#include <Math/fg_random.h>
 
-#include "../Aircraft/aircraft.h"
-#include "../Flight/flight.h"
-#include "../Include/constants.h"
-#include "../Main/views.h"
-#include "../Math/fg_random.h"
 /*
-#include "../Include/general.h"
+#include <Include/general.h>
 */
 
 /* in meters of course */
 #define CENTER_ELEV   25000.0
+
 #define INNER_RADIUS  50000.0
 #define INNER_ELEV    20000.0
+
 #define MIDDLE_RADIUS 70000.0
 #define MIDDLE_ELEV    8000.0
+
 #define OUTER_RADIUS  80000.0
 #define OUTER_ELEV        0.0
 
+#define BOTTOM_RADIUS 50000.0
+#define BOTTOM_ELEV   -2000.0
+
 
 static float inner_vertex[12][3];
 static float middle_vertex[12][3];
 static float outer_vertex[12][3];
+static float bottom_vertex[12][3];
 
 static float inner_color[12][4];
 static float middle_color[12][4];
@@ -72,7 +80,7 @@ static float outer_color[12][4];
 
 
 /* Calculate the sky structure vertices */
-void fgSkyVerticesInit() {
+void fgSkyVerticesInit( void ) {
     float theta;
     int i;
 
@@ -96,12 +104,15 @@ void fgSkyVerticesInit() {
        outer_vertex[i][1] = sin((double)theta) * OUTER_RADIUS;
        outer_vertex[i][2] = OUTER_ELEV;
            
+       bottom_vertex[i][0] = cos((double)theta) * BOTTOM_RADIUS;
+       bottom_vertex[i][1] = sin((double)theta) * BOTTOM_RADIUS;
+       bottom_vertex[i][2] = BOTTOM_ELEV;
     }
 }
 
 
 /* (Re)calculate the sky colors at each vertex */
-void fgSkyColorsInit() {
+void fgSkyColorsInit( void ) {
     struct fgLIGHT *l;
     float sun_angle, diff;
     float outer_param[3], outer_amt[3], outer_diff[3];
@@ -224,7 +235,7 @@ void fgSkyColorsInit() {
 
 
 /* Initialize the sky structure and colors */
-void fgSkyInit() {
+void fgSkyInit( void ) {
     printf("Initializing the sky\n");
 
     fgSkyVerticesInit();
@@ -236,7 +247,7 @@ void fgSkyInit() {
 
 
 /* Draw the Sky */
-void fgSkyRender() {
+void fgSkyRender( void ) {
     struct fgFLIGHT *f;
     struct fgLIGHT *l;
     struct fgVIEW *v;
@@ -324,14 +335,43 @@ void fgSkyRender() {
     xglVertex3fv( middle_vertex[0] );
     xglEnd();
 
+    /* Draw the bottom skirt */
+    xglBegin( GL_TRIANGLE_STRIP );
+    for ( i = 0; i < 12; i++ ) {
+       xglColor4fv( l->fog_color );
+       xglVertex3fv( bottom_vertex[i] );
+       xglColor4fv( outer_color[i] );
+       xglVertex3fv( outer_vertex[i] );
+    }
+    xglColor4fv( l->fog_color );
+    xglVertex3fv( bottom_vertex[0] );
+    xglColor4fv( outer_color[0] );
+    xglVertex3fv( outer_vertex[0] );
+    xglEnd();
     xglPopMatrix();
 }
 
 
 /* $Log$
-/* Revision 1.1  1998/01/07 03:16:19  curt
-/* Moved from .../Src/Scenery/ to .../Src/Astro/
+/* Revision 1.5  1998/01/27 00:47:48  curt
+/* Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
+/* system and commandline/config file processing code.
 /*
+ * Revision 1.4  1998/01/26 15:54:28  curt
+ * Added a "skirt" to try to help hide gaps between scenery and sky.  This will
+ * have to be revisited in the future.
+ *
+ * Revision 1.3  1998/01/19 19:26:59  curt
+ * Merged in make system changes from Bob Kuehne <rpk@sgi.com>
+ * This should simplify things tremendously.
+ *
+ * Revision 1.2  1998/01/19 18:40:17  curt
+ * Tons of little changes to clean up the code and to remove fatal errors
+ * when building with the c++ compiler.
+ *
+ * Revision 1.1  1998/01/07 03:16:19  curt
+ * Moved from .../Src/Scenery/ to .../Src/Astro/
+ *
  * Revision 1.11  1997/12/30 22:22:38  curt
  * Further integration of event manager.
  *