/* Copywrite 2016 Will Winder This file is part of Universal Gcode Sender (UGS). UGS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. UGS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with UGS. If not, see <http://www.gnu.org/licenses/>. */ package com.willwinder.universalgcodesender.gcode.util; import javax.vecmath.Point3d; /** * * @author wwinder */ public class PlaneFormatter { private final Plane plane; public PlaneFormatter(Plane plane) { if (plane == null) { this.plane = Plane.XY; } else { this.plane = plane; } } public double axis0(Point3d point) { switch(plane) { case XY: return point.x; case ZX: return point.z; case YZ: return point.y; default: throw new IllegalArgumentException("Plane not supported: " + plane); } } public double axis1(Point3d point) { switch(plane) { case XY: return point.y; case ZX: return point.x; case YZ: return point.z; default: throw new IllegalArgumentException("Plane not supported: " + plane); } } public double linear(Point3d point) { switch(plane) { case XY: return point.z; case ZX: return point.y; case YZ: return point.x; default: throw new IllegalArgumentException("Plane not supported: " + plane); } } public void setAxis0(Point3d point, double value) { switch(plane) { case XY: point.x = value; return; case ZX: point.z = value; return; case YZ: point.y = value; return; default: throw new IllegalArgumentException("Plane not supported: " + plane); } } public void setAxis1(Point3d point, double value) { switch(plane) { case XY: point.y = value; return; case ZX: point.x = value; return; case YZ: point.z = value; return; default: throw new IllegalArgumentException("Plane not supported: " + plane); } } public void setLinear(Point3d point, double value) { switch(plane) { case XY: point.z = value; return; case ZX: point.y = value; return; case YZ: point.x = value; return; default: throw new IllegalArgumentException("Plane not supported: " + plane); } } }