Revision: 7283
          http://playerstage.svn.sourceforge.net/playerstage/?rev=7283&view=rev
Author:   alexcb
Date:     2009-01-21 23:57:00 +0000 (Wed, 21 Jan 2009)

Log Message:
-----------
started to fix bug when changes to data filter doesnt redraw screen - fixed for 
custom visualizations

Modified Paths:
--------------
    code/stage/trunk/libstage/canvas.cc
    code/stage/trunk/libstage/model.cc
    code/stage/trunk/libstage/model_blinkenlight.cc
    code/stage/trunk/libstage/model_blobfinder.cc
    code/stage/trunk/libstage/model_camera.cc
    code/stage/trunk/libstage/model_fiducial.cc
    code/stage/trunk/libstage/model_laser.cc
    code/stage/trunk/libstage/model_position.cc
    code/stage/trunk/libstage/model_ranger.cc
    code/stage/trunk/libstage/option.cc
    code/stage/trunk/libstage/option.hh
    code/stage/trunk/libstage/stage.hh

Modified: code/stage/trunk/libstage/canvas.cc
===================================================================
--- code/stage/trunk/libstage/canvas.cc 2009-01-21 23:07:45 UTC (rev 7282)
+++ code/stage/trunk/libstage/canvas.cc 2009-01-21 23:57:00 UTC (rev 7283)
@@ -56,25 +56,25 @@
   last_selection( NULL ),
   interval(  50 ), //msec between redraws
   // initialize Option objects
-  showBlinken( "Blinkenlights", "show_blinkenlights", "", true ),
-  showBlocks( "Blocks", "show_blocks", "b", true  ),
-  showClock( "Clock", "show_clock", "c", true ),
-  showData( "Data", "show_data", "d", false ),
-  showFlags( "Flags", "show_flags", "l",  true ),
-  showFollow( "Follow", "show_follow", "f", false ),
-  showFootprints( "Footprints", "show_footprints", "o", false ),
-  showGrid( "Grid", "show_grid", "g", true ),
-  showOccupancy( "Debug/Occupancy", "show_occupancy", "^o", false ),
-  showScreenshots( "Save screenshots", "screenshots", "", false ),
-  showStatus( "Status", "show_status", "s", true ),
-  showTrailArrows( "Trails/Rising Arrows", "show_trailarrows", "^a", false ),
-  showTrailRise( "Trails/Rising blocks", "show_trailrise", "^r", false ),
-  showTrails( "Trails/Fast", "show_trailfast", "^f", false ),
-  showTree( "Debug/Tree", "show_tree", "^t", false ),
-  showBBoxes( "Debug/Bounding boxes", "show_boundingboxes", "^b", false  ),
-  showBlur( "Trails/Blur", "show_trailblur", "^d", false ),
-  pCamOn( "Perspective camera", "pcam_on", "r", false ),
-  visualizeAll( "Selected only", "vis_all", "^v", false ),
+  showBlinken( "Blinkenlights", "show_blinkenlights", "", true, world ),
+  showBlocks( "Blocks", "show_blocks", "b", true, world ),
+  showClock( "Clock", "show_clock", "c", true, world ),
+  showData( "Data", "show_data", "d", false, world ),
+  showFlags( "Flags", "show_flags", "l",  true, world ),
+  showFollow( "Follow", "show_follow", "f", false, world ),
+  showFootprints( "Footprints", "show_footprints", "o", false, world ),
+  showGrid( "Grid", "show_grid", "g", true, world ),
+  showOccupancy( "Debug/Occupancy", "show_occupancy", "^o", false, world ),
+  showScreenshots( "Save screenshots", "screenshots", "", false, world ),
+  showStatus( "Status", "show_status", "s", true, world ),
+  showTrailArrows( "Trails/Rising Arrows", "show_trailarrows", "^a", false, 
world ),
+  showTrailRise( "Trails/Rising blocks", "show_trailrise", "^r", false, world 
),
+  showTrails( "Trails/Fast", "show_trailfast", "^f", false, world ),
+  showTree( "Debug/Tree", "show_tree", "^t", false, world ),
+  showBBoxes( "Debug/Bounding boxes", "show_boundingboxes", "^b", false, world 
),
+  showBlur( "Trails/Blur", "show_trailblur", "^d", false, world ),
+  pCamOn( "Perspective camera", "pcam_on", "r", false, world ),
+  visualizeAll( "Selected only", "vis_all", "^v", false, world ),
   // and the rest 
   graphics( true ),
   world( world ),

