OrbitRelativeFrame.java
- /* Copyright 2002-2025 CS GROUP
- * Licensed to CS GROUP (CS) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * CS licenses this file to You 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 org.orekit.files.ccsds.definitions;
- import org.orekit.frames.LOFType;
- /** Frames used in CCSDS Orbit Data Messages.
- * @author Luc Maisonobe
- * @since 11.0
- */
- public enum OrbitRelativeFrame {
- /** Equinoctial coordinate system (X towards ascending node, Z towards momentum). */
- EQW_INERTIAL(LOFType.EQW, true),
- /** Local vertical, Local Horizontal (Z towards nadir, Y opposite to momentum). */
- LVLH_ROTATING(LOFType.LVLH_CCSDS, false),
- /** Local vertical, Local Horizontal (Z towards nadir, Y opposite to momentum). */
- LVLH_INERTIAL(LOFType.LVLH_CCSDS_INERTIAL, true),
- /** Local vertical, Local Horizontal (Z towards nadir, Y opposite to momentum). */
- LVLH(LOFType.LVLH_CCSDS, false),
- /** Nadir, Sun, Normal (X towards nadir, Y as close to Sun as possible). */
- NSW_ROTATING(null, false),
- /** Nadir, Sun, Normal (X towards nadir, Y as close to Sun as possible). */
- NSW_INERTIAL(null, true),
- /** Transverse Velocity Normal coordinate system (Y towards velocity, Z towards momentum). */
- NTW_ROTATING(LOFType.NTW, false),
- /** Transverse Velocity Normal coordinate system (Y towards velocity, Z towards momentum). */
- NTW_INERTIAL(LOFType.NTW_INERTIAL, true),
- /** Perifocal coordinate system (X towards periapsis, Z towards momentum). */
- PQW_INERTIAL(null, true),
- /** Another name for Radial, Transverse (along-track) and Normal (X towards zenith, Z towards momentum). */
- RSW_ROTATING(LOFType.QSW, false),
- /** Another name for Radial, Transverse (along-track) and Normal (X towards zenith, Z towards momentum). */
- RSW_INERTIAL(LOFType.QSW_INERTIAL, true),
- /** Another name for Radial, Transverse (along-track) and Normal. */
- RSW(LOFType.QSW, false),
- /** Another name for Radial, Transverse (along-track) and Normal (X towards zenith, Z towards momentum). */
- RIC(LOFType.QSW, false),
- /** Radial, Transverse (along-track) and Normal (X towards zenith, Z towards momentum). */
- RTN(LOFType.QSW, false),
- /** Another name for Radial, Transverse (along-track) and Normal (X towards zenith, Z towards momentum). */
- QSW(LOFType.QSW, false),
- /** Tangential, Normal, Cross-track coordinate system (X towards velocity, Z towards momentum). */
- TNW_ROTATING(LOFType.TNW, false),
- /** Tangential, Normal, Cross-track coordinate system (X towards velocity, Z towards momentum). */
- TNW_INERTIAL(LOFType.TNW_INERTIAL, true),
- /** TNW : x-axis along the velocity vector, W along the orbital angular momentum vector and
- N completes the right-handed system. */
- TNW(LOFType.TNW, false),
- /** South, East, Zenith coordinate system. */
- SEZ_ROTATING(null, false),
- /** South, East, Zenith coordinate system. */
- SEZ_INERTIAL(null, true),
- /** Velocity, Normal, Co-normal coordinate system (X towards velocity, Y towards momentum). */
- VNC_ROTATING(LOFType.VNC, false),
- /** Velocity, Normal, Co-normal coordinate system (X towards velocity, Y towards momentum). */
- VNC_INERTIAL(LOFType.VNC_INERTIAL, true);
- /** Type of Local Orbital Frame (may-be null). */
- private final LOFType lofType;
- /** Flag for inertial orientation. */
- private final boolean quasiInertial;
- /** Simple constructor.
- * @param lofType type of Local Orbital Frame (null if frame is not a Local Orbital Frame)
- * @param quasiInertial if true, frame should be treated as an inertial coordinate system
- */
- OrbitRelativeFrame(final LOFType lofType, final boolean quasiInertial) {
- this.lofType = lofType;
- this.quasiInertial = quasiInertial;
- }
- /** Get the type of Local Orbital frame.
- * @return type of Local Orbital Frame, or null if the frame is not a local orbital frame
- */
- public LOFType getLofType() {
- return lofType;
- }
- /** Check if frame should be treated as inertial.
- * <p>
- * A frame treated as an inertial coordinate system if it
- * is considered to be redefined at each time of interest
- * </p>
- * @return true if frame should be treated as inertial
- */
- public boolean isQuasiInertial() {
- return quasiInertial;
- }
- }