1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.orekit.files.ccsds.ndm.odm.opm;
19
20 import java.io.IOException;
21
22 import org.orekit.files.ccsds.definitions.Units;
23 import org.orekit.files.ccsds.ndm.odm.KeplerianElements;
24 import org.orekit.files.ccsds.ndm.odm.KeplerianElementsKey;
25 import org.orekit.files.ccsds.section.AbstractWriter;
26 import org.orekit.files.ccsds.utils.generation.Generator;
27 import org.orekit.orbits.PositionAngleType;
28 import org.orekit.utils.units.Unit;
29
30
31
32
33
34 class OsculationgKeplerianElementsWriter extends AbstractWriter {
35
36
37 private final KeplerianElements keplerianElements;
38
39
40
41
42
43
44 OsculationgKeplerianElementsWriter(final String xmlTag, final String kvnTag,
45 final KeplerianElements keplerianElements) {
46 super(xmlTag, kvnTag);
47 this.keplerianElements = keplerianElements;
48 }
49
50
51 @Override
52 protected void writeContent(final Generator generator) throws IOException {
53
54
55 generator.writeComments(keplerianElements.getComments());
56 generator.writeEntry(KeplerianElementsKey.SEMI_MAJOR_AXIS.name(), keplerianElements.getA(), Unit.KILOMETRE, true);
57 generator.writeEntry(KeplerianElementsKey.ECCENTRICITY.name(), keplerianElements.getE(), Unit.ONE, true);
58 generator.writeEntry(KeplerianElementsKey.INCLINATION.name(), keplerianElements.getI(), Unit.DEGREE, true);
59 generator.writeEntry(KeplerianElementsKey.RA_OF_ASC_NODE.name(), keplerianElements.getRaan(), Unit.DEGREE, true);
60 generator.writeEntry(KeplerianElementsKey.ARG_OF_PERICENTER.name(), keplerianElements.getPa(), Unit.DEGREE, true);
61 generator.writeEntry(keplerianElements.getAnomalyType() == PositionAngleType.TRUE ?
62 KeplerianElementsKey.TRUE_ANOMALY.name() : KeplerianElementsKey.MEAN_ANOMALY.name(),
63 keplerianElements.getAnomaly(),
64 Unit.DEGREE,
65 true);
66 generator.writeEntry(KeplerianElementsKey.GM.name(), keplerianElements.getMu(), Units.KM3_PER_S2, true);
67
68 }
69
70 }