7 #include "GeoGenericFunctions/Parameter.h" 10 PARAMETER_OBJECT_IMP(Parameter)
12 Parameter::Parameter(std::
string name,
double value,
double lowerLimit,
double upperLimit):
13 _name(name),_value(value),_lowerLimit(lowerLimit),_upperLimit(upperLimit),_sourceParameter(NULL)
17 Parameter::~Parameter() {
20 std::ostream & operator << ( std::ostream & o,
const Parameter & p) {
21 return o << p.getName() <<
"\t" <<
" value = " 22 << p.getValue() <<
"\t" <<
" limits: [" 23 << p.getLowerLimit() <<
"," 24 << p.getUpperLimit() <<
"]" << std::endl;
27 const std::string & Parameter::getName()
const {
31 double Parameter::getValue()
const 33 if (_sourceParameter) {
34 return _sourceParameter->getValue();
41 double Parameter::getLowerLimit()
const 43 if (_sourceParameter) {
51 double Parameter::getUpperLimit()
const 53 if (_sourceParameter) {
61 void Parameter::setValue(
double value)
63 if (_sourceParameter) {
65 <<
"Warning: Parameter is connected. Function has no effect." 73 void Parameter::setLowerLimit(
double lowerLimit)
75 if (_sourceParameter) {
77 <<
"Warning: Parameter is connected. Function has no effect." 81 _lowerLimit=lowerLimit;
85 void Parameter::setUpperLimit(
double upperLimit)
87 if (_sourceParameter) {
89 <<
"Warning: Parameter is connected. Function has no effect." 93 _upperLimit=upperLimit;
97 void Parameter::connectFrom(
const AbsParameter * source)
99 const Parameter *sp = source->parameter();
100 if (sp && sp->_sourceParameter) {
101 connectFrom(sp->_sourceParameter);
104 _sourceParameter = source;
109 Parameter::Parameter(
const Parameter & right):
112 _value(right._value),
113 _lowerLimit(right._lowerLimit),
114 _upperLimit(right._upperLimit),
115 _sourceParameter(right._sourceParameter)
119 const Parameter & Parameter::operator=(
const Parameter &right) {
120 if (
this != &right) {
123 _lowerLimit=right._lowerLimit;
124 _upperLimit=right._upperLimit;
125 _sourceParameter=right._sourceParameter;