1   /* Copyright 2022-2026 Luc Maisonobe
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.estimation.measurements.gnss;
18  
19  import org.orekit.propagation.SpacecraftState;
20  import org.orekit.time.clocks.ClockOffset;
21  import org.orekit.utils.TimeStampedPVCoordinates;
22  
23  /** Common intermediate parameters used to estimate measurements.
24   * @author Luc Maisonobe
25   * @since 12.1
26   */
27  class CommonParametersWithoutDerivatives {
28  
29      /** Spacecraft state. */
30      private final SpacecraftState state;
31  
32      /** Downlink delay. */
33      private final double tauD;
34  
35      /** Clock offset of measured satellite. */
36      private final ClockOffset localOffset;
37  
38      /** Clock offset of remote observer. */
39      private final ClockOffset remoteOffset;
40  
41      /** Transit state. */
42      private final SpacecraftState transitState;
43  
44      /** Transit position/velocity. */
45      private final TimeStampedPVCoordinates transitPV;
46  
47      /** Position/velocity of remote observer. */
48      private final TimeStampedPVCoordinates remotePV;
49  
50      /** Simple constructor.
51      * @param state spacecraft state
52      * @param tauD downlink delay
53      * @param localOffset measured satellite clock offset
54      * @param remoteOffset clock offset of remote observer
55      * @param transitState transit state of measured satellite
56      * @param transitPV transit position/velocity
57      * @param remotePV position/velocity of remote observer
58      */
59      CommonParametersWithoutDerivatives(final SpacecraftState state, final double tauD,
60                                                final ClockOffset localOffset, final ClockOffset remoteOffset,
61                                                final SpacecraftState transitState,
62                                                final TimeStampedPVCoordinates transitPV,
63                                                final TimeStampedPVCoordinates remotePV) {
64          this.state        = state;
65          this.tauD         = tauD;
66          this.localOffset  = localOffset;
67          this.remoteOffset = remoteOffset;
68          this.transitState = transitState;
69          this.transitPV    = transitPV;
70          this.remotePV     = remotePV;
71      }
72  
73      /** Get spacecraft state.
74       * @return spacecraft state
75       */
76      public SpacecraftState getState() {
77          return state;
78      }
79  
80      /** Get downlink delay.
81       * @return ownlink delay
82       */
83      public double getTauD() {
84          return tauD;
85      }
86  
87      /** Get local clock offset.
88       * @return clock offset of measured satellite
89       */
90      public ClockOffset getLocalOffset() {
91          return localOffset;
92      }
93  
94      /** Get remote clock offset.
95       * @return clock offset of remote observer
96       */
97      public ClockOffset getRemoteOffset() {
98          return remoteOffset;
99      }
100 
101     /** Get transit state.
102      * @return transit state
103      */
104     public SpacecraftState getTransitState() {
105         return transitState;
106     }
107 
108     /** Get transit position/velocity.
109      * @return transit position/velocity
110      */
111     public TimeStampedPVCoordinates getTransitPV() {
112         return transitPV;
113     }
114 
115     /** Get remote observer position/velocity.
116      * @return remote observer position/velocity
117      */
118     public TimeStampedPVCoordinates getRemotePV() {
119         return remotePV;
120     }
121 
122 }