Revision: 6703
http://playerstage.svn.sourceforge.net/playerstage/?rev=6703&view=rev
Author: alexcb
Date: 2008-06-27 11:43:35 -0700 (Fri, 27 Jun 2008)
Log Message:
-----------
fixed grid drawing issue when camera model active
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-27 17:18:57 UTC (rev 6702)
+++ code/stage/trunk/libstage/canvas.cc 2008-06-27 18:43:35 UTC (rev 6703)
@@ -406,7 +406,7 @@
void StgCanvas::DrawGlobalGrid()
{
-
+ glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
stg_bounds3d_t bounds = world->GetExtent();
char str[16];
@@ -490,16 +490,16 @@
// 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( showflags & STG_SHOW_GRID )
DrawGlobalGrid();
@@ -525,7 +525,7 @@
for( GList* it=selected_models; it; it=it->next )
((StgModel*)it->data)->DrawSelected();
-
+
// draw the models
if( showflags ) // if any bits are set there's something to draw
{
Modified: code/stage/trunk/libstage/model_camera.cc
===================================================================
--- code/stage/trunk/libstage/model_camera.cc 2008-06-27 17:18:57 UTC (rev
6702)
+++ code/stage/trunk/libstage/model_camera.cc 2008-06-27 18:43:35 UTC (rev
6703)
@@ -9,6 +9,7 @@
///////////////////////////////////////////////////////////////////////////
#define CAMERA_HEIGHT 0.5
+#define CAMERA_FAR_CLIP 8.0
//#define DEBUG 1
#include "stage_internal.hh"
@@ -90,6 +91,8 @@
_camera.setFov( wf->ReadLength( wf_entity, "horizfov",
_camera.horizFov() ), wf->ReadLength( wf_entity, "vertfov", _camera.vertFov()
) );
_camera.setPitch( wf->ReadLength( wf_entity, "pitch", _camera.pitch() )
);
+
+ _camera.setClip( wf->ReadLength( wf_entity, "nearclip",
_camera.nearClip() ), wf->ReadLength( wf_entity, "farclip", CAMERA_FAR_CLIP )
);
_yaw_offset = wf->ReadLength( wf_entity, "yaw", _yaw_offset );
_width = wf->ReadLength( wf_entity, "width", _width );
@@ -142,6 +145,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();
+
+ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
_canvas->DrawFloor();
_canvas->DrawBlocks();
Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh 2008-06-27 17:18:57 UTC (rev 6702)
+++ code/stage/trunk/libstage/stage.hh 2008-06-27 18:43:35 UTC (rev 6703)
@@ -1867,6 +1867,9 @@
return _z_near * _z_far / ( _z_far - z_buf_val * (
_z_far - _z_near ) );
}
inline void scroll( float dy ) { _z += dy; }
+ inline float nearClip( void ) const { return _z_near; }
+ inline float farClip( void ) const { return _z_far; }
+ inline void setClip( float near, float far ) { _z_far = far;
_z_near = near; }
};
class StgOrthoCamera : public StgCamera
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit