stromx  0.8.0
NumericParameter.h
1 /*
2 * Copyright 2011 Matthias Fuchs
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 #ifndef STROMX_RUNTIME_NUMERICPARAMETER_H
18 #define STROMX_RUNTIME_NUMERICPARAMETER_H
19 
20 #include "stromx/runtime/Parameter.h"
21 
22 namespace stromx
23 {
24  namespace runtime
25  {
26  class Data;
27 
29  template<typename data_t>
30  class NumericParameter : public Parameter
31  {
32  public:
34  NumericParameter(const unsigned int id, ParameterGroup* const group = 0)
35  : Parameter(id, data_traits<data_t>::variant(), group),
36  m_min(data_t::MIN),
37  m_max(data_t::MAX),
38  m_step(data_t(1))
39  {}
40 
42  NumericParameter(const unsigned int id, const data_t min, const data_t max)
43  : Parameter(id, data_traits<data_t>::variant()),
44  m_min(min),
45  m_max(max)
46  {}
47 
49  NumericParameter(const unsigned int id, const data_t min, const data_t max,
50  const data_t step)
51  : Parameter(id, data_traits<data_t>::variant()),
52  m_min(min),
53  m_max(max)
54  {}
55 
56  virtual const Data& max() const { return m_max; }
57  virtual const Data& min() const { return m_min; }
58  virtual const Data& step() const { return m_step; }
59 
61  virtual void setMax(const data_t& value)
62  {
63  m_max = value;
64  }
65 
67  virtual void setMin(const data_t& value)
68  {
69  m_min = value;
70  }
71 
73  virtual void setStep(const data_t& value)
74  {
75  m_step = value;
76  }
77 
78  private:
79  data_t m_min;
80  data_t m_max;
81  data_t m_step;
82  };
83  }
84 }
85 
86 #endif // STROMX_RUNTIME_NUMERICPARAMETER_H
Abstract data object.
Definition: Data.h:53
NumericParameter(const unsigned int id, const data_t min, const data_t max)
Definition: NumericParameter.h:42
NumericParameter(const unsigned int id, ParameterGroup *const group=0)
Definition: NumericParameter.h:34
virtual const Data & min() const
Definition: NumericParameter.h:57
virtual void setMin(const data_t &value)
Definition: NumericParameter.h:67
virtual const Data & step() const
Definition: NumericParameter.h:58
virtual void setMax(const data_t &value)
Definition: NumericParameter.h:61
A group of parameters.
Definition: ParameterGroup.h:28
const VariantHandle & variant() const
Definition: Description.h:136
virtual void setStep(const data_t &value)
Definition: NumericParameter.h:73
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
virtual const Parameter * group() const
Definition: Parameter.h:148
Description of a parameter.
Definition: Parameter.h:34
NumericParameter(const unsigned int id, const data_t min, const data_t max, const data_t step)
Definition: NumericParameter.h:49
virtual const Data & max() const
Definition: NumericParameter.h:56