<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://patrius.cnes.fr/index.php?action=history&amp;feed=atom&amp;title=User_Manual_4.13_Celestial_bodies</id>
	<title>User Manual 4.13 Celestial bodies - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://patrius.cnes.fr/index.php?action=history&amp;feed=atom&amp;title=User_Manual_4.13_Celestial_bodies"/>
	<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Celestial_bodies&amp;action=history"/>
	<updated>2026-04-04T07:10:48Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Celestial_bodies&amp;diff=3624&amp;oldid=prev</id>
		<title>Admin le 21 décembre 2023 à 15:14</title>
		<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Celestial_bodies&amp;diff=3624&amp;oldid=prev"/>
		<updated>2023-12-21T15:14:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 21 décembre 2023 à 15:14&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l434&quot;&gt;Ligne 434 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 434 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Note: The ThreeAxisEllipsoid class shares many features with the OneAxisEllipsoid and allows to define an ellipsoid fully defined by its three axis radius (along the directions (0, 0, 1) ; (0, 1, 0) ; (0, 0, 1)).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== BodyShape and OneAxisEllipsoid ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== BodyShape and OneAxisEllipsoid ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key w3?hpatrius?hprod:diff:1.41:old-3623:rev-3624:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Celestial_bodies&amp;diff=3623&amp;oldid=prev</id>
		<title>Admin le 21 décembre 2023 à 15:09</title>
		<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Celestial_bodies&amp;diff=3623&amp;oldid=prev"/>
		<updated>2023-12-21T15:09:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 21 décembre 2023 à 15:09&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l437&quot;&gt;Ligne 437 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 437 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== BodyShape and OneAxisEllipsoid ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== BodyShape and OneAxisEllipsoid ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OneAxisEllipsoid implements the EllipsoidBodyShape interface, which extends the StarConvexBodyShape interface, which, at its turn, extends the BodyShape interface.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OneAxisEllipsoid &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;extends the AbstractEllipsoidBodyShape class (also extended by ThreeAxisEllipsoid) and AbstractEllipsoidBodyShape &lt;/ins&gt;implements the EllipsoidBodyShape interface, which extends the StarConvexBodyShape interface, which, at its turn, extends the BodyShape interface.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See the [MIS_SENSORS_PatriusBodySpheroid specific page] for more details.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See the [MIS_SENSORS_PatriusBodySpheroid specific page] for more details.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key w3?hpatrius?hprod:diff:1.41:old-3583:rev-3623:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Celestial_bodies&amp;diff=3583&amp;oldid=prev</id>
		<title>Admin : Page créée avec « __NOTOC__  == Introduction == === Scope === The celestial bodies are described by their main features : position and geometry. The positions are ephemeris that must be loa... »</title>
		<link rel="alternate" type="text/html" href="https://patrius.cnes.fr/index.php?title=User_Manual_4.13_Celestial_bodies&amp;diff=3583&amp;oldid=prev"/>
		<updated>2023-12-19T13:54:39Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « __NOTOC__  == Introduction == === Scope === The celestial bodies are described by their main features : position and geometry. The positions are ephemeris that must be loa... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__ &lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== Scope ===&lt;br /&gt;
