1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.frames;
18
19 import org.hipparchus.CalculusFieldElement;
20 import org.orekit.files.ccsds.definitions.ModifiedFrame;
21 import org.orekit.time.AbsoluteDate;
22 import org.orekit.time.FieldAbsoluteDate;
23 import org.orekit.utils.ExtendedPositionProvider;
24
25
26
27
28
29
30
31
32
33
34 public class OriginTransformProvider implements TransformProvider {
35
36
37 private final ExtendedPositionProvider origin;
38
39
40 private final Frame frame;
41
42
43
44
45
46
47
48 public OriginTransformProvider(final ExtendedPositionProvider origin,
49 final Frame frame) {
50 this.origin = origin;
51 this.frame = frame;
52 }
53
54 @Override
55 public Transform getTransform(final AbsoluteDate date) {
56 return new Transform(date, origin.getPVCoordinates(date, frame).negate());
57 }
58
59 @Override
60 public <T extends CalculusFieldElement<T>> FieldTransform<T> getTransform(
61 final FieldAbsoluteDate<T> date) {
62 return new FieldTransform<>(
63 date,
64 origin.getPVCoordinates(date, frame).negate());
65 }
66
67 @Override
68 public KinematicTransform getKinematicTransform(final AbsoluteDate date) {
69 return KinematicTransform
70 .of(date, origin.getPVCoordinates(date, frame).negate());
71 }
72
73 @Override
74 public <T extends CalculusFieldElement<T>> FieldKinematicTransform<T>
75 getKinematicTransform(final FieldAbsoluteDate<T> date) {
76
77 return FieldKinematicTransform
78 .of(date, origin.getPVCoordinates(date, frame).negate());
79 }
80
81 @Override
82 public StaticTransform getStaticTransform(final AbsoluteDate date) {
83 return StaticTransform
84 .of(date, origin.getPosition(date, frame).negate());
85 }
86
87 @Override
88 public <T extends CalculusFieldElement<T>> FieldStaticTransform<T>
89 getStaticTransform(final FieldAbsoluteDate<T> date) {
90
91 return FieldStaticTransform
92 .of(date, origin.getPosition(date, frame).negate());
93 }
94 }