23 IParameterized::IParameterized(
const std::string& name) : m_name{name}, m_pool{new
ParameterPool} {}
28 throw std::runtime_error(
"BUG: not prepared to copy parameters of " + getName());
31 IParameterized::~IParameterized() =
default;
36 m_pool->copyToExternalPool(
"/" + getName() +
"/", result);
42 std::ostringstream result;
44 result << *P_pool <<
"\n";
48 RealParameter& IParameterized::registerParameter(
const std::string& name,
double* data)
50 return m_pool->addParameter(
54 void IParameterized::registerVector(
const std::string& base_name,
kvector_t* p_vec,
55 const std::string& units)
57 registerParameter(XComponentName(base_name), &((*p_vec)[0])).setUnit(units);
58 registerParameter(YComponentName(base_name), &((*p_vec)[1])).setUnit(units);
59 registerParameter(ZComponentName(base_name), &((*p_vec)[2])).setUnit(units);
62 void IParameterized::setParameterValue(
const std::string& name,
double value)
64 if (name.find(
'*') == std::string::npos && name.find(
'/') == std::string::npos) {
65 m_pool->setParameterValue(name, value);
68 if (name.find(
'*') != std::string::npos)
71 P_pool->setParameterValue(name, value);
75 void IParameterized::setVectorValue(
const std::string& base_name,
kvector_t value)
77 setParameterValue(XComponentName(base_name), value.
x());
78 setParameterValue(YComponentName(base_name), value.
y());
79 setParameterValue(ZComponentName(base_name), value.
z());
85 return m_pool->parameter(name);
88 void IParameterized::removeParameter(
const std::string& name)
90 m_pool->removeParameter(name);
93 void IParameterized::removeVector(
const std::string& base_name)
95 removeParameter(XComponentName(base_name));
96 removeParameter(YComponentName(base_name));
97 removeParameter(ZComponentName(base_name));
100 std::string IParameterized::XComponentName(
const std::string& base_name)
102 return base_name +
"X";
105 std::string IParameterized::YComponentName(
const std::string& base_name)
107 return base_name +
"Y";
110 std::string IParameterized::ZComponentName(
const std::string& base_name)
112 return base_name +
"Z";
Defines many exception classes in namespace Exceptionss.
Defines class IParameterized.
Defines class ParameterPool.
Defines class RealParameter.
T z() const
Returns z-component in cartesian coordinate system.
T y() const
Returns y-component in cartesian coordinate system.
T x() const
Returns x-component in cartesian coordinate system.
Manages a local parameter pool, and a tree of child pools.
std::string parametersToString() const
Returns multiline string representing available parameters.
RealParameter * parameter(const std::string &name) const
Returns parameter with given 'name'.
virtual void onChange()
Action to be taken in inherited class when a parameter has changed.
ParameterPool * parameterPool() const
Returns pointer to the parameter pool.
virtual ParameterPool * createParameterTree() const
Creates new parameter pool, with all local parameters and those of its children.
Container with parameters for IParameterized object.
int setMatchedParametersValue(const std::string &wildcards, double value)
Sets value of the nonzero parameters that match pattern ('*' allowed), or throws.
Wraps a parameter of type double.