1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.geometry.euclidean.threed.rotation; 18 19 /** Enum defining the possible reference frames for locating axis 20 * positions during a rotation sequence. 21 */ 22 public enum AxisReferenceFrame { 23 24 /** Defines a relative reference frame for a rotation sequence. Sequences 25 * with this type of reference frame are called <em>intrinsic rotations</em>. 26 * 27 * <p> 28 * When using a relative reference frame, each successive axis 29 * is located relative to the "thing" being rotated and not to some 30 * external frame of reference. For example, say that a rotation sequence 31 * is defined around the {@code x}, {@code y}, and {@code z} axes in 32 * that order. The first rotation will occur around the standard {@code x} 33 * axis. The second rotation, however, will occur around the {@code y} 34 * axis after it has been rotated by the first rotation; we can call this 35 * new axis {@code y'}. Similarly, the third rotation will occur around 36 * {@code z''}, which may or may not match the original {@code z} axis. 37 * A good real-world example of this type of situation is an airplane, 38 * where a pilot makes a sequence of rotations in order, with each rotation 39 * using the airplane's own up/down, left/right, back/forward directions 40 * as the frame of reference. 41 * </p> 42 */ 43 RELATIVE, 44 45 /** Defines an absolute reference frame for a rotation sequence. Sequences 46 * with this type of reference frame are called <em>extrinsic rotations</em>. 47 * 48 * <p> 49 * In contrast with the relative reference frame, the absolute reference frame 50 * remains fixed throughout a rotation sequence, with each rotation axis not 51 * affected by the rotations. 52 * </p> 53 */ 54 ABSOLUTE 55 }