Revision: 7376
http://playerstage.svn.sourceforge.net/playerstage/?rev=7376&view=rev
Author: natepak
Date: 2009-03-08 01:54:38 +0000 (Sun, 08 Mar 2009)
Log Message:
-----------
Added SimIface.cc
Added Paths:
-----------
code/gazebo/trunk/libgazebo/SimIface.cc
Added: code/gazebo/trunk/libgazebo/SimIface.cc
===================================================================
--- code/gazebo/trunk/libgazebo/SimIface.cc (rev 0)
+++ code/gazebo/trunk/libgazebo/SimIface.cc 2009-03-08 01:54:38 UTC (rev
7376)
@@ -0,0 +1,114 @@
+#include <string.h>
+#include "gazebo.h"
+
+using namespace gazebo;
+
+////////////////////////////////////////////////////////////////////////////////
+/// Pause the simulation
+void SimulationIface::Pause()
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+ request->type = SimulationRequestData::PAUSE;
+ this->Unlock();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Reset the simulation
+void SimulationIface::Reset()
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+ request->type = SimulationRequestData::RESET;
+ this->Unlock();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Save the simulation
+void SimulationIface::Save()
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+ request->type = SimulationRequestData::SAVE;
+ this->Unlock();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Get the 3d pose of a model
+void SimulationIface::GetPose3d(const char *modelName)
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+ request->type = SimulationRequestData::GET_POSE3D;
+ memcpy(request->modelName, modelName, 512);
+
+ this->Unlock();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Get the 2d pose of a model
+void SimulationIface::GetPose2d(const char *modelName)
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+ request->type = SimulationRequestData::GET_POSE2D;
+ memcpy(request->modelName, modelName, 512);
+
+ this->Unlock();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Set the 3d pose of a model
+void SimulationIface::SetPose3d(const char *modelName, const Pose &modelPose)
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+
+ request->type = SimulationRequestData::SET_POSE3D;
+ request->modelPose = modelPose;
+
+ memcpy(request->modelName, modelName, 512);
+
+ this->Unlock();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Set the 2d pose of a model
+void SimulationIface::SetPose2d(const char *modelName, float x, float y, float
yaw)
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+
+ request->type = gazebo::SimulationRequestData::SET_POSE2D;
+
+ memcpy(request->modelName, modelName, 512);
+
+ request->modelPose.pos.x = x;
+ request->modelPose.pos.y = y;
+ request->modelPose.yaw = yaw;
+
+ this->Unlock();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+/// Set the complete state of a model
+void SimulationIface::SetState(const char *modelName, const Pose &modelPose,
+ const Vec3 &linearVel, const Vec3 &angularVel, const Vec3 &linearAccel,
+ const Vec3 &angularAccel )
+{
+ this->Lock(1);
+ SimulationRequestData *request =
&(this->data->requests[this->data->requestCount++]);
+
+ request->type = gazebo::SimulationRequestData::SET_STATE;
+ memcpy(request->modelName, modelName, 512);
+
+ request->modelPose = modelPose;
+ request->modelLinearVel = linearVel;
+ request->modelAngularVel = angularVel;
+
+ request->modelLinearAccel = linearAccel;
+ request->modelAngularAccel = angularAccel;
+
+ this->Unlock();
+}
+
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit