Revision: 7714
          http://playerstage.svn.sourceforge.net/playerstage/?rev=7714&view=rev
Author:   natepak
Date:     2009-05-23 18:08:49 +0000 (Sat, 23 May 2009)

Log Message:
-----------
More ode consolidation

Modified Paths:
--------------
    code/gazebo/branches/bullet/server/CMakeLists.txt
    code/gazebo/branches/bullet/server/physics/Geom.cc
    code/gazebo/branches/bullet/server/physics/Geom.hh
    code/gazebo/branches/bullet/server/physics/Mass.cc
    code/gazebo/branches/bullet/server/physics/Mass.hh
    code/gazebo/branches/bullet/server/physics/ode/ODEGeom.cc
    code/gazebo/branches/bullet/server/physics/ode/ODEGeom.hh
    code/gazebo/branches/bullet/server/physics/ode/ODEPhysics.cc
    code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.cc
    code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.hh
    code/gazebo/branches/bullet/server/sensors/ir/IRSensor.hh

Removed Paths:
-------------
    code/gazebo/branches/bullet/build.py

Deleted: code/gazebo/branches/bullet/build.py
===================================================================
--- code/gazebo/branches/bullet/build.py        2009-05-23 16:29:36 UTC (rev 
7713)
+++ code/gazebo/branches/bullet/build.py        2009-05-23 18:08:49 UTC (rev 
7714)
@@ -1,253 +0,0 @@
-import sys
-import SCons.Util
-import SCons.SConf as SConf
-import string
-import os
-import re
-
-version = '0.8-pre3'
-
-#
-# Function used to test for ODE library, and TriMesh support
-#
-ode_test_source_file = """
-#include <ode/ode.h>
-int main()
-{
-  dGeomTriMeshDataCreate();
-  return 0;
-}
-"""
-
-def CreateRelease():
-  os.system('scons -c')
-  sysCmd = 'mkdir gazebo-'+version
-  os.system(sysCmd)
-  sysCmd = "cp -r server Media doc examples libgazebo player worlds SConstruct 
AUTHORS ChangeLog NEWS README TODO build.py gazebo-"+version
-  os.system(sysCmd)
-  sysCmd = "find gazebo-"+version+"/. -name .svn -exec rm -rf {} \; 
2>>/dev/null"
-  os.system(sysCmd)
-  print 'Creating tarball gazebo-'+version+'.tar.gz'
-  sysCmd = 'tar czf gazebo-'+version+'.tar.gz gazebo-'+version
-  os.system(sysCmd)
-  sysCmd = "rm -rf gazebo-"+version
-  os.system(sysCmd)
-
-  
-def CheckPkgConfig(context, version):
-  context.Message( 'Checking for pkg-config... ' )
-  ret = context.TryAction('pkg-config --atleast-pkgconfig-version=%s' % 
version)[0]
-  context.Result( ret )
-  return ret
-
-def CheckPkg(context, name):
-  context.Message( 'Checking for %s...' % name)
-  pkg_config_cmd = "pkg-config"
-  if os.environ.has_key("PKG_CONFIG_PATH"):
-    pkg_config_cmd = "PKG_CONFIG_PATH="+os.environ["PKG_CONFIG_PATH"]+" 
pkg-config"  
-  action = '%s --exists \'%s\'' % (pkg_config_cmd, name);
-
-  ret = context.TryAction(action)[0]
-  context.Result(ret)
-  return ret
-
-def CheckODELib(context):
-  context.Message('Checking for ODE trimesh support...')
-  oldLibs = context.env['LIBS']
-  context.env.Replace(LIBS='ode')
-  result = context.TryLink(ode_test_source_file, '.cpp')
-  context.Result(result)
-  context.env.Replace(LIBS=oldLibs)
-  return result
-
-#
-# Create the pkg-config file
-#
-def createPkgConfig(target,source, env):
-  f = open(str(target[0]), 'wb')
-  prefix = source[0].get_contents()
-  f.write('prefix=' + prefix + '\n')
-  f.write('Name: gazebo\n')
-  f.write('Description: Simplified interface to Player\n')
-  f.write('Version:' + version + '\n')
-  f.write('Requires: OGRE\n')
-  f.write('Libs: -L' + prefix + '/lib -lgazeboServer -lode\n')
-  f.write('Cflags: -I' + prefix + '/include\n')
-  f.close()
-
-#
-# Create the .gazeborc file
-#
-def createGazeborc(target, source, env):
-  f = open(str(target[0]),'wb')
-  prefix=source[0].get_contents()
-  ogre=commands.getoutput('pkg-config --variable=plugindir OGRE')
-  f.write('<?xml version="1.0"?>\n')
-  f.write('<gazeborc>\n')
-  f.write('  <gazeboPath>' + prefix + '/share/gazebo</gazeboPath>\n')
-  f.write('  <ogrePath>' + ogre + '</ogrePath>\n')
-  f.write('  <RTTMode>PBuffer</RTTMode>\n')
-  f.write('</gazeborc>\n')
-  f.close()
-  # Use a python command because scons won't copy files to a home directory
-  if not os.path.exists(os.environ['HOME']+'/.gazeborc'):
-    os.system('cp gazeborc ~/.gazeborc')
-
-
-
-
-#
-# Add optimizations to compiler flags based on the architecture
-#
-#TODO:search architecture
-def optimize_for_cpu(env):
-  cpuAtr = ['mmx', 'sse', 'sse2', 'sse3', '3dnow']
-  line_atr =""
-  if (os.path.isfile("/proc/cpuinfo")):
-    f_proc = open("/proc/cpuinfo")
-    for line in f_proc:
-      if (re.match('flags', line)): 
-        for atr in cpuAtr:
-          if (re.search(atr, line) and not re.search(atr, line_atr)):
-            line_atr+= "-m" + atr + " "
-            
-  env['CCFLAGS'] += Split (line_atr)
-  print "detected CPU atributes: " +line_atr
-
-
-def Config(env, packages):
-  simpleEnv = Environment(CC="g++")
-
-  # Setup the configuration environment.
-  conf = Configure(simpleEnv, custom_tests = {'CheckODELib' : CheckODELib,
-                                        'CheckPkgConfig' : CheckPkgConfig,
-                                        'CheckPkg' : CheckPkg})
-  
-  print '\n=== 3rd Party Dependency Checks === '
-  
-  # Check for pkg-config 
-  if not conf.CheckPkgConfig(PKG_CONFIG_VERSION):
-    print '  Error: pkg-config version >= ' + PKG_CONFIG_VERSION + ' not 
found.'
-    Exit(1)
-  
-  #
-  # Parse all the pacakge configurations
-  #
-  for key in packages:
-    pkgcfg =''
-    header=''
-    lib=''
-    check=''
-    requred = True
-
-    if packages[key].has_key('pkgcfg'):
-      pkgcfg = packages[key]['pkgcfg']
-
-    if packages[key].has_key('header'):
-      header = packages[key]['header']
-
-    if packages[key].has_key('lib'):
-      lib = packages[key]['lib']
-
-    if packages[key].has_key('check'):
-      check = packages[key]['check']
-
-    if packages[key].has_key('required'):
-      required = packages[key]['required']
-
-
-    msg = packages[key]['msg']
-    web = packages[key]['web']
-    flags = packages[key]['flags']
-
-    docfg = True
-    valid = True
-  
-    # Check for the package
-    if check and not conf.CheckPkg(check):
-      docfg = False
-      valid = False
-      print '  !!' + msg + key + ' not found.'
-      print '  See: ' + web
-      if required:
-        env['HAS_ERROR'] = True;
- 
-    # Try parsing the pkg-config
-    if docfg and pkgcfg:
-      try:
-        if not check:
-          print "Checking for "+key+"...",
-        if os.environ.has_key("PKG_CONFIG_PATH"):
-          pkgcfg = "PKG_CONFIG_PATH="+os.environ["PKG_CONFIG_PATH"]+" "+pkgcfg;
-        env.ParseConfig(pkgcfg)
-        if not check:
-          print 'yes'
-      except OSError,e:
-        valid = False
-        if not check:
-          print 'no'
-        print "Unable to parse config ["+pkgcfg+"]"
-        print '  !!' + msg + key + ' not found.'
-        print '  See: ' + web
-        if required:
-          env['HAS_ERROR'] = True;
-    elif header and lib:
-      if not conf.CheckLibWithHeader(lib, header, 'c'):
-        valid = False
-        print msg
-      else:
-        env.Append(LIBS = lib)
-        valid = True
-  
-    # If valid so far, apply any flags to the environment
-    if valid:
-        env.Append(CCFLAGS = flags)
-  
-  # Check for trimesh support in ODE
-  #if not conf.CheckODELib():
-  #  print '  Error: ODE not compiled with trimesh support.'
-  #  Exit(1)
-
-  if not conf.CheckCHeader('avformat.h'):
-    if conf.CheckCHeader('libavformat/avformat.h'):
-      env.Append( CCFLAGS = '-DSPECIAL_LIBAVFORMAT')
-    else:
-      print "Unable to find libavformat"
-
-  if not conf.CheckCHeader('avcodec.h'):
-    if conf.CheckCHeader('libavcodec/avcodec.h'):
-      env.Append( CCFLAGS = '-DSPECIAL_LIBAVCODEC')
-    else:
-      print "Unable to find libavcodec"
-
-    
-  simpleEnv = conf.Finish()
-  
-  #simpleenv = Environment(CPPPATH="/usr/include/AL")
-  #simpleconf = Configure(simpleenv)
-  #
-  ## Test for libtool
-  #if not simpleconf.CheckLibWithHeader('ltdl','ltdl.h','CXX'):
-  #  print "  Warning: Failed to find ltdl, no plugin support will be included"
-  #  env["HAVE_LTDL"]=False
-  #else:
-  #  env["HAVE_LTDL"]=True
-  #  env.Append(CCFLAGS = " -DHAVE_LTDL")
-  #  env.Append(LIBS = "ltdl")
- 
-  #if not simpleconf.CheckHeader('boost/signal.hpp',language='C++'):
-  #  print "Error: Boost signals not found. Please install."
-  #  Exit(0)
-  #
-  #simpleconf.Finish()
-  
-  # # Check for boost_python
-  #if not conf.CheckLibWithHeader('boost_python', 'boost/python.hpp', 'C'):
-  #  print 'Did not find libboost_python exiting'
-  #  Exit(1)
-  #else:
-  #  conf.env.Append(LIBS="boost_python")
-  
-  print '=== Done ===\n'
-
-

