#include "ATOOLS/Math/Axis.H" using namespace ATOOLS; template Axis::Axis(): m_scalingmode(Reference), p_variable(Variable_Getter::GetObject("","")), p_scaling(Scaling_Getter::GetObject("","")) {} template Axis::Axis(const Axis &ref): m_scalingmode(ref.m_scalingmode), p_variable(Variable_Getter::GetObject(ref.p_variable->Name(), ref.p_variable->Name())), p_scaling(Scaling_Getter::GetObject(ref.p_scaling->Name(), ref.p_scaling->Name())) {} template Axis::~Axis() { delete p_variable; delete p_scaling; } template ValueType Axis::DisplayedValue(const Value_Type &realvalue, ScalingModeID tempsmode) const { if (tempsmode==Unknown) tempsmode=m_scalingmode; switch (tempsmode) { case Reference: return (*p_scaling)(realvalue); break; case Unknown: case Identical: return realvalue; break; } return (Value_Type)0.0; } template ValueType Axis::RealValue(const Value_Type &displayedvalue, ScalingModeID tempsmode) const { if (tempsmode==Unknown) tempsmode=m_scalingmode; switch (tempsmode) { case Reference: return (*p_scaling)[displayedvalue]; break; case Unknown: case Identical: return displayedvalue; break; } return (Value_Type)0.0; } template void Axis::SetScaling(const std::string &scalename) { p_scaling=Scaling_Getter::GetObject(scalename,scalename); if (p_scaling==NULL) p_scaling=Scaling_Getter::GetObject("",""); } template void Axis::SetVariable(const std::string &variablename) { p_variable=Variable_Getter::GetObject(variablename,variablename); if (p_variable==NULL) p_variable=Variable_Getter::GetObject("",""); } template ValueType Axis::operator()(const Value_Type &realvalue) const { return DisplayedValue(realvalue,Unknown); } template ValueType Axis::operator[](const Value_Type &displayedvalue) const { return RealValue(displayedvalue,Unknown); } template void Axis::SetScalingMode(const ScalingModeID &scalingmode) { m_scalingmode=scalingmode; } template typename Axis::ScalingModeID Axis::ScalingMode() const { return m_scalingmode; } template void Axis::SetScaling(Scaling_Base *const scaling) { p_scaling=scaling; } template const Scaling_Base *Axis::Scaling() const { return p_scaling; } template void Axis::SetVariable(Variable_Base *const variable) { p_variable=variable; } template const Variable_Base *Axis::Variable() const { return p_variable; } template class ATOOLS::Axis;