The celestial bodies are described by their main features : position and geometry. The positions are ephemeris that must be loaded from models, the geometries are created as one axis ellipsoids or facet bodies.&lt;br /&gt;
The package provides a factory able to create any celestial body of the solar system.&lt;br /&gt;
&lt;br /&gt;
=== Javadoc ===&lt;br /&gt;
The classes for bodies description are available in the package &amp;lt;code&amp;gt;bodies&amp;lt;/code&amp;gt; of Patrius.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Javadoc&lt;br /&gt;
|-&lt;br /&gt;
|Orekit&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/package-summary.html Package fr.cnes.sirius.patrius.bodies]&lt;br /&gt;
|-&lt;br /&gt;
|Patrius&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/package-summary.html Package fr.cnes.sirius.patrius.bodies]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
Orekit bodies : [https://www.orekit.org/static/architecture/bodies.html Orekit Bodies architecture description ]&lt;br /&gt;
&lt;br /&gt;
IAU report : [https://astrogeology.usgs.gov/groups/iau-wgccre Report of the IAU Working Group on Cartographic Coordinates and Rotational Elements: 2009]&lt;br /&gt;
&lt;br /&gt;
=== Useful Documents ===&lt;br /&gt;
None as of now.&lt;br /&gt;
&lt;br /&gt;
=== Package Overview ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
== Features Description ==&lt;br /&gt;
=== Celestial bodies ===&lt;br /&gt;
The Moon, the Sun and planets of the solar system are all represented by the [{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/CelestialBody.html CelestialBody] interface. This class associates a name (eg Sun) to :&lt;br /&gt;
* a gravitational coefficient GM &lt;br /&gt;
*a body centered ICRF frame (which can be retrieved with method &amp;lt;code&amp;gt;getICRF()&amp;lt;/code&amp;gt;).&lt;br /&gt;
*a body centered EME2000 frame (which can be retrieved with method &amp;lt;code&amp;gt;getEME2000()&amp;lt;/code&amp;gt;).&lt;br /&gt;
*a body centered inertial frame taking into account only the constant part (α, δ) of IAUPole (which can be retrieved with method &amp;lt;code&amp;gt;getInertialFrame(IAUPoleModelType.CONSTANT)&amp;lt;/code&amp;gt;).&lt;br /&gt;
*a body centered inertial frame taking into account only the constant and secular parts (α, δ) of IAUPole (which can be retrieved with method &amp;lt;code&amp;gt;getInertialFrame(IAUPoleModelType.MEAN)&amp;lt;/code&amp;gt;).&lt;br /&gt;
*a body centered inertial frame taking into account the constant secular and harmonics parts (α, δ) of IAUPole (which can be retrieved with method &amp;lt;code&amp;gt;getInertialFrame(IAUPoleModelType.TRUE)&amp;lt;/code&amp;gt;).&lt;br /&gt;
*a body centered rotating frame taking into account only the constant part w of IAUPole (which can be retrieved with method &amp;lt;code&amp;gt;getRotatingFrame(IAUPoleModelType.CONSTANT)&amp;lt;/code&amp;gt;). It&amp;#039;s parent frame is the inertial equator frame.&lt;br /&gt;
*a body centered rotating frame taking into account only the constant and secular parts w of IAUPole (which can be retrieved with method &amp;lt;code&amp;gt;getRotatingFrame(IAUPoleModelType.MEAN)&amp;lt;/code&amp;gt;). It&amp;#039;s parent frame is the mean equator frame.&lt;br /&gt;
*a body centered rotating frame taking into account the constant secular and harmonics parts w of IAUPole (which can be retrieved with method &amp;lt;code&amp;gt;getRotatingFrame(IAUPoleModelType.TRUE)&amp;lt;/code&amp;gt;). It&amp;#039;s parent frame is the true equator frame.&lt;br /&gt;
&lt;br /&gt;
Inertially-oriented and body-oriented frames are defined in the following way:&lt;br /&gt;
* Body-centered inertial frame is centered on the celestial body centered and pole axis (Z axis) is shifted by right ascension α and declination δ.&lt;br /&gt;
* Body-centered rotating frame is linked to inertially-oriented frame by a rotation of angle W(t) (reference values for W(t) is provided by IAU).&lt;br /&gt;
&lt;br /&gt;
To build a celestial body, the user can:&lt;br /&gt;
* use the static methods of the &amp;lt;code&amp;gt;CelestialBodyFactory&amp;lt;/code&amp;gt; to create instances of the most common celestial bodies (Moon, Sun, Jupiter, etc.). JPL Ephemeris data are used. Warning: using the factory requires to load JPL Ephemeris data beforehand.&lt;br /&gt;
* use the simplified models (Meeus, etc.).&lt;br /&gt;
* creates its own celestial body using the class &amp;lt;code&amp;gt;UserCelestialBody&amp;lt;/code&amp;gt; as well as its own pole motion using the class &amp;lt;code&amp;gt;UserIAUPole&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For the two first case (JPL and Meeus), the pole data of the body are automatically retrieved using the IAU data through &amp;lt;code&amp;gt;IAUPoleFactory&amp;lt;/code&amp;gt; class (data is contained within PATRIUS).&lt;br /&gt;
By default, IAU pole data for planetary bodies (including Sun and moon) are available in PATRIUS through the use of the &amp;lt;code&amp;gt;IAUPoleFactory.getIAUPole()&amp;lt;/code&amp;gt;. Data come from the IAU 2009 working group Technical Note.&lt;br /&gt;
&lt;br /&gt;
These methods are detailed in the following sections.&lt;br /&gt;
&lt;br /&gt;
=== Ephemeris Loader ===&lt;br /&gt;
For any celestial body of the Solar System, the actual computation of its position and velocity relies on the JPL planetary ephemerides files. These files are binary files and loaded thanks to the JPLCelestialBodyLoader object.&lt;br /&gt;
&lt;br /&gt;
Note that celestial bodies and associated ephemeris loaders are distinct: a class loads the ephemeris returning a &amp;lt;code&amp;gt;CelestialBodyEphemeris&amp;lt;/code&amp;gt; while the other loads the whole &amp;lt;code&amp;gt;CelestialBody&amp;lt;/code&amp;gt;.&lt;br /&gt;
However, for sake of clarity, the main visible loaders are celestial body loaders.&lt;br /&gt;
&lt;br /&gt;
For the moment, this object is able to load JPL DE XXX files and IMCCE INPOP files which are the most commonly used data files (see below for an exact list of accepted files). For instance with the most common files, the JPL DE 405 covers the years 1600 to 2200 at maximum precision, the JPL DE 406 covers the years-3000 to +3000 at only slightly reduced precision. The DE 405 file is the basis for the Astronomical Almanac and leads to sufficiently accurate results and, for most purposes, even the accuracy of DE 406 is sufficient.&lt;br /&gt;
&lt;br /&gt;
==== JPLCelestialBodyLoader ====&lt;br /&gt;
&lt;br /&gt;
In order to generate the ephemerides of one celestial body of the Solar System, one has to use the JPLCelestialBodyLoader as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;   &lt;br /&gt;
final JPLCelestialBodyLoader loaderEMB = new JPLCelestialBodyLoader(fileName, &lt;br /&gt;
                   EphemerisType.EARTH_MOON);&lt;br /&gt;
final JPLCelestialBodyLoader loaderSSB = new JPLCelestialBodyLoader(fileName, &lt;br /&gt;
                   EphemerisType.SOLAR_SYSTEM_BARYCENTER);&lt;br /&gt;
CelestialBodyFactory.addCelestialBodyLoader(CelestialBodyFactory.EARTH_MOON, loaderEMB);&lt;br /&gt;
CelestialBodyFactory.addCelestialBodyLoader(CelestialBodyFactory.SOLAR_SYSTEM_BARYCENTER, loaderSSB);&lt;br /&gt;
&lt;br /&gt;
// Reference frame&lt;br /&gt;
Frame icrf = FramesFactory.getICRF();&lt;br /&gt;
&lt;br /&gt;
// Ephemeris of the Sun&lt;br /&gt;
JPLCelestialBodyLoaderloader = new JPLCelestialBodyLoader(&amp;quot;unxp2000.405&amp;quot;, &lt;br /&gt;
                EphemerisType.SUN);&lt;br /&gt;
&lt;br /&gt;
// Creation of the Sun&lt;br /&gt;
CelestialBody sun = loader.loadCelestialBody(CelestialBodyFactory.SUN);&lt;br /&gt;
&lt;br /&gt;
// Coordinates of the Sun given a date and a reference frame&lt;br /&gt;
PVCoordinates pvSun = sun.getPVCoordinates(date, icrf);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the user wants to create a JPLCelestialBodyLoader, first of all, he must supply the folder where the DE XXX files are stored. Then he has to give the name of the file which contains the data (DE XXX), the type of celestial body and a date (desired central date) as entries of the JPLCelestialBodyLoader.&lt;br /&gt;
&lt;br /&gt;
The first argument (name of the data file) may be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;. In this case, Patrius takes the first compatible file found. If one wants only files from the DE 405 ephemerides, for instance, he has to give the String &amp;lt;code&amp;gt; &amp;quot;^unx[mp](\\d\\d\\d\\d)\\.(?:405)$&amp;quot;&amp;lt;/code&amp;gt;. The last argument can also be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;. If the central date is not mentionned an arbitrary 100 days range will be loaded whereas if it is mentionned all data within a +/-50 days range around this date will be loaded.&lt;br /&gt;
&lt;br /&gt;
Once the data is loaded, thanks to the JPLCelestialBodyLoader, the user can create the celestial body with the method loadCelestialBody() of the JPLCelestialBodyLoaderclass. To do so, the user has to be sure that all required data is loaded. Indeed, apart from the Moon, the Earth and the Earth-Moon barycenter, the creation of a celestial body requires some data on the Earth Moon barycenter and the Solar System barycenter in order to instanciate the frame in which the ephemerides of the celestial body will be defined. Therefore, the user has to create a JPLCelestialBodyLoaderfor the Earth-Moon barycenter and the Solar System barycenter prior to creating the celestial body, otherwise Patrius will arbitrarily load a DE file to generate the corresponding ephemerides that are used afterwards for the generation of the frame. Then the user has to complete the list of the loaders of the CelestialBodyFactory with these two loaders before calling the method loadCelestialBody().&lt;br /&gt;
&lt;br /&gt;
NB : The user has to clean the CelestialBodyFactory memory if he does not want to work with the previously defined celestial bodies.&lt;br /&gt;
&lt;br /&gt;
==== JPL ephemerides ====&lt;br /&gt;
&lt;br /&gt;
The JPL ephemerides data is available on the [ftp://ssd.jpl.nasa.gov/pub/eph/planets/ JPL FTP server] [R3].&lt;br /&gt;
&lt;br /&gt;
Available ephemerides :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Development Ephemerides&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Created in...&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
|DE200&lt;br /&gt;
|September 1981&lt;br /&gt;
|includes nutations but not librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the dynamical equator and equinox of 2000.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2305424.13 (1599 DEC 09)  to  JED 2513360.5 (2169 MAR 31).&lt;br /&gt;
&lt;br /&gt;
This ephemeris was used for  the Astronomical Almanac from 1984 to 2003. (See Standish, 1982 and Standish, 1990).&lt;br /&gt;
|-&lt;br /&gt;
|DE202&lt;br /&gt;
|October 1987&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the dynamical equator and equinox of 2000.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2414992.5 (1899 DEC 04) to  JED 2469808.5 (2050 JAN 02).&lt;br /&gt;
|-&lt;br /&gt;
|DE403&lt;br /&gt;
|May 1993&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the International Celestial Reference Frame.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2305200.5 (1599 APR 29) to  JED 2524400.5 (2199 JUN 22).&lt;br /&gt;
&lt;br /&gt;
Fit to planetary and lunar laser ranging data.(See Folkner et al. 1994).&lt;br /&gt;
|-&lt;br /&gt;
|DE405, DE406&lt;br /&gt;
|May 1997&lt;br /&gt;
|For the DE405:&lt;br /&gt;
&lt;br /&gt;
includes both nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the International Celestial Reference Frame.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2305424.130  (1599 DEC 09)  to  JED 2525008.50  (2201 FEB 20)&lt;br /&gt;
&lt;br /&gt;
For the DE406 :&lt;br /&gt;
&lt;br /&gt;
the same as the DE405 except the time span : Spans JED 0624976.50 (-3001 FEB 04) to 2816912.50 (+3000 MAY 06)&lt;br /&gt;
&lt;br /&gt;
This is the same integration as DE405, with the accuracy of the interpolating polynomials has been lessened to reduce file size for the longer time span covered by the file.&lt;br /&gt;
|-&lt;br /&gt;
|DE410&lt;br /&gt;
|April 2003&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the International Celestial Reference Frame.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2415056.5 (1900 FEB 06) to JED 2458832.5 (2019 DEC 15).&lt;br /&gt;
&lt;br /&gt;
Ephemeris used for Mars Exploration Rover navigation.&lt;br /&gt;
|-&lt;br /&gt;
|DE413&lt;br /&gt;
|November 2004&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the International Celestial Reference Frame.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2414992.5, (1899 DEC 04) to JED 2469872.5 (2050 MAR 07).&lt;br /&gt;
&lt;br /&gt;
Created to update the orbit of Pluto to aid in planning for an occultation of a relatively bright star by Charon on 11 July 2005.&lt;br /&gt;
|-&lt;br /&gt;
|DE414&lt;br /&gt;
|May 2005&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2414992.5, (1899 DEC 04) to JED 2469872.5 (2050 MAR 07).&lt;br /&gt;
&lt;br /&gt;
Fit to ranging data from MGS and Odyssey through 2003. (See Konopliv et al., 2006.)&lt;br /&gt;
|-&lt;br /&gt;
|DE418&lt;br /&gt;
|August 2007&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2414864.13 (1899 JUL 29) to JED 2470192.5 (2051 JAN 21)&lt;br /&gt;
|-&lt;br /&gt;
|DE421&lt;br /&gt;
|February 2008&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the International Celestial Reference Frame.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2414864.13 (1899 JUL 29) to JED 2471184.13 (2053 OCT 09)&lt;br /&gt;
&lt;br /&gt;
Fit to planetary and lunar laser ranging data. (See Folkner et al., 2009)&lt;br /&gt;
|-&lt;br /&gt;
|DE422&lt;br /&gt;
|September 2009&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the International Celestial Reference Frame.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 625648.5, (-3000 DEC 07) to JED 2816816.5, (3000 JAN 30).&lt;br /&gt;
&lt;br /&gt;
Intended for the MESSENGER mission to Mercury.&amp;lt;br&amp;gt;&lt;br /&gt;
Extended integration time to serve as successor to DE406.&amp;lt;br&amp;gt;&lt;br /&gt;
Fit to ranging data from MGS and Odyssey through 2003. (See Konopliv et al., 2010.)&lt;br /&gt;
|-&lt;br /&gt;
|DE423&lt;br /&gt;
|February 2010&lt;br /&gt;
|includes nutations and librations.&amp;lt;br&amp;gt;&lt;br /&gt;
Referred to the International Celestial Reference Frame  version 2.0.&amp;lt;br&amp;gt;&lt;br /&gt;
Covers JED 2378480.5, (1799 DEC 16) to JED  2524624.13, (2200 FEB 02).&lt;br /&gt;
&lt;br /&gt;
Intended for the MESSENGER mission to Mercury.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== IMCCE INPOP ephemerides ====&lt;br /&gt;
&lt;br /&gt;
The IMCCE INPOP ephemeris is available on IMCCE website.&lt;br /&gt;
&lt;br /&gt;
Available INPOP ephemerides :&lt;br /&gt;
* 06b&lt;br /&gt;
* 06c&lt;br /&gt;
* 08a&lt;br /&gt;
* 10a&lt;br /&gt;
* 10b&lt;br /&gt;
* 10e&lt;br /&gt;
* 13c&lt;br /&gt;
* 17a&lt;br /&gt;
* 19a&lt;br /&gt;
&lt;br /&gt;
=== Simplified analytical models ===&lt;br /&gt;
==== Meeus Model ====&lt;br /&gt;
&lt;br /&gt;
The Meeus Model is a simplified model which gives the position of the Sun and the Moon with respect to the time T expressed in centuries (TT time scale). This model is an analytical model less precise than the DE ephemerides given by JPL. It is adapted for onboard applications.&lt;br /&gt;
The class implementing the Meeus Model allows three different models computing the position of the Sun with appropriate equations : the standard model (provided by Jean Meeus), the Stela model and an onboard model. The main differences between these model is the computation of the obliquity of the ecliptic : indeed, its value is fixed to 0 for the standard model, given by an expression involving &amp;lt;math&amp;gt;T, T^{2}&amp;lt;/math&amp;gt;for Stela model and &amp;lt;math&amp;gt;T, T^{2}, T^{3}&amp;lt;/math&amp;gt; for the onboard model.&lt;br /&gt;
Moreover, the onboard model computed the position in J2000 frame, whereas standard and Stela models use respectively EOD and MOD frame.&lt;br /&gt;
&lt;br /&gt;
Regarding the precision, one has to expect a maximum difference of 25593km in position for the Sun and a maximum angular difference of 34.13&amp;#039;&amp;#039; (wrt DE405 ephemerides). For the Moon, one has to expect a maximum difference of 26 km in position and a maximum angular difference of 15.2&amp;#039;&amp;#039; (wrt DE405 ephemerides). As for the performances (in terms of execution time), the Meeus model for the Sun is faster than the DE405 ephemerides. However, we did not come to the same conclusion for the Moon even by decreasing the degree of precision (number of terms taken into account to compute the latitude, longitude and distance which are needed to compute in fine the position of the Moon).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Deviation in position wrt DE423&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Angular deviation wrt DE423&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Sun&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|12000 km&lt;br /&gt;
|34.13&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 62x66x46&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|12.4 km&lt;br /&gt;
|15.2&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 26x13x13&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|225 km&lt;br /&gt;
|122&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 9x4x3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|1591 km&lt;br /&gt;
|889&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Deviation in position wrt DE405&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Angular deviation wrt DE405&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Sun&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|25593km&lt;br /&gt;
|34.13&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 62x66x46&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|26 km&lt;br /&gt;
|15.2&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Number of elementary operations&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Number of trigonometric operations&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Sun&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|89&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 62x66x46&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|2671&lt;br /&gt;
|182&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 26x13x13&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|917&lt;br /&gt;
|60&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 9x4x3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|401&lt;br /&gt;
|24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
References for the tables : &lt;br /&gt;
* &amp;quot;Modèles d&amp;#039;éphémérides luni-solaires&amp;quot;, CNES DCT/SB/MS, 03/14/2011&lt;br /&gt;
* &amp;quot;Modèle MEEUS pour éphémérides Lune-Soleil : Compléments sur le nombre d&amp;#039;opérations&amp;quot;, CNES DCT/SB/MS&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| execution time - DE405&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| execution time- MEEUS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Sun&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|59 s 548 ms&lt;br /&gt;
|19 s 938 ms&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 62x66x46&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|11 s 625 ms&lt;br /&gt;
|3 mn 22 s 323 ms&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 26x13x13&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|11 s 625 ms&lt;br /&gt;
|1 mn 17 s 74 ms&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Moon 9x4x3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|11 s 625 ms&lt;br /&gt;
|40 s 326 ms&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In order to build such a Sun or Moon, one has to use the object MeeusSun or MeeusMoon which both extend AbstractCelestialBody. Note that it is not possible to build those celestial bodies from the CelestialBodyFactory, for the moment.&lt;br /&gt;
&lt;br /&gt;
==== Basic board Sun model ====&lt;br /&gt;
The basic board Sun  model is a simplified analytical model which gives the direction of the Sun (the normalized position) with respect to time. &lt;br /&gt;
This model is similar to the Meeus model (the constants of the model are different) and is adapted for onboard applications. &lt;br /&gt;
The reference inertial frame is the CIRF.&lt;br /&gt;
&lt;br /&gt;
=== User-defined celestial bodies ===&lt;br /&gt;
User can defined its own celestial body by using &amp;lt;code&amp;gt;UserCelestialBody&amp;lt;/code&amp;gt;.&lt;br /&gt;
This class requires to provide:&lt;br /&gt;
* Its name.&lt;br /&gt;
* Its position-velocity through time using a &amp;lt;code&amp;gt;PVCoordinateProvider&amp;lt;/code&amp;gt; implementation.&lt;br /&gt;
* Its gravitational constant.&lt;br /&gt;
* Its pole motion using &amp;lt;code&amp;gt;IAUPole&amp;lt;/code&amp;gt; implementation or directly the &amp;lt;code&amp;gt;UserIAUPole&amp;lt;/code&amp;gt; implementation.&lt;br /&gt;
The &amp;lt;code&amp;gt;UserIAUPole&amp;lt;/code&amp;gt; is a simple way to build standard pole motion from IAU note. It requires to provide for each component (α, δ and W) a list of functions of duration in days and duration in centuries (from a reference epoch) as defined in IAU note. This functions are &amp;lt;code&amp;gt;UnivariateDifferentiableFunction&amp;lt;/code&amp;gt;.&lt;br /&gt;
Available functions in PATRIUS include:&lt;br /&gt;
* &amp;lt;code&amp;gt;PolynomialFunction&amp;lt;/code&amp;gt;: polynomial function&lt;br /&gt;
* &amp;lt;code&amp;gt;SineFunction&amp;lt;/code&amp;gt;: function of the form k.sin(f) with f an &amp;lt;code&amp;gt;UnivariateDifferentiableFunction&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CosineFunction&amp;lt;/code&amp;gt;: function of the form k.cos(f) with f an &amp;lt;code&amp;gt;UnivariateDifferentiableFunction&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example: building Ceres&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
According to the IAU report, Ceres has the following parameters:&lt;br /&gt;
* α = 291◦ ± 5◦&lt;br /&gt;
* δ = 59◦ ± 5◦&lt;br /&gt;
* W = 170.90◦ + 952.1532◦d&lt;br /&gt;
With &amp;#039;&amp;#039;d&amp;#039;&amp;#039; being the interval in days from the standard epoch (the standard epoch is JD 2451545.0, i.e. 2000 January 1 12 hours TDB)&lt;br /&gt;
&lt;br /&gt;
Ceres gravitational constant is 6.263E10 m^^3^^kg^^-1^^s^^-2^^.&lt;br /&gt;
&lt;br /&gt;
If one knows Ceres motion given for instance by a &amp;lt;code&amp;gt;PVCoordinatePropagator&amp;lt;/code&amp;gt; &amp;#039;&amp;#039;pv&amp;#039;&amp;#039;, then one can build Ceres with the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Gravitational parameter&lt;br /&gt;
final double gm = 6.263E10;&lt;br /&gt;
&lt;br /&gt;
// Pole motion - Method 1 - Implementation if IAUPole interface&lt;br /&gt;
final IAUPole pole = new IAUPole() {&lt;br /&gt;
    @Override&lt;br /&gt;
    public double getPrimeMeridianAngle(final AbsoluteDate date) {&lt;br /&gt;
        // W&lt;br /&gt;
        final double d = date.durationFrom(AbsoluteDate.J2000_EPOCH) / Constants.JULIAN_DAY;&lt;br /&gt;
        return FastMath.toRadians(170.90) + FastMath.toRadians(952.1532)* d;&lt;br /&gt;
    }&lt;br /&gt;
            &lt;br /&gt;
    @Override&lt;br /&gt;
    public Vector3D getPole(final AbsoluteDate date) {&lt;br /&gt;
        // Pole bias: alpha and delta&lt;br /&gt;
        return new Vector3D(FastMath.toRadians(291), FastMath.toRadians(59));&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Pole motion - Method 2 - Use of UserIAUPole class&lt;br /&gt;
// Alpha 0 coefficients&lt;br /&gt;
final List&amp;lt;IAUPoleFunction&amp;gt; alpha0List = new ArrayList&amp;lt;IAUPoleFunction&amp;gt;();&lt;br /&gt;
alpha0List.add(new IAUPoleFunction(IAUPoleType.CONSTANT, new PolynomialFunction(new double[] { 291 }), IAUTimeDependency.DAYS);&lt;br /&gt;
final IAUPoleCoefficients1D alpha0Coeffs = new IAUPoleCoefficients1D(alpha0List);&lt;br /&gt;
// Delta 0 coefficients&lt;br /&gt;
final List&amp;lt;IAUPoleFunction&amp;gt; delta0List = new ArrayList&amp;lt;IAUPoleFunction&amp;gt;();&lt;br /&gt;
delta0List.add(new IAUPoleFunction(IAUPoleType.CONSTANT, new PolynomialFunction(new double[] { 59 }), IAUTimeDependency.DAYS);&lt;br /&gt;
final IAUPoleCoefficients1D delta0Coeffs = new IAUPoleCoefficients1D(delta0List );&lt;br /&gt;
// W coefficients&lt;br /&gt;
final List&amp;lt;IAUPoleFunction&amp;gt; w0List = new ArrayList&amp;lt;IAUPoleFunction&amp;gt;();&lt;br /&gt;
w0List.add(new IAUPoleFunction(IAUPoleType.CONSTANT, new PolynomialFunction(new double[] { 170.9 }), IAUTimeDependency.DAYS);&lt;br /&gt;
w0List.add(new IAUPoleFunction(IAUPoleType.SECULAR, new PolynomialFunction(new double[] { 0, 952.1532 }), IAUTimeDependency.DAYS);&lt;br /&gt;
final IAUPoleCoefficients1D wCoeffs = new IAUPoleCoefficients1D(w0List);&lt;br /&gt;
// Build pole&lt;br /&gt;
final IAUPole pole = new UserIAUPole(new IAUPoleCoefficients(alpha0Coeffs, delta0Coeffs, wCoeffs));&lt;br /&gt;
&lt;br /&gt;
// Build Ceres body&lt;br /&gt;
final CelestialBody ceres = new UserCelestialBody(&amp;quot;Ceres&amp;quot;, pv, gm, pole, FramesFactory.getICRF(), null);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;code&amp;gt;ceres&amp;lt;/code&amp;gt; object possesses all features of:&lt;br /&gt;
* A &amp;lt;code&amp;gt;CelestialBody&amp;lt;/code&amp;gt;: retrieve body-centered inertial frames or body-centered rotating frames&lt;br /&gt;
* A &amp;lt;code&amp;gt;PVCoordinateProvider&amp;lt;/code&amp;gt;: retrieve position and velocity at any time&lt;br /&gt;
&lt;br /&gt;
=== Body shapes ===&lt;br /&gt;
The one-axis ellipsoid is a good approximate model for most planet-size and larger natural bodies. It is the equilibrium shape reached by a fluid body under its own gravity field when it rotates. The symmetry axis is the rotation or polar axis.&lt;br /&gt;
&lt;br /&gt;
==== OneAxisEllipsoid ====&lt;br /&gt;
&lt;br /&gt;
This type is used to represent the shape of a planet. One very useful implementation represents an ellipsoid (OneAxisEllipsoid). It is constructed from an equatorial radius, a flattening coefficient, and a reference frame that will be used to localize Geodetic points on the shape.&lt;br /&gt;
&lt;br /&gt;
It could be interesting to obtain the intersection point of a line from the satellite to the surface of the body for a given altitude. To that purpose, one can use the method getIntersectionPoint(Line, Vector3D, Frame, AbsoluteDate, double) of the interface BodyShape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
AbsoluteDate date = new AbsoluteDate(new DateComponents(2008, 03, 21),&lt;br /&gt;
                                             TimeComponents.H12,&lt;br /&gt;
                                             TimeScalesFactory.getUTC());       &lt;br /&gt;
CelestialBodyFrame frame = FramesFactory.getITRF();&lt;br /&gt;
// Body shape model&lt;br /&gt;
OneAxisEllipsoid earth = new OneAxisEllipsoid(6378136.460, 1 / 298.257222101, frame);&lt;br /&gt;
&lt;br /&gt;
// Satellite on any position&lt;br /&gt;
&lt;br /&gt;
circ = new CircularOrbit(7178000.0, 0.5e-4, 0., FastMath.toRadians(50.), FastMath.toRadians(0.),&lt;br /&gt;
                                   FastMath.toRadians(90.), PositionAngle.MEAN, &lt;br /&gt;
                                   FramesFactory.getEME2000(), date, mu);&lt;br /&gt;
        &lt;br /&gt;
// Transform satellite position to position/velocity parameters in EME2000 and ITRF200B&lt;br /&gt;
PVCoordinates pvSatEME2000 = circ.getPVCoordinates();&lt;br /&gt;
PVCoordinates pvSatItrf  = frame.getTransformTo(FramesFactory.getEME2000(), date).transformPVCoordinates(pvSatEME2000);&lt;br /&gt;
Vector3D pSatItrf  = pvSatItrf.getPosition();&lt;br /&gt;
        &lt;br /&gt;
// Nadir point of the satellite&lt;br /&gt;
Vector3D pointItrf     = new Vector3D.ZERO;&lt;br /&gt;
Vector3D direction = Vector3D(1., pSatItrf,-1., pointItrf);&lt;br /&gt;
Line line = new Line(pSatItrf, direction);&lt;br /&gt;
// intersection point between the ellipsoid and the line that joins the satellite and the center of the body&lt;br /&gt;
double altitude  = 0;&lt;br /&gt;
EllipsoidPoint nadir = earth.getIntersectionPoint(line, pSatItrf, frame, date, altitude);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== BodyShape and OneAxisEllipsoid ====&lt;br /&gt;
&lt;br /&gt;
OneAxisEllipsoid implements the EllipsoidBodyShape interface, which extends the StarConvexBodyShape interface, which, at its turn, extends the BodyShape interface.&lt;br /&gt;
See the [MIS_SENSORS_PatriusBodySpheroid specific page] for more details.&lt;br /&gt;
&lt;br /&gt;
==== Facet celestial body ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;FacetBodyShape&amp;lt;/code&amp;gt; is a class used to define a celestial body as a mesh. This is particularly useful for small irregular bodies such as asteroids.&lt;br /&gt;
For example, Phobos contains here 100 000 vertices and 200 000 facets:&lt;br /&gt;
[[File:Phobos.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
This class:&lt;br /&gt;
* Inherits the &amp;lt;code&amp;gt;BodyShape&amp;lt;/code&amp;gt; interface and hence can be used together with &amp;lt;code&amp;gt;EclipseDetector&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SensorModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Provides some useful and optimised methods for small body handling. Facets are connected to each other allowing some methods to be writen in a recursive or iterative way and hence being very fast. If &amp;lt;i&amp;gt;n&amp;lt;/i&amp;gt; is the number of vertices of the body, fast recursive or iterative methods are in O(log(n)).&lt;br /&gt;
&lt;br /&gt;
For use as a &amp;lt;code&amp;gt;CelestialBody&amp;lt;/code&amp;gt;, this class must be linked to a &amp;lt;code&amp;gt;UserCelestialBody&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Mesh provider =====&lt;br /&gt;
&lt;br /&gt;
A mesh is described by a list of facets &amp;lt;code&amp;gt;Triangle&amp;lt;/code&amp;gt; and or vertices &amp;lt;code&amp;gt;Vertex&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;Triangle&amp;lt;/code&amp;gt; contains three vertices.&lt;br /&gt;
Mesh is provided by the generic interface &amp;lt;code&amp;gt;MeshProvider&amp;lt;/code&amp;gt;. This interface currently possesses two implementation:&lt;br /&gt;
* &amp;lt;code&amp;gt;ObjMeshLoader&amp;lt;/code&amp;gt;: in this case, the mesh is provided under official .obj file format. See [https://en.wikipedia.org/wiki/Wavefront_.obj_file This page] for more information on the format.&lt;br /&gt;
* &amp;lt;code&amp;gt;GeodeticMeshLoader&amp;lt;/code&amp;gt;: in this case, the mesh is provided in an ASCII column file listing each vertex in the format [Latitude Longitude Altitude].&lt;br /&gt;
&lt;br /&gt;
===== Available methods =====&lt;br /&gt;
&lt;br /&gt;
Note that most methods return &amp;lt;b&amp;gt;exact&amp;lt;/b&amp;gt; results. For example, &amp;lt;code&amp;gt;distanceTo&amp;lt;/code&amp;gt; methods returns exact distance to mesh body. Only &amp;lt;code&amp;gt;getEllipsoid(EllipsoidType)&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;getApparentRadius&amp;lt;/code&amp;gt; methods return a simplified result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;FacetBodyShape&amp;lt;/code&amp;gt; provides the following methods:&lt;br /&gt;
* &amp;lt;code&amp;gt;getIntersection(Line, Vector3D, Frame, AbsoluteDate)&amp;lt;/code&amp;gt; and similar which return an &amp;lt;code&amp;gt;Intersection&amp;lt;/code&amp;gt; object.This object contains the intersection point as well as the &amp;lt;code&amp;gt;Triangle&amp;lt;/code&amp;gt; containing the intersection point. This method is recursive and is in O(log(n)).&lt;br /&gt;
* &amp;lt;code&amp;gt;buildPoint(LLHCoordinatesSystem, double, double, double, String)&amp;lt;/code&amp;gt; and similar which return the facet point associated to the specified corrinates in the given LLH coordinates system.&lt;br /&gt;
* &amp;lt;code&amp;gt;getApparentRadius()&amp;lt;/code&amp;gt; methods which provides the local radius from an object and an occulted body using an approximate iterative algorithm. This method is to be used only by &amp;lt;code&amp;gt;EclipseDetector&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;resize(MarginType, double)&amp;lt;/code&amp;gt; method which returns a resized body shape.&lt;br /&gt;
* &amp;lt;code&amp;gt;closestPointTo&amp;lt;/code&amp;gt; methods which return the two closest points between the line given in input and the current facet body shape. One of the two points belongs to the line, the other to the facet body shape.&lt;br /&gt;
* &amp;lt;code&amp;gt;distanceTo()&amp;lt;/code&amp;gt; method which returns the distance to the body. This method is recursive and is hence in O(log(n)).&lt;br /&gt;
* &amp;lt;code&amp;gt;getNeighbors()&amp;lt;/code&amp;gt; methods which returns the neighbors triangles to:&lt;br /&gt;
** A point or a triangle given a &amp;quot;neighborhood distance&amp;quot;&lt;br /&gt;
** A triangle given a &amp;quot;neighborhood order&amp;quot;. In this case, order 1 returns the immediate neighbors of the triangles, order 2 returns also the neighbors&amp;#039; neighbors and so on.&lt;br /&gt;
This method is recursive and is hence in O(log(n)).&lt;br /&gt;
* &amp;lt;code&amp;gt;getFieldData()&amp;lt;/code&amp;gt; which returns a container &amp;lt;code&amp;gt;FieldData&amp;lt;/code&amp;gt; containing data related to the field of view:&lt;br /&gt;
** Visible triangles from the satellite field of view &amp;lt;code&amp;gt;IFieldOfView&amp;lt;/code&amp;gt;. A visible triangle must be entirely in the field of view and not masked by any other triangle.&lt;br /&gt;
** Contour of the seen triangles. Contour is strictly contained in the field of view&lt;br /&gt;
If main direction of the field of view is provided, this method is recursive and is in O(log(n)). Otherwise, it is in O(n) and is much slower.&lt;br /&gt;
* &amp;lt;code&amp;gt;isInEclipse()&amp;lt;/code&amp;gt; method which returns true if the satellite is currently in eclipse, false otherwise. Penumbra is not taken into account. This method is in O(log(n)).&lt;br /&gt;
* &amp;lt;code&amp;gt;getNeverVisibleTriangles()&amp;lt;/code&amp;gt; which returns a list of facets which are never visible from the provided ephemeris. Visibility criteria is the same as for &amp;lt;code&amp;gt;getFieldData()&amp;lt;/code&amp;gt; method. This method is in O((n)).&lt;br /&gt;
* &amp;lt;code&amp;gt;getNeverEnlightenedTriangles()&amp;lt;/code&amp;gt; which returns a list of facets which are never enlightened by the Sun. Visibility criteria is the same as for &amp;lt;code&amp;gt;getFieldData()&amp;lt;/code&amp;gt; method. This method is in O((n)).&lt;br /&gt;
* &amp;lt;code&amp;gt;getVisibleAndEnlightenedTriangles()&amp;lt;/code&amp;gt; which returns a list of facets which are visible and enlightened at the same time, at least once on the provided ephemeris. Visibility criteria is the same as for &amp;lt;code&amp;gt;getFieldData()&amp;lt;/code&amp;gt; method. This method is in O((n)).&lt;br /&gt;
* &amp;lt;code&amp;gt;getEllipsoidType()&amp;lt;/code&amp;gt; which returns the type of the ellipsoid.&lt;br /&gt;
* &amp;lt;code&amp;gt;getEllipsoid(EllipsoidType)&amp;lt;/code&amp;gt; which returns the ellipsoid corresponding to the ellipsoid type given in input.&lt;br /&gt;
&lt;br /&gt;
==== EllipsoidPoint====&lt;br /&gt;
&lt;br /&gt;
The ellipsoid point is defined by a latitude, a longitude and an altitude in the frame associated to the ellipsoid (EllipsoidBodyShape). It could be interesting to know the position of a satellite in terms of geodetic coordinates rather than Cartesian ones and vice versa (the corresponding methods in OneAxisEllipsoid).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// equatorial radius of the celestial body&lt;br /&gt;
double ae = 6378137.0;&lt;br /&gt;
// flatness of the celestial body&lt;br /&gt;
double f = 1.0 / 298.257222101;&lt;br /&gt;
// date        &lt;br /&gt;
AbsoluteDate date = AbsoluteDate.J2000_EPOCH;&lt;br /&gt;
// reference frame attached to the body        &lt;br /&gt;
CelestialBodyFrame frame = FramesFactory.getITRF();&lt;br /&gt;
// body shape model (ellipsoid)     &lt;br /&gt;
OneAxisEllipsoid model = new OneAxisEllipsoid(ae, f, frame);&lt;br /&gt;
&lt;br /&gt;
// transformation with jacobian matrix : cartesian to geodetic&lt;br /&gt;
&lt;br /&gt;
// initial cartesian point that will be transformed&lt;br /&gt;
Vector3D cp = new Vector3D(4637885.347, 121344.1308, 4362452.869);&lt;br /&gt;
// coresponding ellipsoid point        &lt;br /&gt;
EllipsoidPoint point = model.buildPoint(cp, frame, date, &amp;quot;point&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// transformation with jacobian matrix : geodetic to cartesian&lt;br /&gt;
&lt;br /&gt;
// coresponding Cartesian point        &lt;br /&gt;
Vector3D cp2 = model.computePositionFromEllipsodeticCoordinates(0.852479154923577, 0.0423149994747243, 111.6);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It could be also interesting to obtain the jacobian matrix of the transformation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// transformation : cartesian to geodetic&lt;br /&gt;
&lt;br /&gt;
final double[][] computedJacobian = LLHCoordinatesSystem.ELLIPSODETIC.jacobianFromCartesian(point);&lt;br /&gt;
&lt;br /&gt;
// transformation : geodetic to cartesian&lt;br /&gt;
&lt;br /&gt;
final double[][] computedJacobian2 = LLHCoordinatesSystem.ELLIPSODETIC.jacobianToCartesian(point);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Contents ==&lt;br /&gt;
=== Interfaces ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Interface&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Summary&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Javadoc&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;BodyShape&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Interface representing the rigid surface shape of a natural body.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/BodyShape.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;CelestialBody&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Interface for celestial bodies like Sun, Moon or solar system planets.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/CelestialBody.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;CelestialBodyEphemeris&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Interface for celestial body ephemeris like Sun, Moon or solar system planets.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/CelestialBodyEphemeris.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;CelestialBodyLoader&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Interface for celestial body loaders.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/CelestialBodyLoader.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;CelestialBodyEphemerisLoader&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Interface for celestial body ephemeris loaders.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/CelestialBodyEphemerisLoader.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;MeshLoader&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Interface for FacetCelestialBody mesh provider.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/mesh/MeshProvider.html ...]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Class&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Summary&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Javadoc&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;CelestialBodyFactory&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Factory class for bodies of the solar system.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/CelestialBodyFactory.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;BodyPoint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Point location relative to a 2D body surface.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/GeodeticPoint.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;JPLCelestialBodyLoader&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Loader for JPL ephemerides binary files (DE 405, DE 406, ...).&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/JPLCelestialBodyLoader.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;OneAxisEllipsoid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Modeling of a one-axis ellipsoid.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/OneAxisEllipsoid.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;MeeusSun&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Position of the Sun according to Meeus model. Three models with there appropriate equations are avaible : the standard model (former MeeusSun), Stela model (former MeeuSunStela) and an on-board model&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/MeeusSun.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;MeeusMoon&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Position of the Moon according to Meeus model.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/MeeusMoon.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;BasicBoardSun&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Direction of the Sun according to a basic board Sun model.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/BasicBoardSun.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;UserCelestialBody&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|User-defined celestial body&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/UserCelestialBody.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;UserIAUPole&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|User-defined IAU pole motion&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/UserIAUPole.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;IAUPoleFactory&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Factory for retrieval of solar system bodies IAU pole data&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/IAUPoleFactory.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;IAUPoleFunction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Atomic IAU pole function. IAU pole data is the sum of atomic IAUPoleFunction.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/IAUPoleFunction.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;FacetBodyShape&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Celestial body defined by a mesh.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/mesh/FacetBodyShape.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Triangle&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Unitary facet (triangle) for a FacetCelestialBody.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/mesh/Triangle.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;ObjMeshLoader&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|.obj 3D file mesh loader.&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/mesh/ObjMeshLoader.html ...]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;GeodeticMeshLoader&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|Mesh loader for ASCII files describing the body with latitude/longitude/altitude components (1 per line).&lt;br /&gt;
|[{{JavaDoc4.13}}/fr/cnes/sirius/patrius/bodies/mesh/GeodeticMeshLoader.html ...]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Manual_4.13_Flight_Dynamics]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>