JointVelocities.cpp

Go to the documentation of this file.
00001 /* ============================================================
00002  *
00003  * This file is a part of RCI project
00004  *
00005  * Copyright (C) 2011 by Arne Nordmann <anordman at cor-lab dot uni-bielefeld dot de>
00006  *
00007  * This file may be licensed under the terms of the
00008  * GNU Lesser General Public License Version 3 (the ``LGPL''),
00009  * or (at your option) any later version.
00010  *
00011  * Software distributed under the License is distributed
00012  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
00013  * express or implied. See the LGPL for the specific language
00014  * governing rights and limitations.
00015  *
00016  * You should have received a copy of the LGPL along with this
00017  * program. If not, go to http://www.gnu.org/licenses/lgpl.html
00018  * or write to the Free Software Foundation, Inc.,
00019  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00020  *
00021  * The development of this software was supported by:
00022  *   CoR-Lab, Research Institute for Cognition and Robotics
00023  *     Bielefeld University
00024  *
00025  * ============================================================ */
00026 
00027 #include "JointVelocities.h"
00028 
00029 using namespace std;
00030 using namespace nemo;
00031 using namespace cca;
00032 
00033 namespace rci {
00034 
00035 JointVelocities::JointVelocities() :
00036         JointValues() {
00037 }
00038 
00039 JointVelocities::JointVelocities(RealVector values) :
00040         JointValues(values) {
00041 }
00042 
00043 JointVelocities::JointVelocities(double value) :
00044         JointValues(value) {
00045 }
00046 
00047 std::string JointVelocities::print() const {
00048     ostringstream outstream(ostringstream::out);
00049     outstream.precision(3); // Precision when printing double values
00050     outstream << "JointVelocities<";
00051     for (unsigned int i = 0; i < this->getDimension(); ++i) {
00052         if (i > 0) {
00053             outstream << ",";
00054         }
00055         outstream << this->asDouble(i);
00056     }
00057     outstream << ">(rad)" << std::endl;
00058     return outstream.str();
00059 }
00060 
00061 JointVelocitiesPtr JointVelocities::fromValue(double value) {
00062     nemo::RealVector v = RealVector(value);
00063     return JointVelocitiesPtr(new JointVelocities(value));
00064 }
00065 
00066 JointVelocitiesPtr JointVelocities::fromValues(RealVector values) {
00067     return JointVelocitiesPtr(new JointVelocities(values));
00068 }
00069 
00070 JointVelocitiesPtr JointVelocities::fromRad_s(double value) {
00071     return JointVelocities::fromValue(value); // rad/s is default representation
00072 }
00073 
00074 JointVelocitiesPtr JointVelocities::fromRad_s(RealVector values) {
00075     return JointVelocities::fromValues(values); // rad/s is default representation
00076 }
00077 
00078 nemo::RealVector JointVelocities::rad_sVector() {
00079     return this->asDoubleVector();
00080 }
00081 
00082 double JointVelocities::rad_s(unsigned int index) {
00083     return this->asDouble(index);
00084 }
00085 
00086 JointVelocitiesPtr JointVelocities::fromDeg_s(double value) {
00087     return JointVelocities::fromRad_s(value / 180 * M_PI);
00088 }
00089 
00090 JointVelocitiesPtr JointVelocities::fromDeg_s(RealVector values) {
00091     Mapping<double, double> degToRad = DegToRad::create();
00092     values.transform(degToRad);
00093 
00094     return JointVelocities::fromRad_s(values);
00095 }
00096 
00097 nemo::RealVector JointVelocities::deg_sVector() {
00098     Mapping<double, double> radToDeg = RadToDeg::create();
00099 
00100     return this->_values.map(radToDeg);
00101 }
00102 
00103 double JointVelocities::deg_s(unsigned int index) {
00104     return this->rad_s(index) / M_PI * 180;
00105 }
00106 
00107 }
Generated on Thu Aug 2 14:02:49 2012 for RCI by  doxygen 1.6.3