From: <al...@us...> - 2008-06-10 15:41:53
|
Revision: 6530 http://playerstage.svn.sourceforge.net/playerstage/?rev=6530&view=rev Author: alexcb Date: 2008-06-10 15:41:55 -0700 (Tue, 10 Jun 2008) Log Message: ----------- fixed follow selected robot bug introduced by camera changes Modified Paths: -------------- code/stage/trunk/libstage/canvas.cc Modified: code/stage/trunk/libstage/canvas.cc =================================================================== --- code/stage/trunk/libstage/canvas.cc 2008-06-10 22:22:24 UTC (rev 6529) +++ code/stage/trunk/libstage/canvas.cc 2008-06-10 22:41:55 UTC (rev 6530) @@ -345,24 +345,7 @@ if( ! (showflags & STG_SHOW_TRAILS) || robot_camera ) glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - // if following selected, shift the view to above the selected robot - if( (showflags & STG_SHOW_FOLLOW) && last_selection && robot_camera == false ) - { - glLoadIdentity (); - double zclip = 20 * camera.getScale(); //hypot(world->Width(), world->Height()) * camera.getScale(); - glTranslatef( 0,0, - -zclip / 2.0 ); - // meter scale - glScalef ( camera.getScale(), camera.getScale(), camera.getScale() ); // zoom - - stg_pose_t gpose = last_selection->GetGlobalPose(); - - // and put it in the center of the window - //glRotatef( -rtod(gpose.a), 0,0,1 ); - glTranslatef( -gpose.x, -gpose.y, 0 ); - } - glPushMatrix(); // draw the world size rectangle in white, using the polygon offset @@ -553,7 +536,6 @@ //TODO find a better home for loading textures if( loaded_texture == false ) { - GLuint stall_id = TextureManager::getInstance().loadTexture( "assets/stall.png" ); TextureManager::getInstance()._stall_texture_id = stall_id; @@ -567,9 +549,6 @@ camera.SetProjection( w(), h(), extent.y.min, extent.y.max ); camera.Draw(); - - - // enable vertex arrays glEnableClientState( GL_VERTEX_ARRAY ); //glEnableClientState( GL_COLOR_ARRAY ); @@ -577,6 +556,16 @@ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); } + //Follow the selected robot + if( (showflags & STG_SHOW_FOLLOW) && last_selection ) { + stg_pose_t gpose = last_selection->GetGlobalPose(); + camera.setPose( gpose.x, gpose.y ); + + stg_bounds3d_t extent = world->GetExtent(); + camera.SetProjection( w(), h(), extent.y.min, extent.y.max ); + camera.Draw(); + } + renderFrame(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |