1 /* Contributed in the public domain.
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.bodies;
18
19 /**
20 * Commonly used celestial bodies. This interface defines methods for obtaining intances
21 * of the commonly used celestial bodies.
22 *
23 * @author Luc Maisonobe
24 * @author Evan Ward
25 * @see CelestialBodyFactory
26 * @since 10.1
27 */
28 public interface CelestialBodies {
29
30 /** Get the solar system barycenter aggregated body.
31 * <p>
32 * Both the {@link CelestialBody#getInertiallyOrientedFrame() inertially
33 * oriented frame} and {@link CelestialBody#getBodyOrientedFrame() body
34 * oriented frame} for this aggregated body are aligned with
35 * {@link org.orekit.frames.FramesFactory#getICRF() ICRF} (and therefore also
36 * {@link org.orekit.frames.FramesFactory#getGCRF() GCRF})
37 * </p>
38 * @return solar system barycenter aggregated body
39 */
40 CelestialBody getSolarSystemBarycenter();
41
42 /** Get the Sun singleton body.
43 * @return Sun body
44 */
45 CelestialBody getSun();
46
47 /** Get the Mercury singleton body.
48 * @return Sun body
49 */
50 CelestialBody getMercury();
51
52 /** Get the Venus singleton body.
53 * @return Venus body
54 */
55 CelestialBody getVenus();
56
57 /** Get the Earth-Moon barycenter singleton bodies pair.
58 * <p>
59 * Both the {@link CelestialBody#getInertiallyOrientedFrame() inertially
60 * oriented frame} and {@link CelestialBody#getBodyOrientedFrame() body
61 * oriented frame} for this bodies pair are aligned with
62 * {@link org.orekit.frames.FramesFactory#getICRF() ICRF} (and therefore also
63 * {@link org.orekit.frames.FramesFactory#getGCRF() GCRF})
64 * </p>
65 * @return Earth-Moon barycenter bodies pair
66 */
67 CelestialBody getEarthMoonBarycenter();
68
69 /** Get the Earth singleton body.
70 * @return Earth body
71 */
72 CelestialBody getEarth();
73
74 /** Get the Moon singleton body.
75 * @return Moon body
76 */
77 CelestialBody getMoon();
78
79 /** Get the Mars singleton body.
80 * @return Mars body
81 */
82 CelestialBody getMars();
83
84 /** Get the Jupiter singleton body.
85 * @return Jupiter body
86 */
87 CelestialBody getJupiter();
88
89 /** Get the Saturn singleton body.
90 * @return Saturn body
91 */
92 CelestialBody getSaturn();
93
94 /** Get the Uranus singleton body.
95 * @return Uranus body
96 */
97 CelestialBody getUranus();
98
99 /** Get the Neptune singleton body.
100 * @return Neptune body
101 */
102 CelestialBody getNeptune();
103
104 /** Get the Pluto singleton body.
105 * @return Pluto body
106 */
107 CelestialBody getPluto();
108
109 /**
110 * Get a celestial body. The names of the common bodies are defined as constants in
111 * {@link CelestialBodyFactory}.
112 *
113 * @param name name of the celestial body
114 * @return celestial body
115 */
116 CelestialBody getBody(String name);
117
118 }