Revision: 6699
          http://playerstage.svn.sourceforge.net/playerstage/?rev=6699&view=rev
Author:   jeremy_asher
Date:     2008-06-26 16:03:15 -0700 (Thu, 26 Jun 2008)

Log Message:
-----------
Change to have camera model call DrawFloor and DrawBlocks directly

Modified Paths:
--------------
    code/stage/trunk/libstage/canvas.cc
    code/stage/trunk/libstage/model_camera.cc
    code/stage/trunk/libstage/stage.hh

Modified: code/stage/trunk/libstage/canvas.cc
===================================================================
--- code/stage/trunk/libstage/canvas.cc 2008-06-26 22:42:56 UTC (rev 6698)
+++ code/stage/trunk/libstage/canvas.cc 2008-06-26 23:03:15 UTC (rev 6699)
@@ -467,19 +467,40 @@
        glEnd();
 }
 
-void StgCanvas::renderFrame( bool robot_camera )
-{      
-       //create a localy scopped showflags variable - WARNING: changing it 
will NOT change the class instance's value
-       uint32_t showflags = this->showflags;
-       if( robot_camera == true )
-               showflags = STG_SHOW_BLOCKS;
-       
-       if( ! (showflags & STG_SHOW_TRAILS) || robot_camera == true )
+void StgCanvas::DrawBlocks() 
+{
+       for( GList* it=world->StgWorld::children; it; it=it->next )
+       {
+               StgModel* mod = ((StgModel*)it->data);
+               
+               if( mod->displaylist == 0 )
+                       mod->displaylist = glGenLists(1);
+               
+               if( mod->rebuild_displaylist )
+               {
+                       //printf( "Model %s is dirty\n", mod->Token() );        
                                 
+                       mod->BuildDisplayList( showflags ); // ready to be 
rendered
+               }
+               
+               // move into this model's local coordinate frame
+               glPushMatrix();
+               gl_pose_shift( &mod->pose );
+               gl_pose_shift( &mod->geom.pose );
+               
+               // render the pre-recorded graphics for this model and
+               // its children
+               glCallList( mod->displaylist );
+               
+               glPopMatrix();
+       }
+}
+
+void StgCanvas::renderFrame()
+{              
+       if( ! (showflags & STG_SHOW_TRAILS) )
                glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
 
-       if( robot_camera == true )
-               DrawFloor();
-       else if( showflags & STG_SHOW_GRID )
+       if( showflags & STG_SHOW_GRID )
                DrawGlobalGrid();
 
 
@@ -541,30 +562,7 @@
 
                if( showflags & STG_SHOW_BLOCKS )
                {
-                       for( GList* it=world->StgWorld::children; it; 
it=it->next )
-                       {
-                               StgModel* mod = ((StgModel*)it->data);
-
-                               if( mod->displaylist == 0 )
-                                 mod->displaylist = glGenLists(1);
-
-                               if( mod->rebuild_displaylist )
-                                 {
-                                        //printf( "Model %s is dirty\n", 
mod->Token() );                                        
-                                        mod->BuildDisplayList( showflags ); // 
ready to be rendered
-                                 }
-
-                               // move into this model's local coordinate frame
-                               glPushMatrix();
-                               gl_pose_shift( &mod->pose );
-                               gl_pose_shift( &mod->geom.pose );
-
-                               // render the pre-recorded graphics for this 
model and
-                               // its children
-                               glCallList( mod->displaylist );
-
-                               glPopMatrix();
-                       }
+                       DrawBlocks();
                }
 
                //mod->Draw( showflags ); // draw the stuff that changes every 
update

Modified: code/stage/trunk/libstage/model_camera.cc
===================================================================
--- code/stage/trunk/libstage/model_camera.cc   2008-06-26 22:42:56 UTC (rev 
6698)
+++ code/stage/trunk/libstage/model_camera.cc   2008-06-26 23:03:15 UTC (rev 
6699)
@@ -140,7 +140,8 @@
        _camera.setYaw( rtod( parent->GetGlobalPose().a ) - 90.0 - _yaw_offset 
); //-90.0 points the camera infront of the robot instead of pointing right
        _camera.Draw();
        
-       _canvas->renderFrame( true );
+       _canvas->DrawFloor();
+       _canvas->DrawBlocks();
        
        //read depth buffer
        glReadPixels(0, 0, _width, _height,

Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh  2008-06-26 22:42:56 UTC (rev 6698)
+++ code/stage/trunk/libstage/stage.hh  2008-06-26 23:03:15 UTC (rev 6699)
@@ -1955,7 +1955,6 @@
        void DrawRays();
        void ClearRays();
        void DrawGlobalGrid();
-       void DrawFloor(); //simpler floor compared to grid
 
        public:
 
@@ -1968,8 +1967,9 @@
   void Screenshot();
 
        void FixViewport(int W,int H);
-       //robot_camera = true
-       virtual void renderFrame( bool robot_camera = false );
+       void DrawFloor(); //simpler floor compared to grid
+       void DrawBlocks();
+       virtual void renderFrame();
        virtual void draw();
        virtual int handle( int event );
        void resize(int X,int Y,int W,int H);


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to