1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.sp3;
18
19 import java.util.ArrayList;
20 import java.util.Collections;
21 import java.util.List;
22
23 import org.orekit.attitudes.AttitudeProvider;
24 import org.orekit.files.general.EphemerisFile;
25 import org.orekit.frames.Frame;
26 import org.orekit.propagation.BoundedPropagator;
27 import org.orekit.time.AbsoluteDate;
28 import org.orekit.utils.CartesianDerivativesFilter;
29
30
31
32
33
34
35
36 public class SP3Segment implements EphemerisFile.EphemerisSegment<SP3Coordinate> {
37
38
39 private final double mu;
40
41
42 private final Frame frame;
43
44
45 private final int interpolationSamples;
46
47
48 private final CartesianDerivativesFilter filter;
49
50
51 private final List<SP3Coordinate> coordinates;
52
53
54
55
56
57
58
59
60 public SP3Segment(final double mu, final Frame frame,
61 final int interpolationSamples, final CartesianDerivativesFilter filter) {
62 this.mu = mu;
63 this.frame = frame;
64 this.interpolationSamples = interpolationSamples;
65 this.filter = filter;
66 this.coordinates = new ArrayList<>();
67 }
68
69
70 @Override
71 public double getMu() {
72 return mu;
73 }
74
75
76 @Override
77 public AbsoluteDate getStart() {
78 return coordinates.get(0).getDate();
79 }
80
81
82 @Override
83 public AbsoluteDate getStop() {
84 return coordinates.get(coordinates.size() - 1).getDate();
85 }
86
87
88 @Override
89 public Frame getFrame() {
90 return frame;
91 }
92
93
94 @Override
95 public int getInterpolationSamples() {
96 return interpolationSamples;
97 }
98
99
100 @Override
101 public CartesianDerivativesFilter getAvailableDerivatives() {
102 return filter;
103 }
104
105
106 @Override
107 public List<SP3Coordinate> getCoordinates() {
108 return Collections.unmodifiableList(this.coordinates);
109 }
110
111
112
113
114 public void addCoordinate(final SP3Coordinate coord) {
115 coordinates.add(coord);
116 }
117
118
119 @Override
120 public BoundedPropagator getPropagator() {
121 return EphemerisFile.EphemerisSegment.super.getPropagator();
122 }
123
124
125 @Override
126 public BoundedPropagator getPropagator(final AttitudeProvider attitudeProvider) {
127 return EphemerisFile.EphemerisSegment.super.getPropagator(attitudeProvider);
128 }
129
130 }