1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.forces;
18
19 import org.hipparchus.CalculusFieldElement;
20 import org.hipparchus.Field;
21 import org.hipparchus.geometry.euclidean.threed.FieldVector3D;
22 import org.hipparchus.geometry.euclidean.threed.Vector3D;
23 import org.orekit.propagation.FieldSpacecraftState;
24 import org.orekit.propagation.SpacecraftState;
25 import org.orekit.propagation.events.EventDetector;
26 import org.orekit.propagation.events.FieldEventDetector;
27 import org.orekit.time.AbsoluteDate;
28 import org.orekit.time.FieldAbsoluteDate;
29 import org.orekit.utils.ParameterDriver;
30
31 import java.util.List;
32 import java.util.stream.Stream;
33
34
35
36
37
38
39
40
41
42 public interface ForceModelModifier extends ForceModel {
43
44
45
46
47
48 ForceModel getUnderlyingModel();
49
50
51 @Override
52 default void init(SpacecraftState initialState, AbsoluteDate target) {
53 getUnderlyingModel().init(initialState, target);
54 }
55
56
57 @Override
58 default <T extends CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target) {
59 getUnderlyingModel().init(initialState, target);
60 }
61
62
63 @Override
64 default Vector3D acceleration(SpacecraftState s, double[] parameters) {
65 return getUnderlyingModel().acceleration(s, parameters);
66 }
67
68
69 @Override
70 default <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s,
71 T[] parameters) {
72 return getUnderlyingModel().acceleration(s, parameters);
73 }
74
75
76 @Override
77 default boolean dependsOnPositionOnly() {
78 return getUnderlyingModel().dependsOnPositionOnly();
79 }
80
81
82 @Override
83 default boolean dependsOnAttitudeRate() {
84 return getUnderlyingModel().dependsOnAttitudeRate();
85 }
86
87
88 @Override
89 default Stream<EventDetector> getEventDetectors() {
90 return getUnderlyingModel().getEventDetectors();
91 }
92
93
94 @Override
95 default <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field) {
96 return getUnderlyingModel().getFieldEventDetectors(field);
97 }
98
99
100 @Override
101 default List<ParameterDriver> getParametersDrivers() {
102 return getUnderlyingModel().getParametersDrivers();
103 }
104 }