sun_horiz_eff = moon_horiz_eff = 1.0;
}
- static SGSkyState sstate;
-
- sstate.view_pos = toVec3f(current__view->get_view_pos());
- sstate.zero_elev = toVec3f(current__view->get_zero_elev());
- sstate.view_up = current__view->get_world_up();
- sstate.lon = current__view->getLongitude_deg()
- * SGD_DEGREES_TO_RADIANS;
- sstate.lat = current__view->getLatitude_deg()
- * SGD_DEGREES_TO_RADIANS;
- sstate.alt = current__view->getAltitudeASL_ft()
- * SG_FEET_TO_METER;
+ SGSkyState sstate;
+
+ SGVec3d viewPos = current__view->getViewPosition();
+ sstate.view_pos = toVec3f(viewPos);
+ SGGeod geodViewPos = SGGeod::fromCart(viewPos);
+ SGGeod geodZeroViewPos = SGGeod::fromGeodM(geodViewPos, 0);
+ sstate.zero_elev = toVec3f(SGVec3d::fromGeod(geodZeroViewPos));
+ SGQuatd hlOr = SGQuatd::fromLonLat(geodViewPos);
+ sstate.view_up = toVec3f(hlOr.backTransform(-SGVec3d::e3()));
+ sstate.lon = geodViewPos.getLongitudeRad();
+ sstate.lat = geodViewPos.getLatitudeRad();
+ sstate.alt = geodViewPos.getElevationM();
sstate.spin = l->get_sun_rotation();
sstate.gst = globals->get_time_params()->getGst();
- sstate.sun_ra = globals->get_ephem()->getSunRightAscension();
- sstate.sun_dec = globals->get_ephem()->getSunDeclination();
sstate.sun_dist = 50000.0 * sun_horiz_eff;
- sstate.moon_ra = globals->get_ephem()->getMoonRightAscension();
- sstate.moon_dec = globals->get_ephem()->getMoonDeclination();
sstate.moon_dist = 40000.0 * moon_horiz_eff;
sstate.sun_angle = l->get_sun_angle();
<< " moon_angle = " << l->moon_angle );
*/
- static SGSkyColor scolor;
+ SGSkyColor scolor;
scolor.sky_color = SGVec3f(l->sky_color().data());
+ scolor.adj_sky_color = SGVec3f(l->adj_sky_color().data());
scolor.fog_color = SGVec3f(l->adj_fog_color().data());
scolor.cloud_color = SGVec3f(l->cloud_color().data());
scolor.sun_angle = l->get_sun_angle();
scolor.moon_angle = l->get_moon_angle();
- scolor.nplanets = globals->get_ephem()->getNumPlanets();
- scolor.nstars = globals->get_ephem()->getNumStars();
- scolor.planet_data = globals->get_ephem()->getPlanets();
- scolor.star_data = globals->get_ephem()->getStars();
- thesky->reposition( sstate, delta_time_sec );
- thesky->repaint( scolor );
+ thesky->reposition( sstate, *globals->get_ephem(), delta_time_sec );
+ thesky->repaint( scolor, *globals->get_ephem() );
/*
SG_LOG( SG_GENERAL, SG_BULK,