/*-
* Copyright 2015 Diamond Light Source Ltd.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package uk.ac.diamond.scisoft.analysis.roi;
public enum XAxis {
ANGLE ("2theta / deg", new FromANGLEConversionStrategy()) ,
PIXEL ("Pixel Number", new FromPIXELConversionStrategy()) ,
Q("Q-space", new FromQConversionStrategy()) ,
RESOLUTION ("d-space", new FromRESOLUTIONConversionStrategy()) ,;
private final String axisLabel;
private AbstractXAxisConversionStrategy conversionStrategy;
XAxis(String axisLabel, AbstractXAxisConversionStrategy strategy) {
this.axisLabel = axisLabel;
setXAxisConversionStrategy(strategy);
}
public String getXAxisLabel() {
return axisLabel;
}
private void setXAxisConversionStrategy(AbstractXAxisConversionStrategy strategy) {
conversionStrategy = strategy;
}
public double convertToANGLE(double initVal, Double lambda) throws Exception{
return conversionStrategy.toANGLE(initVal, lambda);
}
public double convertToPIXEL(double initVal, Double lambda) throws Exception{
return conversionStrategy.toPIXEL(initVal);
}
public double convertToQ(double initVal, Double lambda) throws Exception{
return conversionStrategy.toQ(initVal, lambda);
}
public double convertToRESOLUTION(double initVal, Double lambda) throws Exception{
return conversionStrategy.toRESOLUTION(initVal, lambda);
}
}