Class 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 Detail

      • Euler

        public Euler()
        Simple constructor.
    • Method Detail

      • 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