From: <as...@us...> - 2009-05-27 19:41:48
|
Revision: 7728 http://playerstage.svn.sourceforge.net/playerstage/?rev=7728&view=rev Author: asadat Date: 2009-05-27 19:39:57 +0000 (Wed, 27 May 2009) Log Message: ----------- a method was added to get the extent of the world and the models Modified Paths: -------------- code/stage/trunk/webstage/webstage.cc Modified: code/stage/trunk/webstage/webstage.cc =================================================================== --- code/stage/trunk/webstage/webstage.cc 2009-05-27 15:10:05 UTC (rev 7727) +++ code/stage/trunk/webstage/webstage.cc 2009-05-27 19:39:57 UTC (rev 7728) @@ -257,7 +257,9 @@ } virtual bool GetRangerData(const std::string& name, websim::Time& t, - std::vector<double>& ranges, std::string& response){ + std::vector<websim::Pose>& p, + std::vector<double>& ranges, + std::string& response){ t = GetTime(); Model* mod = world->GetModel( name.c_str() ); @@ -271,43 +273,7 @@ for(unsigned int i=0;i<count;i++) ranges.push_back(ranger->samples[i]); //std::copy(ranger->samples,ranger->samples+ranger->sensor_count,ranges.begin()); - - }else{ - - printf( "Warning: attempt to get ranger data for unrecognized ranger model of model \"%s\"\n", - name.c_str() ); - return false; - - - } - - } - else{ - printf( "Warning: attempt to get ranger data for unrecognized model \"%s\"\n", - name.c_str() ); - return false; - } - - return true; - -} - - virtual bool GetRangerCfgData(const std::string& name, - websim::Time& t, - std::vector<websim::Pose>& p, - std::string& response) - { - - - t = GetTime(); - - Model* mod = world->GetModel( name.c_str() ); - if( mod ) - { - ModelRanger* ranger = (ModelRanger*)mod->GetModel("ranger:0"); - - if(ranger){ - uint32_t count = ranger->sensor_count; + if(ranger->sensors) for(unsigned int i=0;i<count;i++){ websim::Pose pos; @@ -322,7 +288,7 @@ }else{ - printf( "Warning: attempt to get ranger Cfg data for unrecognized ranger model of model \"%s\"\n", + printf( "Warning: attempt to get ranger data for unrecognized ranger model of model \"%s\"\n", name.c_str() ); return false; @@ -331,16 +297,49 @@ } else{ - printf( "Warning: attempt to get ranger Cfg data for unrecognized model \"%s\"\n", + printf( "Warning: attempt to get ranger data for unrecognized model \"%s\"\n", name.c_str() ); return false; } - return true; + return true; +} + virtual bool GetModelExtent(const std::string& name, + double& x, + double& y, + double& z, + std::string& response) + { + if(name == "sim"){ + + stg_bounds3d_t ext = world->GetExtent(); + + x = ext.x.max - ext.x.min; + y = ext.y.max - ext.y.min; + z = ext.z.max - ext.z.min; - } + } + else + { + Model* mod = world->GetModel(name.c_str()); + if(mod){ + Geom ext = mod->GetGeom(); + + x = ext.size.x; + y = ext.size.y; + z = ext.size.z; + } + else + { + printf("Warning: attemp ti get the extent of unrecognized model \"%s\"\n", name.c_str()); + return false; + } + } + return true; + } + virtual websim::Time GetTime() { stg_usec_t stgtime = world->SimTimeNow(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |