#include <stdio.h>
#include <iostream>
+#include <plib/sg.h>
#include <plib/ssg.h>
-#include <simgear/constants.h>
-
#include "sphere.hxx"
#include "oursun.hxx"
orb_state = new ssgSimpleState();
orb_state->setShadeModel( GL_SMOOTH );
orb_state->disable( GL_LIGHTING );
+ // orb_state->enable( GL_LIGHTING );
orb_state->disable( GL_CULL_FACE );
orb_state->disable( GL_TEXTURE_2D );
orb_state->enable( GL_COLOR_MATERIAL );
orb_state->setColourMaterial( GL_AMBIENT_AND_DIFFUSE );
+ orb_state->setMaterial( GL_EMISSION, 0, 0, 0, 1 );
+ orb_state->setMaterial( GL_SPECULAR, 0, 0, 0, 1 );
orb_state->disable( GL_BLEND );
orb_state->disable( GL_ALPHA_TEST );
path.append( "halo.rgba" );
halo_state = new ssgSimpleState();
halo_state->setTexture( (char *)path.c_str() );
- // halo_state->setTexture( sun_texid );
halo_state->enable( GL_TEXTURE_2D );
halo_state->disable( GL_LIGHTING );
+ // halo_state->enable( GL_LIGHTING );
halo_state->setShadeModel( GL_SMOOTH );
halo_state->disable( GL_CULL_FACE );
halo_state->enable( GL_COLOR_MATERIAL );
halo_state->setColourMaterial( GL_AMBIENT_AND_DIFFUSE );
+ halo_state->setMaterial( GL_EMISSION, 0, 0, 0, 1 );
+ halo_state->setMaterial( GL_SPECULAR, 0, 0, 0, 1 );
halo_state->enable( GL_ALPHA_TEST );
halo_state->setAlphaClamp(0.01);
halo_state->enable ( GL_BLEND ) ;
// into the provide scene graph branch
sun_transform = new ssgTransform;
- sun_transform->addKid( halo );
halo->setCallback( SSG_CALLBACK_PREDRAW, sgSunHaloPreDraw );
halo->setCallback( SSG_CALLBACK_POSTDRAW, sgSunHaloPostDraw );
+ sun_transform->addKid( halo );
sun_transform->addKid( orb );
return sun_transform;
// 90 degrees = sun rise/set
// 180 degrees = darkest midnight
bool SGSun::repaint( double sun_angle ) {
- if ( sun_angle * RAD_TO_DEG < 100 ) {
+ if ( sun_angle * SGD_RADIANS_TO_DEGREES < 100 ) {
// else sun is well below horizon (so no point in repainting it)
// x_10 = sun_angle^10
(ambient * 12.0) - 3.6, // minimum value = 0.0
1.0 );
+ // 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;
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,sun_dist);
+ sgSetVec3( v, 0.0, sun_dist, 0.0 );
sgMakeTransMat4( T2, v );
sgMat4 TRANSFORM;