00001 /*************************************************************************** 00002 tag: Peter Soetens Fri Feb 11 15:59:12 CET 2005 velocityprofile_dirac.h 00003 00004 velocityprofile_dirac.h - description 00005 ------------------- 00006 begin : Fri February 11 2005 00007 copyright : (C) 2005 Peter Soetens 00008 email : peter.soetens@mech.kuleuven.ac.be 00009 00010 *************************************************************************** 00011 * This library is free software; you can redistribute it and/or * 00012 * modify it under the terms of the GNU Lesser General Public * 00013 * License as published by the Free Software Foundation; either * 00014 * version 2.1 of the License, or (at your option) any later version. * 00015 * * 00016 * This library is distributed in the hope that it will be useful, * 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00019 * Lesser General Public License for more details. * 00020 * * 00021 * You should have received a copy of the GNU Lesser General Public * 00022 * License along with this library; if not, write to the Free Software * 00023 * Foundation, Inc., 59 Temple Place, * 00024 * Suite 330, Boston, MA 02111-1307 USA * 00025 * * 00026 ***************************************************************************/ 00027 00028 00029 #ifndef MOTIONPROFILE_DIRAC_H 00030 #define MOTIONPROFILE_DIRAC_H 00031 00032 #include "velocityprofile.hpp" 00033 00034 00035 namespace KDL { 00048 class VelocityProfile_Dirac : public VelocityProfile 00049 { 00050 double p1,p2,t; 00051 public: 00052 void SetProfile(double pos1,double pos2); 00053 virtual void SetProfileDuration(double pos1,double pos2,double duration); 00054 virtual double Duration() const; 00055 virtual double Pos(double time) const; 00056 virtual double Vel(double time) const; 00057 virtual double Acc(double time) const; 00058 virtual void Write(std::ostream& os) const; 00059 virtual VelocityProfile* Clone() const { 00060 VelocityProfile_Dirac* res = new VelocityProfile_Dirac(); 00061 res->SetProfileDuration( p1, p2, t ); 00062 return res; 00063 } 00064 00065 virtual ~VelocityProfile_Dirac() {} 00066 }; 00067 00068 } 00069 00070 00071 #endif