/*************************************************************************** Copyright (c) 2009 Stephen Roderick (remove the x's above) *************************************************************************** * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library 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 * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place, * * Suite 330, Boston, MA 02111-1307 USA * * * ***************************************************************************/ /** \file OneAxisFilter.hpp Component that filters out one axis (ie sets it to zero) */ #ifndef __ONEAXISFILTER_HPP #define __ONEAXISFILTER_HPP 1 #include #include #include /** Component that filters out one axis (ie sets it to zero) */ class OneAxisFilter : public RTT::TaskContext { protected: // DATA INTERFACE // *** INPUTS *** /// desired cartesian position RTT::ReadDataPort inputPosition_port; // *** OUTPUTS *** /// desired cartesian position RTT::WriteDataPort outputPosition_port; // *** CONFIGURATION *** /// specify which axis to filter (should be one of "x", "y", or "z") RTT::Property axis_prop; public: OneAxisFilter(std::string name); virtual ~OneAxisFilter(); protected: /// validate axis_prop value /// \return true if axis_prop value is valid, otherwise false virtual bool configureHook(); /// filter one translational axis (as specified by axis_prop) virtual void updateHook(); }; #endif