0.054900, 0.000000,
115.3654, 13.0649929509, t)
{
-#if 0
- int width, height;
-
- FG_LOG( FG_GENERAL, FG_INFO, "Initializing Moon Texture");
-#ifdef GL_VERSION_1_1
- xglGenTextures(1, &moon_texid);
- xglBindTexture(GL_TEXTURE_2D, moon_texid);
-#elif GL_EXT_texture_object
- xglGenTexturesEXT(1, &moon_texid);
- xglBindTextureEXT(GL_TEXTURE_2D, moon_texid);
-#else
-# error port me
-#endif
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- // load in the texture data
- FGPath tpath( current_options.get_fg_root() );
- tpath.append( "Textures" );
- tpath.append( "moon.rgb" );
-
- if ( (moon_texbuf = read_rgb_texture(tpath.c_str(), &width, &height))
- == NULL )
- {
- // Try compressed
- FGPath fg_tpath = tpath;
- fg_tpath.append( ".gz" );
- if ( (moon_texbuf = read_rgb_texture(fg_tpath.c_str(), &width, &height))
- == NULL )
- {
- FG_LOG( FG_GENERAL, FG_ALERT,
- "Error in loading moon texture " << tpath.str() );
- exit(-1);
- }
- }
-
- glTexImage2D( GL_TEXTURE_2D,
- 0,
- GL_RGB,
- 256, 256,
- 0,
- GL_RGB, GL_UNSIGNED_BYTE,
- moon_texbuf);
-
- // setup the halo texture
- FG_LOG( FG_GENERAL, FG_INFO, "Initializing Moon Texture");
-#ifdef GL_VERSION_1_1
- xglGenTextures(1, &moon_halotexid);
- xglBindTexture(GL_TEXTURE_2D, moon_halotexid);
-#elif GL_EXT_texture_object
- xglGenTexturesEXT(1, &moon_halotexid);
- xglBindTextureEXT(GL_TEXTURE_2D, moon_halotexid);
-#else
-# error port me
-#endif
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- setHalo();
- glTexImage2D( GL_TEXTURE_2D,
- 0,
- GL_RGBA,
- 256, 256,
- 0,
- GL_RGBA, GL_UNSIGNED_BYTE,
- moon_halotexbuf);
- moonObject = gluNewQuadric();
-#endif
}
Moon::Moon() :
Moon::~Moon()
{
- //delete moonObject;
- // delete moon_texbuf;
- // delete moon_halotexbuf;
-}
-
-
-#if 0
-static int texWidth = 256; /* 64x64 is plenty */
-
-void Moon::setHalo()
-{
- int texSize;
- //void *textureBuf;
- GLubyte *p;
- int i,j;
- double radius;
-
- texSize = texWidth*texWidth;
-
- moon_halotexbuf = new GLubyte[texSize*4];
- if (!moon_halotexbuf)
- return; // Ugly!
-
- p = moon_halotexbuf;
-
- radius = (double)(texWidth / 2);
-
- for (i=0; i < texWidth; i++) {
- for (j=0; j < texWidth; j++) {
- double x, y, d;
-
- *p = 0xff;
- *(p+1) = 0xff;
- *(p+2) = 0xff;
-
- x = fabs((double)(i - (texWidth / 2)));
- y = fabs((double)(j - (texWidth / 2)));
-
- d = sqrt((x * x) + (y * y));
- if (d < radius) {
- double t = 1.0 - (d / radius); // t is 1.0 at center, 0.0 at edge */
- // inverse square looks nice
- *(p+3) = (int)((double) 0x20 * (t*t));
- } else {
- *(p+3) = 0x00;
- }
- p += 4;
- }
- }
- //gluBuild2DMipmaps(GL_TEXTURE_2D, 1, texWidth, texWidth,
- // GL_LUMINANCE,
- // GL_UNSIGNED_BYTE, textureBuf);
- //free(textureBuf);
}
-#endif
/*****************************************************************************
"Ra = (" << (RAD_TO_DEG *rightAscension)
<< "), Dec= (" << (RAD_TO_DEG *declination) << ")" ); */
}
-
-
-#if 0
-/************************************************************************
- * void Moon::newImage()
- *
- * This function regenerates a new visual image of the moon, which is added to
- * solarSystem display list.
- *
- * Arguments: Right Ascension and declination
- *
- * return value: none
- **************************************************************************/
-void Moon::newImage()
-{
- fgLIGHT *l = &cur_light_params;
- float moon_angle = l->moon_angle;
-
- /*double x_2, x_4, x_8, x_10;
- GLfloat ambient;
- GLfloat amb[4];*/
- int moonSize = 550;
-
- GLfloat moonColor[4] = {0.85, 0.75, 0.35, 1.0};
- GLfloat black[4] = {0.0, 0.0, 0.0, 1.0};
- GLfloat white[4] = {1.0, 1.0, 1.0, 0.0};
-
- if( moon_angle*RAD_TO_DEG < 100 )
- {
- FG_LOG( FG_ASTRO, FG_INFO, "Generating Moon Image" );
-
- xglPushMatrix();
- {
- xglRotatef(((RAD_TO_DEG * rightAscension)- 90.0), 0.0, 0.0, 1.0);
- xglRotatef((RAD_TO_DEG * declination), 1.0, 0.0, 0.0);
-
- FG_LOG( FG_GENERAL, FG_INFO,
- "Ra = (" << (RAD_TO_DEG *rightAscension)
- << "), Dec= (" << (RAD_TO_DEG *declination) << ")" );
- xglTranslatef(0.0, 60000.0, 0.0);
- glEnable(GL_BLEND); // BLEND ENABLED
-
- // Draw the halo...
- if (current_options.get_textures())
- {
- // glBlendFunc(GL_SRC_ALPHA, GL_ONE);
- glBlendFunc ( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ) ;
- glEnable(GL_TEXTURE_2D); // TEXTURE ENABLED
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glBindTexture(GL_TEXTURE_2D, moon_halotexid);
-
- glBegin(GL_QUADS);
- glTexCoord2f(0.0f, 0.0f); glVertex3f(-5000, 0.0, -5000);
- glTexCoord2f(1.0f, 0.0f); glVertex3f( 5000, 0.0, -5000);
- glTexCoord2f(1.0f, 1.0f); glVertex3f( 5000, 0.0, 5000);
- glTexCoord2f(0.0f, 1.0f); glVertex3f(-5000, 0.0, 5000);
- glEnd();
- }
-
- xglEnable(GL_LIGHTING); // LIGHTING ENABLED
- xglEnable( GL_LIGHT0 );
- // set lighting parameters
- xglLightfv(GL_LIGHT0, GL_AMBIENT, white );
- xglLightfv(GL_LIGHT0, GL_DIFFUSE, white );
- // Enable( GL_CULL_FACE );
- xglMaterialfv(GL_FRONT, GL_AMBIENT, black);
- xglMaterialfv(GL_FRONT, GL_DIFFUSE, moonColor);
- //glEnable(GL_TEXTURE_2D);
-
- glBlendFunc(GL_ONE, GL_ONE);
-
- //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- // Draw the moon-proper
-
- if (current_options.get_textures())
- {
- glBindTexture(GL_TEXTURE_2D, moon_texid);
- gluQuadricTexture(moonObject, GL_TRUE );
- }
- gluSphere(moonObject, moonSize, 12, 12 );
- glDisable(GL_TEXTURE_2D); // TEXTURE DISABLED
- glDisable(GL_BLEND); // BLEND DISABLED
- }
- xglPopMatrix();
- glDisable(GL_LIGHTING); // Lighting Disabled.
-
- }
- else
- {
- }
-}
-#endif