]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/main.cxx
Added some early support for a cheezy external view of TuX.
[flightgear.git] / src / Main / main.cxx
index a072216fec2d28d47b07c043e931d9fdf4ce9f96..f141f3bf43f2878ddad496658f7dd907b50736c3 100644 (file)
@@ -378,7 +378,7 @@ static void fgRenderFrame( void ) {
            // xglMaterialfv (GL_FRONT, GL_DIFFUSE, white);
        }
 
-       global_tile_mgr.render();
+       // global_tile_mgr.render();
 
        // ssg test
 
@@ -402,17 +402,15 @@ static void fgRenderFrame( void ) {
 
        sgMat4 sgTRANS;
        sgMakeTransMat4( sgTRANS, 
-                        current_view.view_pos.x() 
-                        + current_view.view_forward[0] * 20,
-                        current_view.view_pos.y() 
-                        + current_view.view_forward[1] * 20,
-                        current_view.view_pos.z() 
-                        + current_view.view_forward[2] * 20 );
-
-       sgMat4 sgTMP;
+                        current_view.view_pos.x(),
+                        current_view.view_pos.y(),
+                        current_view.view_pos.z() );
+
+       // sgMat4 sgTMP;
        sgMat4 sgTUX;
-       sgMultMat4( sgTMP, current_view.sgUP, sgTRANS );
-       sgMultMat4( sgTUX, current_view.sgLARC_TO_SSG, sgTMP );
+       // sgMultMat4( sgTMP, current_view.sgUP, sgTRANS );
+       // sgMultMat4( sgTUX, current_view.sgLARC_TO_SSG, sgTMP );
+       sgMultMat4( sgTUX, current_view.sgVIEW_ROT, sgTRANS );
        
        sgCoord tuxpos;
        sgSetCoord( &tuxpos, sgTUX );
@@ -423,9 +421,20 @@ static void fgRenderFrame( void ) {
                         current_view.view_pos.y(),
                         current_view.view_pos.z() );
        sgMat4 sgVIEW;
-       sgMultMat4( sgVIEW, current_view.sgVIEW, sgTRANS );
+
+       if ( current_view.view_mode == FGView::FG_VIEW_FIRST_PERSON ) {
+           sgCopyMat4( sgVIEW, current_view.sgVIEW );
+       } else if ( current_view.view_mode == FGView::FG_VIEW_FOLLOW ) {
+           FGMat4Wrapper tmp = current_view.follow.front();
+           sgCopyMat4( sgVIEW, tmp.m );
+       }
+       if ( current_view.follow.size() > 15 ) {
+           current_view.follow.pop_front();
+       }
+
        ssgSetCamera( sgVIEW );
-       // ssgSetCamera( current_view.sgVIEW );
+
+       global_tile_mgr.prep_ssg_nodes();
        ssgCullAndDraw( scene );
 
        xglDisable( GL_TEXTURE_2D );