OffsetFilter.h
Go to the documentation of this file.
1/*
2* This file is part of ArmarX.
3*
4* ArmarX is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License version 2 as
6* published by the Free Software Foundation.
7*
8* ArmarX is distributed in the hope that it will be useful, but
9* WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details.
12*
13* You should have received a copy of the GNU General Public License
14* along with this program. If not, see <http://www.gnu.org/licenses/>.
15*
16* @package ArmarX::
17* @author Mirko Waechter ( mirko.waechter at kit dot edu)
18* @date 2014
19* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20* GNU General Public License
21*/
22
23#pragma once
24
26
27#include <RobotAPI/interface/observers/ObserverFilters.h>
28
29namespace armarx::filters
30{
31
32 /**
33 * @class OffsetFilter
34 * @ingroup ObserverFilters
35 * @brief The OffsetFilter class returns values
36 * relative to value from the first call of the filter.
37 * E.g. this is useful for Forces which should be nulled
38 * at a specific moment.
39 */
40 class OffsetFilter : public ::armarx::OffsetFilterBase, public DatafieldFilter
41 {
42 public:
44
45
46 // DatafieldFilterBase interface
47 public:
48 VariantBasePtr calculate(const Ice::Current& = Ice::emptyCurrent) const override;
49
50 ParameterTypeList getSupportedTypes(const Ice::Current&) const override;
51
52
53 private:
54 bool firstRun;
55 VariantPtr initialValue;
56
57
58 // DatafieldFilterBase interface
59 public:
60 void
61 update(Ice::Long timestamp, const VariantBasePtr& value, const Ice::Current& c) override;
62 };
63} // namespace armarx::filters
std::string timestamp()
constexpr T c
ParameterTypeList getSupportedTypes(const Ice::Current &) const override
void update(Ice::Long timestamp, const VariantBasePtr &value, const Ice::Current &c) override
VariantBasePtr calculate(const Ice::Current &=Ice::emptyCurrent) const override
IceInternal::Handle< Variant > VariantPtr
Definition Variant.h:41
::IceInternal::Handle<::armarx::VariantBase > VariantBasePtr