Class Euler

java.lang.Object
org.orekit.files.ccsds.section.CommentsContainer
org.orekit.files.ccsds.ndm.adm.apm.Euler
All Implemented Interfaces:
Section

public class Euler extends CommentsContainer
Container for Euler rotations entries.

Beware that the Orekit getters and setters all rely on SI units. The parsers and writers take care of converting these SI units into CCSDS mandatory units. The Unit class provides useful fromSi and toSI methods in case the callers already use CCSDS units instead of the API SI units. The general-purpose Unit class (without an 's') and the CCSDS-specific Units class (with an 's') also provide some predefined units. These predefined units and the fromSi and toSI conversion methods are indeed what the parsers and writers use for the conversions.

Since:
10.2
Author:
Bryan Cazabonne
  • Constructor Details

    • Euler

      public Euler(CcsdsFrameMapper frameMapper)
      Simple constructor.
      Parameters:
      frameMapper - for creating a Frame.
      Since:
      13.1.5
  • Method Details

    • validate

      public void validate(double version)
      Check is all mandatory entries have been initialized.

      This method should throw an exception if some mandatory entries are missing or not compatible with version number.

      Specified by:
      validate in interface Section
      Overrides:
      validate in class CommentsContainer
      Parameters:
      version - format version
    • getEndpoints

      public AttitudeEndpoints getEndpoints()
      Get the endpoints (i.e. frames A, B and their relationship).
      Returns:
      endpoints
    • getEulerRotSeq

      public RotationOrder getEulerRotSeq()
      Get the rotation order of Euler angles.
      Returns:
      rotation order
    • setEulerRotSeq

      public void setEulerRotSeq(RotationOrder eulerRotSeq)
      Set the rotation order for Euler angles.
      Parameters:
      eulerRotSeq - order to be set
    • rateFrameIsA

      public boolean rateFrameIsA()
      Check if rates are specified in frame A.
      Returns:
      true if rates are specified in frame A
    • setRateFrameIsA

      public void setRateFrameIsA(boolean rateFrameIsA)
      Set the frame in which rates are specified.
      Parameters:
      rateFrameIsA - if true, rates are specified in frame A
    • isSpacecraftBodyRate

      public boolean isSpacecraftBodyRate()
      Check if rates are specified in spacecraft body frame.

      Mandatory entries must have been initialized properly to non-null values before this method is called, otherwise NullPointerException will be thrown.

      Returns:
      true if rates are specified in spacecraft body frame
    • getRotationAngles

      public double[] getRotationAngles()
      Get the coordinates of the Euler angles.
      Returns:
      rotation angles (rad)
    • setLabeledRotationAngle

      public void setLabeledRotationAngle(char axis, double angle)
      Set the Euler angle about axis.
      Parameters:
      axis - rotation axis
      angle - angle to set (rad)
    • setIndexedRotationAngle

      public void setIndexedRotationAngle(int axis, double angle)
      Set the Euler angle about axis.
      Parameters:
      axis - rotation axis
      angle - angle to set (rad)
      Since:
      12.0
    • getRotationRates

      public double[] getRotationRates()
      Get the rates of the Euler angles.
      Returns:
      rotation rates (rad/s)
    • setLabeledRotationRate

      public void setLabeledRotationRate(char axis, double rate)
      Set the rate of Euler angle about axis.
      Parameters:
      axis - rotation axis
      rate - angle rate to set (rad/s)
    • setIndexedRotationRate

      public void setIndexedRotationRate(int axis, double rate)
      Set the rate of Euler angle about axis.
      Parameters:
      axis - rotation axis
      rate - angle rate to set (rad/s)
      Since:
      12.0
    • setInRotationAngles

      public void setInRotationAngles(boolean inRotationAngles)
      Set flag for rotation angle parsing.
      Parameters:
      inRotationAngles - if true, we are in the rotationAngles part of XML files
    • hasAngles

      public boolean hasAngles()
      Check if the logical block includes angles.

      This can be false only for ADM V1, as angles are mandatory since ADM V2.

      Returns:
      true if logical block includes angles
      Since:
      12.0
    • hasRates

      public boolean hasRates()
      Check if the logical block includes rates.
      Returns:
      true if logical block includes rates