Modified: code/stage/trunk/libstage/model.cc
===================================================================
--- code/stage/trunk/libstage/model.cc  2009-01-21 23:07:45 UTC (rev 7282)
+++ code/stage/trunk/libstage/model.cc  2009-01-21 23:57:00 UTC (rev 7283)
@@ -943,7 +943,7 @@
        Canvas* canvas = world_gui->GetCanvas();
        std::map< std::string, Option* >::iterator i = 
canvas->_custom_options.find( custom_visual->name() );
        if( i == canvas->_custom_options.end() ) {
-               Option* op = new Option( custom_visual->name(), 
custom_visual->name(), "", true );
+               Option* op = new Option( custom_visual->name(), 
custom_visual->name(), "", true, world );
                canvas->_custom_options[ custom_visual->name() ] = op;
                registerOption( op );
        }

Modified: code/stage/trunk/libstage/model_blinkenlight.cc
===================================================================
--- code/stage/trunk/libstage/model_blinkenlight.cc     2009-01-21 23:07:45 UTC 
(rev 7282)
+++ code/stage/trunk/libstage/model_blinkenlight.cc     2009-01-21 23:57:00 UTC 
(rev 7283)
@@ -51,7 +51,8 @@
 #include "stage_internal.hh"
 #include "option.hh"
 
