1   /* Copyright 2020-2025 Exotrail
2    * Licensed to CS GROUP (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS 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.orekit.propagation.conversion.averaging.elements;
18  
19  /**
20   * Immutable class containing values of averaged equinoctial elements from any applicable theory
21   * (with MEAN as {@link org.orekit.orbits.PositionAngleType}).
22   *
23   * @author Romain Serra
24   * @see AveragedOrbitalElements
25   * @since 12.1
26   */
27  public class AveragedEquinoctialWithMeanAngle implements AveragedOrbitalElements {
28  
29      /** Averaged semi-major axis in arbitrary theory. */
30      private final double averagedSemiMajorAxis;
31      /** Averaged equinoctial ex in arbitrary theory. */
32      private final double averagedEquinoctialEx;
33      /** Averaged equinoctial ey in arbitrary theory. */
34      private final double averagedEquinoctialEy;
35      /** Averaged hx in arbitrary theory. */
36      private final double averagedHx;
37      /** Averaged hy in arbitrary theory. */
38      private final double averagedHy;
39      /** Averaged mean longitude argument in arbitrary theory. */
40      private final double averagedMeanLongitudeArgument;
41  
42      /**
43       * Constructor.
44       * @param averagedSemiMajorAxis semi-major axis
45       * @param averagedEquinoctialEx equinoctial ex
46       * @param averagedEquinoctialEy equinoctial ey
47       * @param averagedHx hx
48       * @param averagedHy hy
49       * @param averagedMeanLongitudeArgument mean longitude argument
50       */
51      public AveragedEquinoctialWithMeanAngle(final double averagedSemiMajorAxis,
52                                              final double averagedEquinoctialEx,
53                                              final double averagedEquinoctialEy,
54                                              final double averagedHx,
55                                              final double averagedHy,
56                                              final double averagedMeanLongitudeArgument) {
57          this.averagedSemiMajorAxis = averagedSemiMajorAxis;
58          this.averagedEquinoctialEx = averagedEquinoctialEx;
59          this.averagedEquinoctialEy = averagedEquinoctialEy;
60          this.averagedHx = averagedHx;
61          this.averagedHy = averagedHy;
62          this.averagedMeanLongitudeArgument = averagedMeanLongitudeArgument;
63      }
64  
65      /** {@inheritDoc} */
66      @Override
67      public double[] toArray() {
68          return new double[] { averagedSemiMajorAxis, averagedEquinoctialEx, averagedEquinoctialEy,
69              averagedHx, averagedHy, averagedMeanLongitudeArgument };
70      }
71  
72      /**
73       * Getter for the averaged semi-major axis.
74       * @return semi-major axis.
75       */
76      public double getAveragedSemiMajorAxis() {
77          return averagedSemiMajorAxis;
78      }
79  
80      /**
81       * Getter for the averaged equinoctial ex.
82       * @return ex
83       */
84      public double getAveragedEquinoctialEx() {
85          return averagedEquinoctialEx;
86      }
87  
88      /**
89       * Getter for the averaged equinoctial ey.
90       * @return ey
91       */
92      public double getAveragedEquinoctialEy() {
93          return averagedEquinoctialEy;
94      }
95  
96      /**
97       * Getter for the averaged hx.
98       * @return hx
99       */
100     public double getAveragedHx() {
101         return averagedHx;
102     }
103 
104     /**
105      * Getter for the averaged hy.
106      * @return hy
107      */
108     public double getAveragedHy() {
109         return averagedHy;
110     }
111 
112     /**
113      * Getter for the averaged mean longitude argument.
114      * @return mean longitude argument
115      */
116     public double getAveragedMeanLongitudeArgument() {
117         return averagedMeanLongitudeArgument;
118     }
119 }