00001 /* 00002 * Copyright (c) 2007, 2008, 2009, University of Karlsruhe (for members see AUTHORS file) 00003 * 00004 * ISC License 00005 * 00006 * Permission to use, copy, modify, and/or distribute this software for any 00007 * purpose with or without fee is hereby granted, provided that the above 00008 * copyright notice and this permission notice appear in all copies. 00009 * 00010 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 00011 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 00012 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 00013 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 00014 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 00015 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 00016 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 00017 * 00018 * Created by Alexander Bierbaum 00019 */ 00020 00027 #include "../include/IPSA/ipsaclasses.h" 00028 #include "../include/IPSA/viewer/instructions/GetJointPosition.h" 00029 00030 #include <sstream> 00031 00032 Instruction::tExecResultType GetJointPosition::vExecute(std::vector<std::string>& Instr, std::ostringstream& answer, unsigned int& numberOfReturnValues) 00033 { 00034 numberOfReturnValues = 0; 00035 tExecResultType res = eJOINT_NOT_FOUND; 00036 SoJointSlider* joint = Instruction::GetNodeOfTypeByName<SoJointSlider*>(Instr[1]); 00037 if (joint) 00038 { 00039 answer << std::scientific << joint->getPosition().getValue(); 00040 numberOfReturnValues = 1; 00041 res = eOK; 00042 } 00043 else 00044 res = eJOINT_TYPE_INCOMPATIBLE; 00045 00046 answer << '\r' << std::endl; 00047 return res; 00048 }
Generated on Sat Mar 10 20:00:15 2012 for IPSA by 1.5.8 |