/* * Copyright (C) 2011-2015, Peter Abeles. All Rights Reserved. * * This file is part of Geometric Regression Library (GeoRegression). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package georegression.struct; /** * Enumerated types for each possible Euler coordinate composed of three rotations. * Axises A,B,C indicate which coordinate axis is rotated first to third. 0 = axis-x, 1 = axis-y, 2 = axis-z. * The order in which the rotations are applied is from left to right. E.g. XYZ first applies the rotation around * x-axis, followed by y-axis, then z-axis. * * @author Peter Abeles */ public enum EulerType { ZYX(2,1,0), ZYZ(2,1,2), ZXY(2,0,1), ZXZ(2,0,2), YXZ(1,0,2), YXY(1,0,1), YZX(1,2,0), YZY(1,2,1), XYZ(0,1,2), XYX(0,1,0), XZY(0,2,1), XZX(0,2,0); EulerType(int axisA, int axisB, int axisC) { this.axisA = axisA; this.axisB = axisB; this.axisC = axisC; } /** * Returns the axis in which first rotation is performed around */ public int getAxisA() { return axisA; } /** * Returns the axis in which second rotation is performed around */ public int getAxisB() { return axisB; } /** * Returns the axis in which third rotation is performed around */ public int getAxisC() { return axisC; } int axisA,axisB,axisC; }