+ // calculate our current position in cartesian space
+ scenery.center = scenery.next_center;
+ // printf("scenery center = %.2f %.2f %.2f\n", scenery.center.x(),
+ // scenery.center.y(), scenery.center.z());
+
+ FGViewerRPH *pilot_view =
+ (FGViewerRPH *)globals->get_viewmgr()->get_view( 0 );
+
+ pilot_view->set_geod_view_pos( cur_fdm_state->get_Longitude(),
+ cur_fdm_state->get_Lat_geocentric(),
+ cur_fdm_state->get_Altitude() *
+ FEET_TO_METER );
+ pilot_view->set_sea_level_radius( cur_fdm_state->
+ get_Sea_level_radius() *
+ FEET_TO_METER );
+ pilot_view->set_rph( cur_fdm_state->get_Phi(),
+ cur_fdm_state->get_Theta(),
+ cur_fdm_state->get_Psi() );
+
+#if 0
+ // this is a test, we are trying to match RPH and LookAt
+ // matrices
+ tv->set_geod_view_pos( cur_fdm_state->get_Longitude(),
+ cur_fdm_state->get_Lat_geocentric(),
+ cur_fdm_state->get_Altitude() *
+ FEET_TO_METER );
+ tv->set_sea_level_radius( cur_fdm_state->get_Sea_level_radius() *
+ FEET_TO_METER );
+ tv->set_view_forward( globals->get_current_view()->get_view_forward() );
+ tv->set_view_up( globals->get_current_view()->get_view_up() );
+
+ sgMat4 rph;
+ sgCopyMat4( rph, globals->get_current_view()->get_VIEW_ROT() );
+ cout << "RPH Matrix = " << endl;
+ int i, j;
+ for ( i = 0; i < 4; i++ ) {
+ for ( j = 0; j < 4; j++ ) {
+ printf("%10.4f ", rph[i][j]);
+ }
+ cout << endl;
+ }
+ sgMat4 la;
+ sgCopyMat4( la, tv->get_VIEW_ROT() );
+ cout << "LookAt Matrix = " << endl;
+ for ( i = 0; i < 4; i++ ) {
+ for ( j = 0; j < 4; j++ ) {
+ printf("%10.4f ", la[i][j]);
+ }
+ cout << endl;
+ }
+#endif
+