1   /* Copyright 2002-2016 CS Systèmes d'Information
2    * Licensed to CS Systèmes d'Information (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.data;
18  
19  import java.io.Serializable;
20  
21  import org.orekit.time.AbsoluteDate;
22  import org.orekit.time.TimeStamped;
23  
24  /** Delaunay arguments used for nutation or tides.
25   * <p>This class is a simple placeholder,
26   * it does not provide any processing method.</p>
27   * @author Luc Maisonobe
28   * @since 6.1
29   */
30  public class DelaunayArguments implements TimeStamped, Serializable {
31  
32      /** Serializable UID. */
33      private static final long serialVersionUID = 20130729L;
34  
35      /** Date. */
36      private final AbsoluteDate date;
37  
38      /** Offset in Julian centuries. */
39      private final double tc;
40  
41      /** Tide parameter γ = GMST + π. */
42      private final double gamma;
43  
44      /** Mean anomaly of the Moon. */
45      private final double l;
46  
47      /** Mean anomaly of the Sun. */
48      private final double lPrime;
49  
50      /** L - Ω where L is the mean longitude of the Moon. */
51      private final double f;
52  
53      /** Mean elongation of the Moon from the Sun. */
54      private final double d;
55  
56      /** Mean longitude of the ascending node of the Moon. */
57      private final double omega;
58  
59      /** Simple constructor.
60       * @param date current date
61       * @param tc offset in Julian centuries
62       * @param gamma tide parameter γ = GMST + π
63       * @param l mean anomaly of the Moon
64       * @param lPrime mean anomaly of the Sun
65       * @param f L - Ω where L is the mean longitude of the Moon
66       * @param d mean elongation of the Moon from the Sun
67       * @param omega mean longitude of the ascending node of the Moon
68       */
69      public DelaunayArguments(final AbsoluteDate date, final double tc, final double gamma,
70                               final double l, final double lPrime,
71                               final double f, final double d, final double omega) {
72          this.date   = date;
73          this.tc     = tc;
74          this.gamma  = gamma;
75          this.l      = l;
76          this.lPrime = lPrime;
77          this.f      = f;
78          this.d      = d;
79          this.omega  = omega;
80      }
81  
82      /** {@inheritDoc} */
83      public AbsoluteDate getDate() {
84          return date;
85      }
86  
87      /** Get the offset in Julian centuries.
88       * @return offset in Julian centuries
89       */
90      public double getTC() {
91          return tc;
92      }
93  
94      /** Get the tide parameter γ = GMST + π.
95       * @return tide parameter γ = GMST + π
96       */
97      public double getGamma() {
98          return gamma;
99      }
100 
101     /** Get the mean anomaly of the Moon.
102      * @return mean anomaly of the Moon
103      */
104     public double getL() {
105         return l;
106     }
107 
108     /** Get the mean anomaly of the Sun.
109      * @return mean anomaly of the Sun.
110      */
111     public double getLPrime() {
112         return lPrime;
113     }
114 
115     /** Get L - Ω where L is the mean longitude of the Moon.
116      * @return L - Ω
117      */
118     public double getF() {
119         return f;
120     }
121 
122     /** Get the mean elongation of the Moon from the Sun.
123      * @return mean elongation of the Moon from the Sun.
124      */
125     public double getD() {
126         return d;
127     }
128 
129     /** Get the mean longitude of the ascending node of the Moon.
130      * @return mean longitude of the ascending node of the Moon.
131      */
132     public double getOmega() {
133         return omega;
134     }
135 
136 }