/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package factories;
import graphics.common.Angle;
import graphics.common.Angle2D;
import graphics.common.Angle3D;
import utils.GlobalData;
/**
*
* @author Freezerburn
*/
public class Angles {
private static AngleGet[] getters;
public Angles() {
getters = new AngleGet[] { new Get2D(), new Get3D() };
}
public static Angle get( double xAngle, double yAngle ) {
return get( xAngle, yAngle, 0.0 );
}
public static Angle get( Angle angle ) {
return get( angle.getRealXAngle(), angle.getRealYAngle(), angle.getRealZAngle() );
}
public static Angle get( double xAngle, double yAngle, double zAngle ) {
return getters[ GlobalData.GRAPHICS_DIMENSIONS.getValue() ].get( xAngle, yAngle, zAngle );
}
private interface AngleGet {
public Angle get( double xAngle, double yAngle, double zAngle );
}
private class Get2D implements AngleGet {
@Override
public Angle get( double xAngle, double yAngle, double zAngle ) {
return new Angle2D( xAngle, yAngle );
}
}
private class Get3D implements AngleGet {
@Override
public Angle get( double xAngle, double yAngle, double zAngle ) {
return new Angle3D( xAngle, yAngle, zAngle );
}
}
}