📄 angularmotor_c.cpp
字号:
/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: angularmotor_c.cpp,v 1.1 2004/04/20 14:11:30 rollmark Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/#include "angularmotor.h"using namespace boost;using namespace oxygen;using namespace salt;FUNCTION(AngularMotor,setUserMode){ obj->SetMode(AngularMotor::MM_USER); return true;}FUNCTION(AngularMotor,setEulerMode){ obj->SetMode(AngularMotor::MM_EULER); return true;}FUNCTION(AngularMotor,getMode){ return static_cast<int>(obj->GetMode());}FUNCTION(AngularMotor,setNumAxes){ int inNum; if ( (in.GetSize() != 1) || (! in.GetValue(in[0], inNum)) ) { return false; } obj->SetNumAxes(inNum); return true;}FUNCTION(AngularMotor,getNumAxes){ return obj->GetNumAxes();}FUNCTION(AngularMotor,setMotorAxis){ int inAxisIdx; // 0 global, 1 first body, 2 second body int inAxisAnchor; Vector3f inAxis; if ( (in.GetSize() < 3) || (! in.GetValue(in[0],inAxisIdx)) || (! in.GetValue(in[1],inAxisAnchor)) || (! in.GetValue(in[2],inAxis)) ) { return false; } obj->SetMotorAxis(static_cast<Joint::EAxisIndex>(inAxisIdx), static_cast<AngularMotor::EAxisAnchor>(inAxisAnchor), inAxis); return true;}FUNCTION(AngularMotor,getAxisAnchor){ int inAxisIdx; if ( (in.GetSize() != 1) || (! in.GetValue(in.begin(),inAxisIdx)) ) { return 0; } return obj->GetAxisAnchor(static_cast<Joint::EAxisIndex>(inAxisIdx));}FUNCTION(AngularMotor,setAxisAngle){ int inAxisIdx; int inDegAngle; if ( (in.GetSize() != 2) || (! in.GetValue(in[0], inAxisIdx)) || (! in.GetValue(in[1], inDegAngle)) ) { return false; } obj->SetAxisAngle(static_cast<Joint::EAxisIndex>(inAxisIdx),inDegAngle); return true;}FUNCTION(AngularMotor, getAxisAngle){ int inAxisIdx; if ( (in.GetSize() != 1) || (! in.GetValue(in.begin(), inAxisIdx)) ) { return 0; } return obj->GetAxisAngle(static_cast<Joint::EAxisIndex>(inAxisIdx));}FUNCTION(AngularMotor,getAxisAngleRate){ int inAxisIdx; if ( (in.GetSize() != 1) || (! in.GetValue(in.begin(), inAxisIdx)) ) { return 0; } return obj->GetAxisAngleRate(static_cast<Joint::EAxisIndex>(inAxisIdx));}void CLASS(AngularMotor)::DefineClass(){ DEFINE_BASECLASS(oxygen/Joint); DEFINE_FUNCTION(setUserMode); DEFINE_FUNCTION(setEulerMode); DEFINE_FUNCTION(getMode); DEFINE_FUNCTION(setNumAxes); DEFINE_FUNCTION(getNumAxes); DEFINE_FUNCTION(setMotorAxis); DEFINE_FUNCTION(getAxisAnchor); DEFINE_FUNCTION(setAxisAngle); DEFINE_FUNCTION(getAxisAngle); DEFINE_FUNCTION(getAxisAngleRate);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -