StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
EditableParameter.h
1 #if !defined(EDITABLEPARAMETER_H_INCLUDED_)
2 #define EDITABLEPARAMETER_H_INCLUDED_
3 
4 #if _MSC_VER > 1000
5 #pragma once
6 #endif // _MSC_VER > 1000
7 
8 #include "ConstrainedParameter.h"
9 
11 {
12  public:
13 
15  EditableParameter(const string & name,
16  const string & description,
17  double value,
18  double defaultValue,
19  double min,
20  double max,
21  double increment,
22  int type,
23  int key);
24  EditableParameter(const string & name,
25  const string & description,
26  bool* value,
27  bool defaultValue,
28  int key);
29  EditableParameter(const string & name,
30  const string & description,
31  int* value,
32  int defaultValue,
33  int min,
34  int max,
35  int increment,
36  int key);
37  EditableParameter(const string & name,
38  const string & description,
39  float* value,
40  float defaultValue,
41  float min,
42  float max,
43  float increment,
44  int key);
45  EditableParameter(const string & name,
46  const string & description,
47  double* value,
48  double defaultValue,
49  double min,
50  double max,
51  double increment,
52  int key);
53  EditableParameter(const EditableParameter & parameter);
54  virtual ~EditableParameter();
55 
56  const EditableParameter & operator=(const EditableParameter & parameter);
57 
58  double getIncrement() const;
59  void setIncrement(double increment);
60  EditableParameter* set(const string & name, const string & description,
61  double value, double defaultValue, double min, double max, double increment, int type,int key);
62  EditableParameter* set(const string & name,const string & description,bool*value, bool defaultValue, int key=0);
63  EditableParameter* set(const string & name,const string & description,int *value, int defaultValue, int min, int max, int increment,int key=0);
64  EditableParameter* set(const string & name,const string & description,float*value, float defaultValue, float min, float max, float increment,int key=0);
65  EditableParameter* set(const string & name,const string & description,double*value, double defaultValue, double min, double max, double increment,int key=0);
66  void reset();
67  void unset(){;}
68  friend ostream& operator<<(ostream& os, const EditableParameter&par);
69 
70  protected:
71 
72  double _increment;
73 
74 };
75 
76 inline const EditableParameter & EditableParameter::operator=(const EditableParameter & parameter)
77 {
78  if (&parameter==this)
79  return *this;
80  _key = parameter._key;
81  _type = parameter._type;
82  _value = parameter._value;
83  _minimum = parameter._minimum;
84  _maximum = parameter._maximum;
85  _default = parameter._default;
86  _increment = parameter._increment;
87  return *this;
88 }
89 
90 inline double EditableParameter::getIncrement() const
91 {
92  return _increment;
93 }
94 
95 inline void EditableParameter::setIncrement(double increment)
96 {
97  _increment = increment;
98 }
99 
100 inline void EditableParameter::reset()
101 {
102  _value = _default;
103 }
104 
105 inline EditableParameter* EditableParameter::set(const string & name,const string & description, double value,
106  double defaultValue, double min, double max,double increment,int type,int key)
107 {
108  ConstrainedParameter::set(name,description,value,defaultValue,min,max,type,key);
109  _increment = increment;
110  return this;
111 }
112 
113 inline EditableParameter* EditableParameter::set(const string & name,const string & description,
114  bool*value, bool defaultValue, int key)
115 {
116  ConstrainedParameter::set(name,description,value,defaultValue,key);
117  _increment = 1;
118  *value = defaultValue;
119  return this;
120 }
121 
122 inline EditableParameter* EditableParameter::set(const string & name,const string & description,
123  int *value, int defaultValue, int min, int max, int increment,int key)
124 {
125  ConstrainedParameter::set(name,description,value,defaultValue,min,max,key);
126  _increment = increment;
127  *value = defaultValue;
128  return this;
129 }
130 
131 inline EditableParameter* EditableParameter::set(const string & name,const string & description,
132  float*value, float defaultValue, float min, float max, float increment,int key)
133 {
134  ConstrainedParameter::set(name,description,value,defaultValue,min,max,key);
135  _increment = increment;
136  *value = defaultValue;
137  return this;
138 }
139 
140 inline EditableParameter * EditableParameter::set(const string & name,const string & description,
141  double*value, double defaultValue, double min, double max, double increment,int key)
142 {
143  ConstrainedParameter::set(name,description,value,defaultValue,min,max,key);
144  _increment = increment;
145  *value = defaultValue;
146  return this;
147 }
148 
149 #endif // !defined(EDITABLEPARAMETER_H_INCLUDED_)