-Option ModelBlinkenlight::showBlinkenData( "Show Blink", "show_blinken", "", 
true );
+//TODO make instance attempt to register an option (as customvisualizations do)
+Option ModelBlinkenlight::showBlinkenData( "Show Blink", "show_blinken", "", 
true, NULL );
 
                                                                                
        
 ModelBlinkenlight::ModelBlinkenlight( World* world,

Modified: code/stage/trunk/libstage/model_blobfinder.cc
===================================================================
--- code/stage/trunk/libstage/model_blobfinder.cc       2009-01-21 23:07:45 UTC 
(rev 7282)
+++ code/stage/trunk/libstage/model_blobfinder.cc       2009-01-21 23:57:00 UTC 
(rev 7283)
@@ -25,7 +25,8 @@
 static const unsigned int DEFAULT_BLOBFINDERSCANWIDTH = 80;
 static const unsigned int DEFAULT_BLOBFINDERSCANHEIGHT = 60;
 
-Option ModelBlobfinder::showBlobData( "Show Blobfinder", "show_blob", "", true 
);
+//TODO make instance attempt to register an option (as customvisualizations do)
+Option ModelBlobfinder::showBlobData( "Show Blobfinder", "show_blob", "", 
true, NULL );
 
 /**
   @ingroup model

Modified: code/stage/trunk/libstage/model_camera.cc
===================================================================
--- code/stage/trunk/libstage/model_camera.cc   2009-01-21 23:07:45 UTC (rev 
7282)
+++ code/stage/trunk/libstage/model_camera.cc   2009-01-21 23:57:00 UTC (rev 
7283)
@@ -17,7 +17,8 @@
 #include <sstream>
 #include <iomanip>
 
-Option ModelCamera::showCameraData( "Show Camera Data", "show_camera", "", 
true );
+//TODO make instance attempt to register an option (as customvisualizations do)
+Option ModelCamera::showCameraData( "Show Camera Data", "show_camera", "", 
true, NULL );
 
 static const Size DEFAULT_SIZE( 0.1, 0.07, 0.05 );
 static const char DEFAULT_GEOM_COLOR[] = "black";

Modified: code/stage/trunk/libstage/model_fiducial.cc
===================================================================
--- code/stage/trunk/libstage/model_fiducial.cc 2009-01-21 23:07:45 UTC (rev 
7282)
+++ code/stage/trunk/libstage/model_fiducial.cc 2009-01-21 23:57:00 UTC (rev 
7283)
@@ -23,7 +23,8 @@
 const stg_radians_t DEFAULT_FIDUCIAL_FOV = M_PI;
 const stg_watts_t DEFAULT_FIDUCIAL_WATTS = 10.0;
 
-Option ModelFiducial::showFiducialData( "Show Fiducial", "show_fiducial", "", 
true );
+//TODO make instance attempt to register an option (as customvisualizations do)
+Option ModelFiducial::showFiducialData( "Show Fiducial", "show_fiducial", "", 
true, NULL );
 
 /** 
   @ingroup model
@@ -38,9 +39,9 @@
 @par Summary and default values
 
 @verbatim
-fiducialfinder
+fiducial
 (
-  # fiducialfinder properties
+  # fiducial properties
   range_min 0.0
   range_max 8.0
   range_max_id 5.0
@@ -68,8 +69,8 @@
                                                                                
                Model* parent )
   : Model( world, parent, MODEL_TYPE_FIDUCIAL )
 {
-       PRINT_DEBUG2( "Constructing ModelFiducial %d (%s)\n", 
-                       id, typestr );
+       //PRINT_DEBUG2( "Constructing ModelFiducial %d (%s)\n", 
+       //              id, typestr );
 
        // assert that Update() is reentrant for this derived model
        thread_safe = true;

Modified: code/stage/trunk/libstage/model_laser.cc
===================================================================
--- code/stage/trunk/libstage/model_laser.cc    2009-01-21 23:07:45 UTC (rev 
7282)
+++ code/stage/trunk/libstage/model_laser.cc    2009-01-21 23:57:00 UTC (rev 
7283)
@@ -28,8 +28,9 @@
 static const unsigned int DEFAULT_RESOLUTION = 1;
 static const char* DEFAULT_COLOR = "blue";
 
-Option ModelLaser::showLaserData( "Laser scans", "show_laser", "", true );
-Option ModelLaser::showLaserStrikes( "Laser strikes", "show_laser_strikes", 
"", false );
+//TODO make instance attempt to register an option (as customvisualizations do)
+Option ModelLaser::showLaserData( "Laser scans", "show_laser", "", true, NULL 
);
+Option ModelLaser::showLaserStrikes( "Laser strikes", "show_laser_strikes", 
"", false, NULL );
 
 /**
 @ingroup model

Modified: code/stage/trunk/libstage/model_position.cc
===================================================================
--- code/stage/trunk/libstage/model_position.cc 2009-01-21 23:07:45 UTC (rev 
7282)
+++ code/stage/trunk/libstage/model_position.cc 2009-01-21 23:57:00 UTC (rev 
7283)
@@ -82,8 +82,9 @@
 const stg_position_localization_mode_t POSITION_LOCALIZATION_DEFAULT = 
STG_POSITION_LOCALIZATION_GPS;
 const stg_position_drive_mode_t POSITION_DRIVE_DEFAULT  = 
STG_POSITION_DRIVE_DIFFERENTIAL;
 
-Option ModelPosition::showCoords( "Position Coordinates", "show_coords", "", 
false );
-Option ModelPosition::showWaypoints( "Position Waypoints", "show_waypoints", 
"", false );
+//TODO make instance attempt to register an option (as customvisualizations do)
+Option ModelPosition::showCoords( "Position Coordinates", "show_coords", "", 
false, NULL );
+Option ModelPosition::showWaypoints( "Position Waypoints", "show_waypoints", 
"", false, NULL );
 
 
 ModelPosition::ModelPosition( World* world, 

Modified: code/stage/trunk/libstage/model_ranger.cc
===================================================================
--- code/stage/trunk/libstage/model_ranger.cc   2009-01-21 23:07:45 UTC (rev 
7282)
+++ code/stage/trunk/libstage/model_ranger.cc   2009-01-21 23:57:00 UTC (rev 
7283)
@@ -95,8 +95,9 @@
 static const char RANGER_CONFIG_COLOR[] = "gray90";
 static const char RANGER_GEOM_COLOR[] = "orange";
 
-Option ModelRanger::showRangerData( "Ranger ranges", "show_ranger", "", true );
-Option ModelRanger::showRangerTransducers( "Ranger transducers", 
"show_ranger_transducers", "", false );
+//TODO make instance attempt to register an option (as customvisualizations do)
+Option ModelRanger::showRangerData( "Ranger ranges", "show_ranger", "", true, 
NULL );
+Option ModelRanger::showRangerTransducers( "Ranger transducers", 
"show_ranger_transducers", "", false, NULL );
 
 
 ModelRanger::ModelRanger( World* world, 

Modified: code/stage/trunk/libstage/option.cc
===================================================================
--- code/stage/trunk/libstage/option.cc 2009-01-21 23:07:45 UTC (rev 7282)
+++ code/stage/trunk/libstage/option.cc 2009-01-21 23:57:00 UTC (rev 7283)
@@ -3,13 +3,14 @@
 using namespace Stg;
 
 
-Option::Option( std::string n, std::string tok, std::string key, bool v ) : 
+Option::Option( std::string n, std::string tok, std::string key, bool v, 
World* world ) : 
 optName( n ), 
 value( v ), 
 wf_token( tok ), 
 shortcut( key ), 
 menu( NULL ),
-menuCb( NULL )
+menuCb( NULL ),
+_world( world )
 { }
 
 Fl_Menu_Item* getMenuItem( Fl_Menu_* menu, int i ) {
@@ -61,4 +62,12 @@
                Fl_Menu_Item* item = getMenuItem( menu, menuIndex );
                value ? item->set() : item->clear();
        }
+
+       if( _world ) {
+               WorldGui* wg = dynamic_cast< WorldGui* >( _world );
+               if( wg == NULL ) return;
+               Canvas* canvas = wg->GetCanvas();
+               canvas->invalidate();
+               canvas->redraw();
+       }
 }

Modified: code/stage/trunk/libstage/option.hh
===================================================================
--- code/stage/trunk/libstage/option.hh 2009-01-21 23:07:45 UTC (rev 7282)
+++ code/stage/trunk/libstage/option.hh 2009-01-21 23:57:00 UTC (rev 7283)
@@ -8,6 +8,7 @@
 #include <FL/Fl_Menu_Item.H>
 
 namespace Stg {
+       class World;
        /** option.hh
         Class that encapsulates a boolean and pairs it with a string 
description
         Used to pass settings between the GUI and the drawing classes
@@ -28,9 +29,10 @@
                int menuIndex;
                Fl_Callback* menuCb;
                Fl_Widget* menuCbWidget;
+               World* _world;
          
        public:
-               Option( std::string n, std::string tok, std::string key, bool v 
);        
+               Option( std::string n, std::string tok, std::string key, bool 
v, World *world );          
 
                const std::string name() const { return optName; }
                inline bool isEnabled() const { return value; }

Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh  2009-01-21 23:07:45 UTC (rev 7282)
+++ code/stage/trunk/libstage/stage.hh  2009-01-21 23:57:00 UTC (rev 7283)
@@ -1301,6 +1301,7 @@
     friend class Canvas;
     friend class ModelCamera;
     friend class Model;
+    friend class Option;
 
   private:
 


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

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to