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.

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to