ODEHinge2Joint.hh
00001 /* 00002 * Copyright 2011 Nate Koenig & Andrew Howard 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 * 00016 */ 00017 /* Desc: A hinge joint with 2 degrees of freedom 00018 * Author: Nate Keonig, Andrew Howard 00019 * Date: 21 May 2003 00020 * CVS: $Id: Hinge2Joint.hh 7129 2008-11-12 19:38:15Z natepak $ 00021 */ 00022 00023 #ifndef ODEHINGE2JOINT_HH 00024 #define ODEHINGE2JOINT_HH 00025 00026 #include "math/Angle.hh" 00027 #include "math/Vector3.hh" 00028 00029 #include "physics/Hinge2Joint.hh" 00030 #include "physics/ode/ODEJoint.hh" 00031 00032 namespace gazebo 00033 { 00034 namespace physics 00035 { 00036 00039 00042 00043 00045 class ODEHinge2Joint : public Hinge2Joint<ODEJoint> 00046 { 00048 public: ODEHinge2Joint(dWorldID worldId); 00049 00051 public: virtual ~ODEHinge2Joint(); 00052 00054 protected: virtual void Load( sdf::ElementPtr &_sdf ); 00055 00057 public: virtual void SetAnchor( int index, const math::Vector3 &anchor ); 00058 00060 public: virtual void SetAxis( int index, const math::Vector3 &axis ); 00061 00063 public: virtual void SetDamping(int index, const double damping); 00064 00066 public: virtual math::Vector3 GetAnchor(int index) const; 00067 00069 public: virtual math::Vector3 GetGlobalAxis(int index) const; 00070 00072 public: virtual math::Angle GetAngleImpl(int index) const; 00073 00075 public: virtual double GetVelocity(int index) const; 00076 00078 public: virtual void SetVelocity(int index, double angle); 00079 00081 public: virtual void SetMaxForce(int index, double t); 00082 00084 public: virtual double GetMaxForce(int index); 00085 00087 public: virtual void SetForce(int index, double torque); 00088 00090 public: virtual double GetParam( int parameter ) const; 00091 00093 public: virtual void SetParam( int parameter, double value ); 00094 }; 00095 00098 } 00099 } 00100 #endif 00101

1.7.5.1