Modified: code/gazebo/branches/bullet/server/CMakeLists.txt
===================================================================
--- code/gazebo/branches/bullet/server/CMakeLists.txt   2009-05-23 16:29:36 UTC 
(rev 7713)
+++ code/gazebo/branches/bullet/server/CMakeLists.txt   2009-05-23 18:08:49 UTC 
(rev 7714)
@@ -119,7 +119,7 @@
 
 )
 
-TARGET_LINK_LIBRARIES( gazebo_server ${ODE_LIBRARIES} ${libtool_library} 
gazebo)
+TARGET_LINK_LIBRARIES( gazebo_server ${libtool_library} gazebo)
 
 INSTALL (TARGETS gazebo-exec DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
 INSTALL (TARGETS gazebo_server DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)

Modified: code/gazebo/branches/bullet/server/physics/Geom.cc
===================================================================
--- code/gazebo/branches/bullet/server/physics/Geom.cc  2009-05-23 16:29:36 UTC 
(rev 7713)
+++ code/gazebo/branches/bullet/server/physics/Geom.cc  2009-05-23 18:08:49 UTC 
(rev 7714)
@@ -381,3 +381,31 @@
 {
   return this->contact;
 }
+
+////////////////////////////////////////////////////////////////////////////////
+/// Set the contact force
+void Geom::SetContactForce(double x, double y, double z)
+{
+  this->contactForce.Set(x,y,z);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Get the contact force
+Vector3 Geom::GetContactForce() const
+{
+  return this->contactForce;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Set the contact torque
+void Geom::SetContactTorque(double x, double y, double z)
+{
+  this->contactTorque.Set(x,y,z);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Set the contact torque
+Vector3 Geom::GetContactTorque() const
+{
+  return this->contactTorque;
+}

Modified: code/gazebo/branches/bullet/server/physics/Geom.hh
===================================================================
--- code/gazebo/branches/bullet/server/physics/Geom.hh  2009-05-23 16:29:36 UTC 
(rev 7713)
+++ code/gazebo/branches/bullet/server/physics/Geom.hh  2009-05-23 18:08:49 UTC 
(rev 7714)
@@ -145,6 +145,19 @@
     /// \brief Get a pointer tot the contact Params
     public: ContactParams *GetContactParams();
 
+    /// \brief Set the contact force
+    public: void SetContactForce(double x, double y, double z);
+
+    /// \brief Get the contact force
+    public: Vector3 GetContactForce() const;
+
+    /// \brief Set the contact torque
+    public: void SetContactTorque(double x, double y, double z);
+
+    /// \brief Set the contact torque
+    public: Vector3 GetContactTorque() const;
+
+
     ///  Contact parameters
     protected: ContactParams *contact; 
 
@@ -175,6 +188,8 @@
     protected: PhysicsEngine *physicsEngine;
 
     protected: Mass *mass;
+
+    protected: Vector3 contactForce, contactTorque;
   };
 
   /// \}

Modified: code/gazebo/branches/bullet/server/physics/Mass.cc
===================================================================
--- code/gazebo/branches/bullet/server/physics/Mass.cc  2009-05-23 16:29:36 UTC 
(rev 7713)
+++ code/gazebo/branches/bullet/server/physics/Mass.cc  2009-05-23 18:08:49 UTC 
(rev 7714)
@@ -62,7 +62,7 @@
 
 
////////////////////////////////////////////////////////////////////////////////
 /// Set the mass
-double Mass::SetMass(double m)
+void Mass::SetMass(double m)
 {
   this->mass = m;
 }

Modified: code/gazebo/branches/bullet/server/physics/Mass.hh
===================================================================
--- code/gazebo/branches/bullet/server/physics/Mass.hh  2009-05-23 16:29:36 UTC 
(rev 7713)
+++ code/gazebo/branches/bullet/server/physics/Mass.hh  2009-05-23 18:08:49 UTC 
(rev 7714)
@@ -48,7 +48,7 @@
     public: virtual ~Mass();
 
     /// \brief Set the mass
-    public: double SetMass(double m);
+    public: void SetMass(double m);
 
     /// \brief Get the mass value
     public: double GetMass() const;

Modified: code/gazebo/branches/bullet/server/physics/ode/ODEGeom.cc
===================================================================
--- code/gazebo/branches/bullet/server/physics/ode/ODEGeom.cc   2009-05-23 
16:29:36 UTC (rev 7713)
+++ code/gazebo/branches/bullet/server/physics/ode/ODEGeom.cc   2009-05-23 
18:08:49 UTC (rev 7714)
@@ -371,20 +371,6 @@
 }
 
 
////////////////////////////////////////////////////////////////////////////////
-/// Set the contact joint id
-void ODEGeom::SetContactJointID(dJointID id)
-{
-  this->contactId = id;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-/// Get the contact joint id
-dJointID ODEGeom::GetContactJointID() const
-{
-  return this->contactId;
-}
-
-////////////////////////////////////////////////////////////////////////////////
 /// Get the bodies space ID
 dSpaceID ODEGeom::GetSpaceId() const
 {

Modified: code/gazebo/branches/bullet/server/physics/ode/ODEGeom.hh
===================================================================
--- code/gazebo/branches/bullet/server/physics/ode/ODEGeom.hh   2009-05-23 
16:29:36 UTC (rev 7713)
+++ code/gazebo/branches/bullet/server/physics/ode/ODEGeom.hh   2009-05-23 
18:08:49 UTC (rev 7714)
@@ -120,21 +120,12 @@
     /// \brief Get the bounding box, defined by the physics engine
     public: virtual void GetBoundingBox( Vector3 &min, Vector3 &max );
 
-    /// \brief Set the contact joint id
-    public: void SetContactJointID(dJointID id);
-
-    /// \brief Get the contact joint id
-    public: dJointID GetContactJointID() const;
-
     /// \brief Get the geom's space ID
     public: dSpaceID GetSpaceId() const;
 
     /// \brief Set the geom's space ID
     public: void SetSpaceId(dSpaceID spaceid);
 
-    /// Contact joint id
-    private: dJointID contactId; 
-  
     /// ID for the transform geom
     protected: dGeomID transId;
 

Modified: code/gazebo/branches/bullet/server/physics/ode/ODEPhysics.cc
===================================================================
--- code/gazebo/branches/bullet/server/physics/ode/ODEPhysics.cc        
2009-05-23 16:29:36 UTC (rev 7713)
+++ code/gazebo/branches/bullet/server/physics/ode/ODEPhysics.cc        
2009-05-23 18:08:49 UTC (rev 7714)
@@ -436,6 +436,7 @@
   ODEGeom *geom2 = NULL;
   int i;
   int numc = 0;
+  dJointFeedback *feedback;
   dContactGeom contactGeoms[64];
   dContact contact;
 
@@ -512,11 +513,19 @@
         dJointID c = dJointCreateContact (self->GetWorldId(),
                                           self->GetContactGroup(), &contact);
 
-        // save "dJointID *c" in Geom, so we can do a
-        // dJointFeedback *jft = dJointGetFeedback( c[i] ) later
-        geom1->SetContactJointID( c );
-        geom2->SetContactJointID( c );
+        // Get the contact joint feedback
+        feedback = dJointGetFeedback(c);
 
+        // Store the feedback info
+        geom1->SetContactForce(feedback->f1[0], feedback->f1[1], 
+                               feedback->f1[2]); 
+        geom1->SetContactTorque(feedback->t1[0],feedback->t1[1], 
+                                feedback->t1[2]); 
+        geom2->SetContactForce(feedback->f2[0], feedback->f2[1], 
+                               feedback->f2[2]); 
+        geom2->SetContactTorque(feedback->t2[0],feedback->t2[1], 
+                                feedback->t2[2]); 
+
         //std::cout << "Collision G1[" << geom1->GetName() << "] G2[" << 
geom2->GetName() << "]\n";
         // Call the geom's contact callbacks
         cp1->contactSignal( geom1, geom2 );

Modified: code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.cc
===================================================================
--- code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.cc 
2009-05-23 16:29:36 UTC (rev 7713)
+++ code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.cc 
2009-05-23 18:08:49 UTC (rev 7714)
@@ -29,20 +29,15 @@
 #include <sstream>
 
 #include "Global.hh"
-//#include "World.hh"
-//#include "Controller.hh"
 
 #include "GazeboError.hh"
 #include "XMLConfig.hh"
 #include "Simulator.hh"
 #include "SensorFactory.hh"
 #include "Geom.hh"
-#include "ODEGeom.hh"
 #include "ContactParams.hh"
 #include "ContactSensor.hh"
 
-#include "Vector3.hh"
-
 using namespace gazebo;
 
 GZ_REGISTER_STATIC_SENSOR("contact", ContactSensor);
@@ -117,16 +112,7 @@
   return std::string("");
 }
 
-//////////////////////////////////////////////////////////////////////////////
-/// Return the contact feedback forces and torques
-dJointFeedback ContactSensor::GetContactFeedback(unsigned int index) const
-{
-  if (index < this->contactCount)
-    return this->contactFeedbacks[index];
-  return dJointFeedback();
-}
 
-
 //////////////////////////////////////////////////////////////////////////////
 /// Return the self geom name
 std::string ContactSensor::GetGeomName(unsigned int index) const
@@ -162,6 +148,7 @@
     ParamT<std::string> *geomName = new ParamT<std::string>("geom","",1);
     geomName->SetValue( geomNode->GetValue() );
     this->geomNamesP.push_back(geomName);
+
     geomNode = geomNode->GetNext("geom");
   }
   Param::End();
@@ -169,12 +156,10 @@
   this->contactCount = this->geomNamesP.size();
   this->contactTimes = new double[ this->contactCount ];
   this->contactStates = new uint8_t[ this->contactCount ];
-  for (unsigned int i=0; i< this->contactCount; i++)
-    this->contactNames.push_back("");
+  this->contactNames = new std::string[ this->contactCount ];
 
   memset(this->contactTimes,0, sizeof(double) * this->contactCount);
   memset(this->contactStates,0, sizeof(uint8_t) * this->contactCount);
-  memset(this->contactTimes,0, sizeof(double) * this->contactCount);
 }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -203,7 +188,8 @@
     // Set the callback
     if (geom)
     {
-      geom->GetContactParams()->Callback( &ContactSensor::ContactCallback, 
this );
+      geom->GetContactParams()->Callback( &ContactSensor::ContactCallback, 
+                                          this );
     }
     else
     {
@@ -229,47 +215,18 @@
 /// Contact callback
 void ContactSensor::ContactCallback(Geom *g1, Geom *g2)
 {
-
-  ODEGeom *odeGeom1 = dynamic_cast<ODEGeom*>(g1);
-  ODEGeom *odeGeom2 = dynamic_cast<ODEGeom*>(g2);
-
-  // somehow here, extract contact information when user requests it
-  //
-
-
   std::vector< ParamT<std::string> *>::iterator iter;
   int i = 0;
 
-
-  for (iter = this->geomNamesP.begin(); iter != this->geomNamesP.end(); 
+  for (iter = this->geomNamesP.begin(), i=0; iter != this->geomNamesP.end(); 
        iter++, i++)
   {
     if ( **(*iter) == g1->GetName() || **(*iter) == g2->GetName() )
     {
-      if (i < GAZEBO_MAX_CONTACT_FB_DATA)
-      {
-        dJointSetFeedback(odeGeom1->GetContactJointID(), 
-                          this->contactFeedbacks+i);
-
-        // std::cout << "contact id:" << i
-        //           << " geom1:" << g1->GetName()
-        //           << " geom2:" << g2->GetName();
-        // std::cout << " contact joint ID:" << g1->cID
-        //           << " 
f1:"<<this->contactFeedbacks[i].f1[0]<<","<<this->contactFeedbacks[i].f1[1]<<","<<this->contactFeedbacks[i].f1[2]<<","<<this->contactFeedbacks[i].f1[3]
-        //           << " 
t1:"<<this->contactFeedbacks[i].t1[0]<<","<<this->contactFeedbacks[i].t1[1]<<","<<this->contactFeedbacks[i].t1[2]<<","<<this->contactFeedbacks[i].t1[3]
-        //           << " f1_magnitude:" << 
dLENGTH(this->contactFeedbacks[i].f1)
-        //           << " 
f2:"<<this->contactFeedbacks[i].f2[0]<<","<<this->contactFeedbacks[i].f2[1]<<","<<this->contactFeedbacks[i].f2[2]<<","<<this->contactFeedbacks[i].f2[3]
-        //           << " 
t2:"<<this->contactFeedbacks[i].t2[0]<<","<<this->contactFeedbacks[i].t2[1]<<","<<this->contactFeedbacks[i].t2[2]<<","<<this->contactFeedbacks[i].t2[3]
-        //           << " f2_magnitude:" << 
dLENGTH(this->contactFeedbacks[i].f2)
-        //           << std::endl;
-      }
-
       this->contactStates[i] = 1;
       this->contactTimes[i] = Simulator::Instance()->GetRealTime();
-      this->contactNames[i] = **(*iter)==g1->GetName()? g2->GetName() : 
g1->GetName();
+      this->contactNames[i] = **(*iter)==g1->GetName()? g2->GetName() : 
+                                                        g1->GetName();
     }
   }
-
 }
-
-

Modified: code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.hh
===================================================================
--- code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.hh 
2009-05-23 16:29:36 UTC (rev 7713)
+++ code/gazebo/branches/bullet/server/sensors/contact/ContactSensor.hh 
2009-05-23 18:08:49 UTC (rev 7714)
@@ -29,12 +29,11 @@
 
 #include <vector>
 
+#include "Vector3.hh"
 #include "Angle.hh"
 #include "Sensor.hh"
 #include "Body.hh"
 
-#define GAZEBO_MAX_CONTACT_FB_DATA 10
-
 namespace gazebo
 {
 
@@ -54,7 +53,7 @@
   class ContactSensor: public Sensor
   {
     /// \brief Constructor
-    /// \param body The underlying collision test uses an ODE geom, so
+    /// \param body The underlying collision test uses a geom, so
     ///             ray sensors must be attached to a body.
     public: ContactSensor(Body *body);
   
@@ -73,8 +72,10 @@
     /// \brief Return contact geometry name
     public: std::string GetContactGeomName(unsigned int index) const;
 
-    /// \brief Return contact feedback, f1,f2,t1,t2
-    public:  dJointFeedback GetContactFeedback(unsigned int index) const;
+    public: Vector3 GetForceOnBody1(unsigned int index);
+    public: Vector3 GetTorqueOnBody1(unsigned int index);
+    public: Vector3 GetForceOnBody2(unsigned int index);
+    public: Vector3 GetTorqueOnBody2(unsigned int index);
 
     /// \brief Return geometry name
     public: std::string GetGeomName(unsigned int index) const;
@@ -104,15 +105,11 @@
     /// Geom name parameter
     private: std::vector< ParamT<std::string> *> geomNamesP;
 
-    private: std::vector<std::string> geomNames;
+    private: unsigned int contactCount;
+    private: std::string *contactNames;
     private: uint8_t *contactStates;
     private: double *contactTimes;
-    private: unsigned int contactCount;
-    private: std::vector<std::string> contactNames;
 
-    /// \brief a place for storing joint feedbacks, including contact joints
-    private:  dJointFeedback contactFeedbacks[GAZEBO_MAX_CONTACT_FB_DATA];
-
   };
   /// \}
   /// \}

Modified: code/gazebo/branches/bullet/server/sensors/ir/IRSensor.hh
===================================================================
--- code/gazebo/branches/bullet/server/sensors/ir/IRSensor.hh   2009-05-23 
16:29:36 UTC (rev 7713)
+++ code/gazebo/branches/bullet/server/sensors/ir/IRSensor.hh   2009-05-23 
18:08:49 UTC (rev 7714)
@@ -55,7 +55,7 @@
 class IRSensor: public Sensor
 {
   /// \brief Constructor
-  /// \param body The underlying collision test uses an ODE geom, so
+  /// \param body The underlying collision test uses a geom, so
   ///             ray sensors must be attached to a body.
   public: IRSensor(Body *body);
 


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 asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to