]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sky/moon.cxx
Collapsed the init() method into the constructor.
[simgear.git] / simgear / sky / moon.cxx
index 547519917805440f95713bda1ec62298168ba279..a2ab902ff2c617d23fcb36b3a00005b639b7db4b 100644 (file)
@@ -31,6 +31,7 @@
 #include <stdio.h>
 #include <iostream>
 
+#include <plib/sg.h>
 #include <plib/ssg.h>
 
 #include <simgear/constants.h>
@@ -46,9 +47,6 @@ static int sgMoonOrbPreDraw( ssgEntity *e ) {
     glDisable( GL_DEPTH_TEST );
     glDisable( GL_FOG );
     glBlendFunc ( GL_SRC_ALPHA, GL_ONE ) ;
-    // sgVec4 color;
-    // sgSetVec4( color, 0.0, 0.0, 0.0, 1.0 );
-    // glMaterialfv ( GL_FRONT_AND_BACK, GL_AMBIENT, color ) ;
 
     return true;
 }
@@ -60,6 +58,14 @@ static int sgMoonOrbPostDraw( ssgEntity *e ) {
     glEnable( GL_FOG );
     glBlendFunc ( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ) ;
 
+    /* test
+    glDisable( GL_LIGHTING );
+    glDisable( GL_CULL_FACE );
+    glEnable( GL_COLOR_MATERIAL );
+    glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE );
+    glEnable( GL_CULL_FACE );
+    glEnable( GL_LIGHTING ); */
+
     return true;
 }
 
@@ -107,8 +113,9 @@ ssgBranch * SGMoon::build( FGPath path, double moon_size ) {
     orb_state->enable( GL_TEXTURE_2D );
     orb_state->enable( GL_COLOR_MATERIAL );
     orb_state->setColourMaterial( GL_DIFFUSE );
-    orb_state->setMaterial( GL_AMBIENT, 0.0, 0.0, 0.0, 1.0 );
-    orb_state->setMaterial( GL_SPECULAR, 0.0, 0.0, 0.0, 1.0 );
+    orb_state->setMaterial( GL_AMBIENT, 0, 0, 0, 1.0 );
+    orb_state->setMaterial( GL_EMISSION, 0, 0, 0, 1 );
+    orb_state->setMaterial( GL_SPECULAR, 0, 0, 0, 1 );
     orb_state->enable( GL_BLEND );
     orb_state->enable( GL_ALPHA_TEST );
     orb_state->setAlphaClamp( 0.01 );
@@ -142,8 +149,8 @@ ssgBranch * SGMoon::build( FGPath path, double moon_size ) {
     halo_state->disable( GL_COLOR_MATERIAL );
     halo_state->setColourMaterial( GL_AMBIENT_AND_DIFFUSE );
     halo_state->setMaterial ( GL_AMBIENT_AND_DIFFUSE, 1, 1, 1, 1 ) ;
-    halo_state -> setMaterial ( GL_EMISSION, 0, 0, 0, 1 ) ;
-    halo_state -> setMaterial ( GL_SPECULAR, 0, 0, 0, 1 ) ;
+    halo_state->setMaterial ( GL_EMISSION, 0, 0, 0, 1 ) ;
+    halo_state->setMaterial ( GL_SPECULAR, 0, 0, 0, 1 ) ;
     // halo_state -> setShininess ( 0 ) ;
     halo_state->enable( GL_ALPHA_TEST );
     halo_state->setAlphaClamp(0.01);
@@ -196,7 +203,7 @@ ssgBranch * SGMoon::build( FGPath path, double moon_size ) {
 // 90 degrees = moon rise/set
 // 180 degrees = darkest midnight
 bool SGMoon::repaint( double moon_angle ) {
-    if ( moon_angle * RAD_TO_DEG < 100 ) {
+    if ( moon_angle * SGD_RADIANS_TO_DEGREES < 100 ) {
        // else moon is well below horizon (so no point in repainting it)
     
        // x_10 = moon_angle^10
@@ -214,7 +221,10 @@ bool SGMoon::repaint( double moon_angle ) {
                   (ambient * 11.0) - 3.0, // minimum value = 0.3
                   (ambient * 12.0) - 3.6, // minimum value = 0.0
                   0.5 );
-    
+
+       // temp test, forces the color to always be white
+       // sgSetVec4( color, 1.0, 1.0, 1.0, 1.0 );
+
        if (color[0] > 1.0) color[0] = 1.0;
        if (color[1] > 1.0) color[1] = 1.0;
        if (color[2] > 1.0) color[2] = 1.0;
@@ -248,16 +258,17 @@ bool SGMoon::reposition( sgVec3 p, double angle,
     sgSetVec3( axis, 0.0, 0.0, -1.0 );
     sgMakeRotMat4( GST, angle, axis );
 
-    // xglRotatef(((RAD_TO_DEG * rightAscension)- 90.0), 0.0, 0.0, 1.0);
+    // xglRotatef( ((SGD_RADIANS_TO_DEGREES * rightAscension)- 90.0),
+    //             0.0, 0.0, 1.0);
     sgSetVec3( axis, 0.0, 0.0, 1.0 );
-    sgMakeRotMat4( RA, (rightAscension * RAD_TO_DEG) - 90.0, axis );
+    sgMakeRotMat4( RA, (rightAscension * SGD_RADIANS_TO_DEGREES) - 90.0, axis );
 
-    // xglRotatef((RAD_TO_DEG * declination), 1.0, 0.0, 0.0);
+    // xglRotatef((SGD_RADIANS_TO_DEGREES * declination), 1.0, 0.0, 0.0);
     sgSetVec3( axis, 1.0, 0.0, 0.0 );
-    sgMakeRotMat4( DEC, declination * RAD_TO_DEG, axis );
+    sgMakeRotMat4( DEC, declination * SGD_RADIANS_TO_DEGREES, axis );
 
-    // xglTranslatef(0,60000,0);
-    sgSetVec3( v, 0.0, 60000.0, 0.0 );
+    // xglTranslatef(0,moon_dist);
+    sgSetVec3( v, 0.0, moon_dist, 0.0 );
     sgMakeTransMat4( T2, v );
 
     sgMat4 TRANSFORM;
@@ -274,3 +285,4 @@ bool SGMoon::reposition( sgVec3 p, double angle,
 
     return true;
 }
+