diff --git a/crates/lox-bodies/src/generated.rs b/crates/lox-bodies/src/generated.rs index a0ad923d..b0f886f1 100644 --- a/crates/lox-bodies/src/generated.rs +++ b/crates/lox-bodies/src/generated.rs @@ -9,10 +9,12 @@ // Auto-generated by `lox-gen`. Do not edit! use crate::DynOrigin; +use crate::MaybeMeanRadius; use crate::MaybePointMass; use crate::MaybeRotationalElements; use crate::MaybeSpheroid; use crate::MaybeTriaxialEllipsoid; +use crate::MeanRadius; use crate::NaifId; use crate::NutationPrecessionCoefficients; use crate::Origin; @@ -84,6 +86,11 @@ impl PointMass for Mercury { 22031.868551400003f64 } } +impl MeanRadius for Mercury { + fn mean_radius(&self) -> f64 { + 2439.4f64 + } +} impl TriaxialEllipsoid for Mercury { fn radii(&self) -> Radii { (2440.53f64, 2440.53f64, 2438.26f64) @@ -130,15 +137,13 @@ impl RotationalElements for Mercury { 5.752584270622286f64, 0.10713722462923113f64, 0f64, - Some( - &[ - 0.0001862714861495712f64, - -0.000019601618296223117f64, - -0.00000192684349420174f64, - -0.00000044313909708136026f64, - -0.00000009965830028887623f64, - ], - ), + Some(&[ + 0.0001862714861495712f64, + -0.000019601618296223117f64, + -0.00000192684349420174f64, + -0.00000044313909708136026f64, + -0.00000009965830028887623f64, + ]), ) } } @@ -162,6 +167,11 @@ impl PointMass for Venus { 324858.592f64 } } +impl MeanRadius for Venus { + fn mean_radius(&self) -> f64 { + 6051.8f64 + } +} impl TriaxialEllipsoid for Venus { fn radii(&self) -> Radii { (6051.8f64, 6051.8f64, 6051.8f64) @@ -202,6 +212,11 @@ impl PointMass for Earth { 398600.43550702266f64 } } +impl MeanRadius for Earth { + fn mean_radius(&self) -> f64 { + 6371.0084f64 + } +} impl TriaxialEllipsoid for Earth { fn radii(&self) -> Radii { (6378.1366f64, 6378.1366f64, 6356.7519f64) @@ -273,6 +288,11 @@ impl PointMass for Mars { 42828.37362069909f64 } } +impl MeanRadius for Mars { + fn mean_radius(&self) -> f64 { + 3389.5f64 + } +} impl TriaxialEllipsoid for Mars { fn radii(&self) -> Radii { (3396.19f64, 3396.19f64, 3376.2f64) @@ -371,25 +391,23 @@ impl RotationalElements for Mars { 5.5373921900749785f64, -0.001907216743164288f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000001186823891356144f64, - 0.000004153883619746505f64, - 0.0000009075712110370513f64, - 0.00000015707963267948966f64, - 0.007313924403529878f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000001186823891356144f64, + 0.000004153883619746505f64, + 0.0000009075712110370513f64, + 0.00000015707963267948966f64, + 0.007313924403529878f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -397,30 +415,28 @@ impl RotationalElements for Mars { 0.9500266243444937f64, -0.0010170216810942417f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000000890117918517108f64, - 0.000002460914245312005f64, - 0.0000005410520681182422f64, - 0.00000008726646259971648f64, - 0.02777297060138025f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000000890117918517108f64, + 0.000002460914245312005f64, + 0.0000005410520681182422f64, + 0.00000008726646259971648f64, + 0.02777297060138025f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -428,36 +444,34 @@ impl RotationalElements for Mars { 3.0726497570349416f64, 6.12422041248567f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000002530727415391778f64, - 0.0000027401669256310974f64, - 0.0000006981317007977319f64, - 0.000000017453292519943295f64, - 0.000000017453292519943295f64, - 0.010202182516192693f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000002530727415391778f64, + 0.0000027401669256310974f64, + 0.0000006981317007977319f64, + 0.000000017453292519943295f64, + 0.000000017453292519943295f64, + 0.010202182516192693f64, + ]), ) } } @@ -481,6 +495,11 @@ impl PointMass for Jupiter { 126686531.9003704f64 } } +impl MeanRadius for Jupiter { + fn mean_radius(&self) -> f64 { + 69911f64 + } +} impl TriaxialEllipsoid for Jupiter { fn radii(&self) -> Radii { (71492f64, 71492f64, 66854f64) @@ -531,25 +550,23 @@ impl RotationalElements for Jupiter { 4.6784701644349695f64, -0.00011342894808711148f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0000020420352248333656f64, - 0.000016371188383706813f64, - 0.000024993114888558796f64, - 0.0000005235987755982989f64, - 0.00003752457891787809f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000020420352248333656f64, + 0.000016371188383706813f64, + 0.000024993114888558796f64, + 0.0000005235987755982989f64, + 0.00003752457891787809f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -557,25 +574,23 @@ impl RotationalElements for Jupiter { 1.1256553894213766f64, 0.00004211479485062318f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0000008726646259971648f64, - 0.000007051130178057092f64, - 0.000010768681484805013f64, - -0.00000022689280275926283f64, - 0.00001616174887346749f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000008726646259971648f64, + 0.000007051130178057092f64, + 0.000010768681484805013f64, + -0.00000022689280275926283f64, + 0.00001616174887346749f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -583,25 +598,10 @@ impl RotationalElements for Jupiter { 4.973315703557842f64, 15.193719457141356f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, + 0f64, + ]), ) } } @@ -625,6 +625,11 @@ impl PointMass for Saturn { 37931206.23436167f64 } } +impl MeanRadius for Saturn { + fn mean_radius(&self) -> f64 { + 58232f64 + } +} impl TriaxialEllipsoid for Saturn { fn radii(&self) -> Radii { (60268f64, 60268f64, 54364f64) @@ -686,6 +691,11 @@ impl PointMass for Uranus { 5793951.256527211f64 } } +impl MeanRadius for Uranus { + fn mean_radius(&self) -> f64 { + 25362f64 + } +} impl TriaxialEllipsoid for Uranus { fn radii(&self) -> Radii { (25559f64, 25559f64, 24973f64) @@ -767,6 +777,11 @@ impl PointMass for Neptune { 6835103.145462294f64 } } +impl MeanRadius for Neptune { + fn mean_radius(&self) -> f64 { + 24622f64 + } +} impl TriaxialEllipsoid for Neptune { fn radii(&self) -> Radii { (24764f64, 24764f64, 24341f64) @@ -821,7 +836,16 @@ impl RotationalElements for Neptune { 5.224817648770225f64, 0f64, 0f64, - Some(&[0.012217304763960306f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -829,7 +853,16 @@ impl RotationalElements for Neptune { 0.7585200929167356f64, 0f64, 0f64, - Some(&[-0.00890117918517108f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -837,7 +870,16 @@ impl RotationalElements for Neptune { 4.362939157550385f64, 9.444670799468602f64, 0f64, - Some(&[-0.008377580409572781f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -861,6 +903,11 @@ impl PointMass for Pluto { 869.6138177608748f64 } } +impl MeanRadius for Pluto { + fn mean_radius(&self) -> f64 { + 1188.3f64 + } +} impl TriaxialEllipsoid for Pluto { fn radii(&self) -> Radii { (1188.3f64, 1188.3f64, 1188.3f64) @@ -1147,23 +1194,21 @@ impl RotationalElements for Moon { 4.712299968592838f64, 0.000054105206811824215f64, 0f64, - Some( - &[ - -0.06769608569710406f64, - -0.0021013764194011725f64, - 0.0012217304763960308f64, - -0.0003001966313430247f64, - 0f64, - 0.0001256637061435917f64, - 0f64, - 0f64, - 0f64, - -0.00009075712110370513f64, - 0f64, - 0f64, - 0.00007504915783575618f64, - ], - ), + Some(&[ + -0.06769608569710406f64, + -0.0021013764194011725f64, + 0.0012217304763960308f64, + -0.0003001966313430247f64, + 0f64, + 0.0001256637061435917f64, + 0f64, + 0f64, + 0f64, + -0.00009075712110370513f64, + 0f64, + 0f64, + 0.00007504915783575618f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -1171,23 +1216,21 @@ impl RotationalElements for Moon { 1.161328121643011f64, 0.00022689280275926284f64, 0f64, - Some( - &[ - 0.02691123173650057f64, - 0.0004171336912266448f64, - -0.00048520153205442357f64, - 0.0001186823891356144f64, - 0f64, - -0.00005061454830783555f64, - 0.000015707963267948964f64, - 0f64, - 0f64, - 0.000013962634015954637f64, - 0f64, - 0f64, - -0.000015707963267948964f64, - ], - ), + Some(&[ + 0.02691123173650057f64, + 0.0004171336912266448f64, + -0.00048520153205442357f64, + 0.0001186823891356144f64, + 0f64, + -0.00005061454830783555f64, + 0.000015707963267948964f64, + 0f64, + 0f64, + 0.000013962634015954637f64, + 0f64, + 0f64, + -0.000015707963267948964f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -1195,23 +1238,21 @@ impl RotationalElements for Moon { 0.668832858644503f64, 0.22997083313948888f64, -0.000000000000024434609527920614f64, - Some( - &[ - 0.06215117466351808f64, - 0.00210835773640915f64, - -0.0011205013797803594f64, - 0.0002757620218151041f64, - 0.0004398229715025711f64, - -0.00011519173063162575f64, - -0.00008203047484373349f64, - -0.00008028514559173915f64, - 0.000048869219055841225f64, - 0.00009075712110370513f64, - 0.00006981317007977319f64, - 0.00003316125578789226f64, - -0.0000767944870877505f64, - ], - ), + Some(&[ + 0.06215117466351808f64, + 0.00210835773640915f64, + -0.0011205013797803594f64, + 0.0002757620218151041f64, + 0.0004398229715025711f64, + -0.00011519173063162575f64, + -0.00008203047484373349f64, + -0.00008028514559173915f64, + 0.000048869219055841225f64, + 0.00009075712110370513f64, + 0.00006981317007977319f64, + 0.00003316125578789226f64, + -0.0000767944870877505f64, + ]), ) } } @@ -1332,14 +1373,12 @@ impl RotationalElements for Phobos { 5.544399941316208f64, -0.001892691938596266f64, 0f64, - Some( - &[ - -0.031141630416121578f64, - 0.00038621064567151f64, - -0.00017946365486924213f64, - -0.00008300698656022431f64, - ], - ), + Some(&[ + -0.031141630416121578f64, + 0.00038621064567151f64, + -0.00017946365486924213f64, + -0.00008300698656022431f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -1347,14 +1386,12 @@ impl RotationalElements for Phobos { 0.9230395870244597f64, -0.0010707081834185127f64, 0f64, - Some( - &[ - -0.018765175709923063f64, - 0.00011669725164439606f64, - -0.00011322648989388013f64, - 0.000049144282945955534f64, - ], - ), + Some(&[ + -0.018765175709923063f64, + 0.00011669725164439606f64, + -0.00011322648989388013f64, + 0.000049144282945955534f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -1362,15 +1399,13 @@ impl RotationalElements for Phobos { 0.6141419961301966f64, 19.702057793318815f64, 0.00000000016643698911600935f64, - Some( - &[ - 0.02485728795564792f64, - -0.0003968499982587423f64, - 0.0000716825922415843f64, - 0.00011029852554073445f64, - -0.019949113350295186f64, - ], - ), + Some(&[ + 0.02485728795564792f64, + -0.0003968499982587423f64, + 0.0000716825922415843f64, + 0.00011029852554073445f64, + -0.019949113350295186f64, + ]), ) } } @@ -1491,20 +1526,18 @@ impl RotationalElements for Deimos { 5.526708263174914f64, -0.0018357397507085887f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.05396867424229676f64, - 0.004010877798556321f64, - 0.0011202666329959662f64, - 0.00044218562371099577f64, - 0.00013590791618817245f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.05396867424229676f64, + 0.004010877798556321f64, + 0.0011202666329959662f64, + 0.00044218562371099577f64, + 0.00013590791618817245f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -1512,20 +1545,18 @@ impl RotationalElements for Deimos { 0.9339242922383507f64, -0.0010435487658623783f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.032102888827614605f64, - 0.002500240004017941f64, - 0.00033360380402252296f64, - -0.0002587607695714273f64, - 0.00003358537079612689f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.032102888827614605f64, + 0.002500240004017941f64, + 0.00033360380402252296f64, + -0.0002587607695714273f64, + 0.00003358537079612689f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -1533,20 +1564,18 @@ impl RotationalElements for Deimos { 1.3857797243489947f64, 4.977013864082068f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.047814137677880446f64, - -0.006975837721323607f64, - -0.0011455047921115052f64, - -0.0005084039391304362f64, - 0.0002965593651818685f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.047814137677880446f64, + -0.006975837721323607f64, + -0.0011455047921115052f64, + -0.0005084039391304362f64, + 0.0002965593651818685f64, + ]), ) } } @@ -1619,7 +1648,12 @@ impl RotationalElements for Io { 4.678355059970801f64, -0.00015707963267948965f64, 0f64, - Some(&[0f64, 0f64, 0.0016406094968746698f64, 0.0004188790204786391f64]), + Some(&[ + 0f64, + 0f64, + 0.0016406094968746698f64, + 0.0004188790204786391f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -1627,7 +1661,12 @@ impl RotationalElements for Io { 1.1257373675363425f64, 0.00005235987755982989f64, 0f64, - Some(&[0f64, 0f64, 0.0006981317007977319f64, 0.00019198621771937625f64]), + Some(&[ + 0f64, + 0f64, + 0.0006981317007977319f64, + 0.00019198621771937625f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -1635,7 +1674,12 @@ impl RotationalElements for Io { 3.4974652880714365f64, 3.551552235248627f64, 0f64, - Some(&[0f64, 0f64, -0.0014835298641951802f64, -0.0003839724354387525f64]), + Some(&[ + 0f64, + 0f64, + -0.0014835298641951802f64, + -0.0003839724354387525f64, + ]), ) } } @@ -1708,17 +1752,15 @@ impl RotationalElements for Europa { 4.678878658746398f64, -0.00015707963267948965f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.01895427567665842f64, - 0.0010471975511965976f64, - 0.0002617993877991494f64, - 0.00015707963267948965f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0.01895427567665842f64, + 0.0010471975511965976f64, + 0.0002617993877991494f64, + 0.00015707963267948965f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -1726,17 +1768,15 @@ impl RotationalElements for Europa { 1.125911900461542f64, 0.00005235987755982989f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.008168140899333463f64, - 0.0004537856055185257f64, - 0.00012217304763960306f64, - 0.00003490658503988659f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0.008168140899333463f64, + 0.0004537856055185257f64, + 0.00012217304763960306f64, + 0.00003490658503988659f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -1744,17 +1784,15 @@ impl RotationalElements for Europa { 0.6287025031533974f64, 1.7693227033738699f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.01710422666954443f64, - -0.0009424777960769379f64, - -0.0002443460952792061f64, - -0.00013962634015954637f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + -0.01710422666954443f64, + -0.0009424777960769379f64, + -0.0002443460952792061f64, + -0.00013962634015954637f64, + ]), ) } } @@ -1828,16 +1866,14 @@ impl RotationalElements for Ganymede { 4.680973053848792f64, -0.00015707963267948965f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.0006457718232379018f64, - 0.0075223690760955605f64, - 0.0015882496193148398f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + -0.0006457718232379018f64, + 0.0075223690760955605f64, + 0.0015882496193148398f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -1845,16 +1881,14 @@ impl RotationalElements for Ganymede { 1.1269590980127384f64, 0.00005235987755982989f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.00027925268031909274f64, - 0.003246312408709453f64, - 0.0006806784082777885f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + -0.00027925268031909274f64, + 0.003246312408709453f64, + 0.0006806784082777885f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -1862,16 +1896,14 @@ impl RotationalElements for Ganymede { 0.7690618815987814f64, 0.8782079330731682f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.0005759586531581288f64, - -0.006789330790257942f64, - -0.0014311699866353504f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0.0005759586531581288f64, + -0.006789330790257942f64, + -0.0014311699866353504f64, + ]), ) } } @@ -1945,18 +1977,16 @@ impl RotationalElements for Callisto { 4.690048765959163f64, -0.00015707963267948965f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.001186823891356144f64, - 0.010297442586766544f64, - 0f64, - 0.00017453292519943296f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.001186823891356144f64, + 0.010297442586766544f64, + 0f64, + 0.00017453292519943296f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -1964,18 +1994,16 @@ impl RotationalElements for Callisto { 1.1314969540679238f64, 0.00005235987755982989f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.0005061454830783556f64, - 0.004433136300065597f64, - 0f64, - -0.00006981317007977319f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005061454830783556f64, + 0.004433136300065597f64, + 0f64, + -0.00006981317007977319f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -1983,18 +2011,16 @@ impl RotationalElements for Callisto { 4.529303941850484f64, 0.37648622085811195f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.001064650843716541f64, - -0.009302604913129777f64, - 0f64, - -0.00015707963267948965f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.001064650843716541f64, + -0.009302604913129777f64, + 0f64, + -0.00015707963267948965f64, + ]), ) } } @@ -2067,20 +2093,18 @@ impl RotationalElements for Amalthea { 4.678355059970801f64, -0.00015707963267948965f64, 0f64, - Some( - &[ - -0.014660765716752368f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.00017453292519943296f64, - 0f64, - ], - ), + Some(&[ + -0.014660765716752368f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -2088,41 +2112,37 @@ impl RotationalElements for Amalthea { 1.125562834611143f64, 0.00005235987755982989f64, 0f64, - Some( - &[ - -0.006283185307179586f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - ) - } - fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { - ( + Some(&[ + -0.006283185307179586f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + ) + } + fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { + ( 4.043404278095263f64, 12.612298185680531f64, 0f64, - Some( - &[ - 0.013264502315156905f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00017453292519943296f64, - 0f64, - ], - ), + Some(&[ + 0.013264502315156905f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + ]), ) } } @@ -2368,20 +2388,18 @@ impl RotationalElements for Thebe { 4.678355059970801f64, -0.00015707963267948965f64, 0f64, - Some( - &[ - 0f64, - -0.03682644721708035f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - ], - ), + Some(&[ + 0f64, + -0.03682644721708035f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -2389,20 +2407,18 @@ impl RotationalElements for Thebe { 1.125562834611143f64, 0.00005235987755982989f64, 0f64, - Some( - &[ - 0f64, - -0.0158824961931484f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.00017453292519943296f64, - ], - ), + Some(&[ + 0f64, + -0.0158824961931484f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -2410,20 +2426,18 @@ impl RotationalElements for Thebe { 0.1494001839707146f64, 9.31482937374367f64, 0f64, - Some( - &[ - 0f64, - 0.033335788713091695f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - ], - ), + Some(&[ + 0f64, + 0.033335788713091695f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + ]), ) } } @@ -3155,7 +3169,16 @@ impl RotationalElements for Mimas { 0.7096508738608943f64, -0.0006283185307179586f64, 0f64, - Some(&[0f64, 0f64, 0.2366666465704311f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + Some(&[ + 0f64, + 0f64, + 0.2366666465704311f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -3163,7 +3186,16 @@ impl RotationalElements for Mimas { 1.457698991265664f64, -0.00006981317007977319f64, 0f64, - Some(&[0f64, 0f64, -0.026703537555513242f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + Some(&[ + 0f64, + 0f64, + -0.026703537555513242f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -3171,18 +3203,16 @@ impl RotationalElements for Mimas { 5.819974923700291f64, 6.667062709440567f64, 0f64, - Some( - &[ - 0f64, - 0f64, - -0.23527038316883564f64, - 0f64, - -0.7827801695194568f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + -0.23527038316883564f64, + 0f64, + -0.7827801695194568f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -3301,7 +3331,16 @@ impl RotationalElements for Tethys { 0.7096508738608943f64, -0.0006283185307179586f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0.16859880574265224f64, 0f64, 0f64, 0f64, 0f64]), + Some(&[ + 0f64, + 0f64, + 0f64, + 0.16859880574265224f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -3309,7 +3348,16 @@ impl RotationalElements for Tethys { 1.457698991265664f64, -0.00006981317007977319f64, 0f64, - Some(&[0f64, 0f64, 0f64, -0.019024088846738195f64, 0f64, 0f64, 0f64, 0f64]), + Some(&[ + 0f64, + 0f64, + 0f64, + -0.019024088846738195f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -3317,18 +3365,16 @@ impl RotationalElements for Tethys { 0.1562069680534925f64, 3.328306379991881f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.16755160819145562f64, - 0.03892084231947355f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + -0.16755160819145562f64, + 0.03892084231947355f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -3447,7 +3493,16 @@ impl RotationalElements for Rhea { 0.7047639519553103f64, -0.0006283185307179586f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64, 0.054105206811824215f64, 0f64, 0f64]), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.054105206811824215f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -3455,7 +3510,16 @@ impl RotationalElements for Rhea { 1.4582225900412622f64, -0.00006981317007977319f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64, -0.006108652381980153f64, 0f64, 0f64]), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.006108652381980153f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -3463,7 +3527,16 @@ impl RotationalElements for Rhea { 4.104316268989865f64, 1.3908537151816638f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64, -0.05375614096142535f64, 0f64, 0f64]), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.05375614096142535f64, + 0f64, + 0f64, + ]), ) } } @@ -3743,18 +3816,16 @@ impl RotationalElements for Janus { 0.7082546104592989f64, -0.0006283185307179586f64, 0f64, - Some( - &[ - 0f64, - -0.028326693759867967f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0004014257279586958f64, - ], - ), + Some(&[ + 0f64, + -0.028326693759867967f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0004014257279586958f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -3762,18 +3833,16 @@ impl RotationalElements for Janus { 1.457698991265664f64, -0.00006981317007977319f64, 0f64, - Some( - &[ - 0f64, - -0.003193952531149623f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000017453292519943296f64, - ], - ), + Some(&[ + 0f64, + -0.003193952531149623f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000017453292519943296f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -3781,18 +3850,16 @@ impl RotationalElements for Janus { 1.0267771989482641f64, 9.044924285944507f64, 0f64, - Some( - &[ - 0f64, - 0.028152160834668535f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0004014257279586958f64, - ], - ), + Some(&[ + 0f64, + 0.028152160834668535f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0004014257279586958f64, + ]), ) } } @@ -3851,18 +3918,16 @@ impl RotationalElements for Epimetheus { 0.7082546104592989f64, -0.0006283185307179586f64, 0f64, - Some( - &[ - -0.05503023131538121f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0015009831567151233f64, - 0f64, - ], - ), + Some(&[ + -0.05503023131538121f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015009831567151233f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -3870,18 +3935,16 @@ impl RotationalElements for Epimetheus { 1.457698991265664f64, -0.00006981317007977319f64, 0f64, - Some( - &[ - -0.006213372137099813f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.00008726646259971648f64, - 0f64, - ], - ), + Some(&[ + -0.006213372137099813f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00008726646259971648f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -3889,18 +3952,16 @@ impl RotationalElements for Epimetheus { 5.128999072835736f64, 9.049370273103856f64, 0f64, - Some( - &[ - 0.05468116546498235f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015009831567151233f64, - 0f64, - ], - ), + Some(&[ + 0.05468116546498235f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015009831567151233f64, + 0f64, + ]), ) } } @@ -3958,7 +4019,12 @@ impl RotationalElements for Helene { (0.7129669994396837f64, -0.0006283185307179586f64, 0f64, None) } fn declination_coefficients(&self) -> PolynomialCoefficients { - (1.4545573986120743f64, -0.00006981317007977319f64, 0f64, None) + ( + 1.4545573986120743f64, + -0.00006981317007977319f64, + 0f64, + None, + ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { (4.278151062488501f64, 2.297157080652823f64, 0f64, None) @@ -4013,7 +4079,12 @@ impl RotationalElements for Telesto { (0.8815658051823358f64, -0.0006283185307179586f64, 0f64, None) } fn declination_coefficients(&self) -> PolynomialCoefficients { - (1.4671237692264334f64, -0.00006981317007977319f64, 0f64, None) + ( + 1.4671237692264334f64, + -0.00006981317007977319f64, + 0f64, + None, + ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { (0.9927432785343747f64, 3.328306811088206f64, 0f64, None) @@ -4068,7 +4139,12 @@ impl RotationalElements for Calypso { (0.6354743806511354f64, -0.0006283185307179586f64, 0f64, None) } fn declination_coefficients(&self) -> PolynomialCoefficients { - (1.4842279958959779f64, -0.00006981317007977319f64, 0f64, None) + ( + 1.4842279958959779f64, + -0.00006981317007977319f64, + 0f64, + None, + ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { (2.679254934736495f64, 3.327893239613983f64, 0f64, None) @@ -4128,7 +4204,12 @@ impl RotationalElements for Atlas { (0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None) } fn declination_coefficients(&self) -> PolynomialCoefficients { - (1.4578735241908636f64, -0.00006981317007977319f64, 0f64, None) + ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + None, + ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { (2.4064599726497815f64, 10.442409634437194f64, 0f64, None) @@ -4188,7 +4269,12 @@ impl RotationalElements for Prometheus { (0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None) } fn declination_coefficients(&self) -> PolynomialCoefficients { - (1.4578735241908636f64, -0.00006981317007977319f64, 0f64, None) + ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + None, + ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { (5.1686180468560075f64, 10.250126710744977f64, 0f64, None) @@ -4248,7 +4334,12 @@ impl RotationalElements for Pandora { (0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None) } fn declination_coefficients(&self) -> PolynomialCoefficients { - (1.4578735241908636f64, -0.00006981317007977319f64, 0f64, None) + ( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + None, + ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { (2.8434904173491615f64, 9.997055714535051f64, 0f64, None) @@ -4940,23 +5031,21 @@ impl RotationalElements for Ariel { 4.493001093409003f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.005061454830783556f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -4964,23 +5053,21 @@ impl RotationalElements for Ariel { -0.26354471705114374f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004886921905584123f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -4988,23 +5075,21 @@ impl RotationalElements for Ariel { 2.7265533574655416f64, -2.492952697630833f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0008726646259971648f64, - 0.0013962634015954637f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0.0013962634015954637f64, + ]), ) } } @@ -5084,24 +5169,22 @@ impl RotationalElements for Umbriel { 4.493001093409003f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.003665191429188092f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003665191429188092f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -5109,24 +5192,22 @@ impl RotationalElements for Umbriel { -0.26354471705114374f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.003490658503988659f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003490658503988659f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -5134,24 +5215,22 @@ impl RotationalElements for Umbriel { 1.885828256779873f64, -1.5161481881953498f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0.0010471975511965976f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0.0010471975511965976f64, + ]), ) } } @@ -5231,25 +5310,23 @@ impl RotationalElements for Titania { 4.493001093409003f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.005061454830783556f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -5257,51 +5334,47 @@ impl RotationalElements for Titania { -0.26354471705114374f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004886921905584123f64, - ], - ), - ) - } - fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { - ( + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + ]), + ) + } + fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { + ( 1.3568189605003917f64, -0.7217186318332268f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0013962634015954637f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0013962634015954637f64, + ]), ) } } @@ -5381,26 +5454,24 @@ impl RotationalElements for Oberon { 4.493001093409003f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0027925268031909274f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -5408,26 +5479,24 @@ impl RotationalElements for Oberon { -0.26354471705114374f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0027925268031909274f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -5435,26 +5504,24 @@ impl RotationalElements for Oberon { 0.1181587903600161f64, -0.4666921966546346f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + ]), ) } } @@ -5533,28 +5600,26 @@ impl RotationalElements for Miranda { 4.493001093409003f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.07696902001294993f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07696902001294993f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -5562,28 +5627,26 @@ impl RotationalElements for Miranda { -0.2631956512007449f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.07417649320975901f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00034906585039886593f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07417649320975901f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -5591,28 +5654,26 @@ impl RotationalElements for Miranda { 0.5358160803622591f64, -4.445191100713563f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.02007128639793479f64, - -0.022165681500327987f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0.002617993877991494f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.02007128639793479f64, + -0.022165681500327987f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0.002617993877991494f64, + ]), ) } } @@ -5687,28 +5748,26 @@ impl RotationalElements for Cordelia { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - -0.002617993877991494f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.002617993877991494f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -5716,28 +5775,26 @@ impl RotationalElements for Cordelia { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0.0024434609527920616f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0.0024434609527920616f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -5745,28 +5802,26 @@ impl RotationalElements for Cordelia { 2.2286109218715593f64, -18.753921879266084f64, 0f64, - Some( - &[ - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -5841,28 +5896,26 @@ impl RotationalElements for Ophelia { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -5870,28 +5923,26 @@ impl RotationalElements for Ophelia { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -5899,28 +5950,26 @@ impl RotationalElements for Ophelia { 2.2750366799746087f64, -16.692447910262292f64, 0f64, - Some( - &[ - 0f64, - -0.0005235987755982988f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -5995,57 +6044,53 @@ impl RotationalElements for Bianca { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - -0.0027925268031909274f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - ) - } - fn declination_coefficients(&self) -> PolynomialCoefficients { - ( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0.0027925268031909274f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + -0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + ) + } + fn declination_coefficients(&self) -> PolynomialCoefficients { + ( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -6053,28 +6098,26 @@ impl RotationalElements for Bianca { 1.8406242291532198f64, -14.458158751655587f64, 0f64, - Some( - &[ - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -6149,28 +6192,26 @@ impl RotationalElements for Cressida { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -6178,28 +6219,26 @@ impl RotationalElements for Cressida { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -6207,28 +6246,26 @@ impl RotationalElements for Cressida { 1.0325367854798453f64, -13.553906388910956f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.00017453292519943296f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -6303,28 +6340,26 @@ impl RotationalElements for Desdemona { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.0029670597283903604f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0029670597283903604f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -6332,28 +6367,26 @@ impl RotationalElements for Desdemona { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.0027925268031909274f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -6361,28 +6394,26 @@ impl RotationalElements for Desdemona { 1.6594590527962085f64, -13.265430289266899f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -6457,28 +6488,26 @@ impl RotationalElements for Juliet { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0010471975511965976f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -6486,28 +6515,26 @@ impl RotationalElements for Juliet { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0010471975511965976f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -6515,28 +6542,26 @@ impl RotationalElements for Juliet { 5.2806681848340435f64, -12.74309158902866f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00034906585039886593f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -6611,28 +6636,26 @@ impl RotationalElements for Portia { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -6640,28 +6663,26 @@ impl RotationalElements for Portia { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -6669,28 +6690,26 @@ impl RotationalElements for Portia { 0.4368559117741807f64, -12.243250601727652f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00034906585039886593f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -6765,28 +6784,26 @@ impl RotationalElements for Rosalind { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.005061454830783556f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005061454830783556f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -6794,28 +6811,26 @@ impl RotationalElements for Rosalind { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004886921905584123f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -6823,28 +6838,26 @@ impl RotationalElements for Rosalind { 5.496041814530144f64, -11.250935609538423f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0013962634015954637f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0013962634015954637f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -6919,28 +6932,26 @@ impl RotationalElements for Belinda { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0005235987755982988f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -6948,28 +6959,26 @@ impl RotationalElements for Belinda { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0005235987755982988f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -6977,28 +6986,26 @@ impl RotationalElements for Belinda { 5.191656392982332f64, -10.076882135239488f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00017453292519943296f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -7073,28 +7080,26 @@ impl RotationalElements for Puck { 4.49090669830661f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.005759586531581287f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005759586531581287f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -7102,28 +7107,26 @@ impl RotationalElements for Puck { -0.2649409804527392f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0054105206811824215f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0054105206811824215f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -7131,28 +7134,26 @@ impl RotationalElements for Puck { 1.5924384095196262f64, -8.247467318113788f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -7410,27 +7411,25 @@ impl RotationalElements for Triton { 5.224817648770225f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.5646140130201657f64, - 0f64, - -0.1096066770252439f64, - -0.03630284844148206f64, - -0.012915436464758038f64, - -0.004886921905584123f64, - -0.0019198621771937625f64, - -0.0012217304763960308f64, - -0.00034906585039886593f64, - -0.00017453292519943296f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.5646140130201657f64, + 0f64, + -0.1096066770252439f64, + -0.03630284844148206f64, + -0.012915436464758038f64, + -0.004886921905584123f64, + -0.0019198621771937625f64, + -0.0012217304763960308f64, + -0.00034906585039886593f64, + -0.00017453292519943296f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -7438,27 +7437,25 @@ impl RotationalElements for Triton { 0.7185520530460655f64, 0f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.3935717463247213f64, - 0f64, - 0.03665191429188092f64, - 0.009599310885968814f64, - 0.0027925268031909274f64, - 0.0008726646259971648f64, - 0.00034906585039886593f64, - 0.00017453292519943296f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3935717463247213f64, + 0f64, + 0.03665191429188092f64, + 0.009599310885968814f64, + 0.0027925268031909274f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -7466,27 +7463,25 @@ impl RotationalElements for Triton { 5.175424830938785f64, -1.069140942327404f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.3883357585687383f64, - 0f64, - 0.11746065865921838f64, - 0.03577924966588375f64, - 0.012915436464758038f64, - 0.004886921905584123f64, - 0.0019198621771937625f64, - 0.0008726646259971648f64, - 0.00034906585039886593f64, - 0.00017453292519943296f64, - ], - ), + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3883357585687383f64, + 0f64, + 0.11746065865921838f64, + 0.03577924966588375f64, + 0.012915436464758038f64, + 0.004886921905584123f64, + 0.0019198621771937625f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64, + ]), ) } } @@ -7585,27 +7580,25 @@ impl RotationalElements for Naiad { 5.224817648770225f64, 0f64, 0f64, - Some( - &[ - 0.012217304763960306f64, - -0.11327186845443199f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004363323129985824f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0.012217304763960306f64, + -0.11327186845443199f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004363323129985824f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -7613,27 +7606,25 @@ impl RotationalElements for Naiad { 0.7567747636647413f64, 0f64, 0f64, - Some( - &[ - -0.00890117918517108f64, - -0.08290313946973066f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.00890117918517108f64, + -0.08290313946973066f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -7641,27 +7632,25 @@ impl RotationalElements for Naiad { 4.434183497616794f64, 21.342656148360604f64, 0f64, - Some( - &[ - -0.008377580409572781f64, - 0.07679448708775051f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00471238898038469f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.008377580409572781f64, + 0.07679448708775051f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00471238898038469f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -7739,27 +7728,25 @@ impl RotationalElements for Thalassa { 5.224817648770225f64, 0f64, 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - -0.004886921905584123f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0.012217304763960306f64, + 0f64, + -0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -7767,27 +7754,25 @@ impl RotationalElements for Thalassa { 0.7583455599915362f64, 0f64, 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - -0.003665191429188092f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.00890117918517108f64, + 0f64, + -0.003665191429188092f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -7795,27 +7780,25 @@ impl RotationalElements for Thalassa { 1.7812830345854127f64, 20.171739891174827f64, 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0.0033161255787892262f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.008377580409572781f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -7893,27 +7876,25 @@ impl RotationalElements for Despina { 5.224817648770225f64, 0f64, 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -7921,27 +7902,25 @@ impl RotationalElements for Despina { 0.7583455599915362f64, 0f64, 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - -0.0012217304763960308f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -7949,27 +7928,25 @@ impl RotationalElements for Despina { 5.34960869028782f64, 18.77510290185297f64, 0f64, - Some( - &[ - -0.008552113334772215f64, - 0f64, - 0f64, - 0.0010471975511965976f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.008552113334772215f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -8047,55 +8024,51 @@ impl RotationalElements for Galatea { 5.224817648770225f64, 0f64, 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - 0f64, - -0.0012217304763960308f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - ) - } - fn declination_coefficients(&self) -> PolynomialCoefficients { - ( - 0.7579964941411373f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - 0f64, - -0.0008726646259971648f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + ) + } + fn declination_coefficients(&self) -> PolynomialCoefficients { + ( + 0.7579964941411373f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -8103,27 +8076,25 @@ impl RotationalElements for Galatea { 4.504520266472165f64, 14.6548275586037f64, 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0f64, - 0f64, - 0.0008726646259971648f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -8201,27 +8172,25 @@ impl RotationalElements for Larissa { 5.224817648770225f64, 0f64, 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00471238898038469f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00471238898038469f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -8229,27 +8198,25 @@ impl RotationalElements for Larissa { 0.7576474282907384f64, 0f64, 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.003490658503988659f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.003490658503988659f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { @@ -8257,27 +8224,25 @@ impl RotationalElements for Larissa { 3.1312952110030268f64, 11.328119671568512f64, 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0033161255787892262f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -8354,27 +8319,25 @@ impl RotationalElements for Proteus { 5.22324685244343f64, 0f64, 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0008726646259971648f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } fn declination_coefficients(&self) -> PolynomialCoefficients { @@ -8382,55 +8345,51 @@ impl RotationalElements for Proteus { 0.7489207820307667f64, 0f64, 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - ) - } - fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { - ( - 1.6297884555123048f64, - 5.598412754411688f64, - 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + ) + } + fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { + ( + 1.6297884555123048f64, + 5.598412754411688f64, + 0f64, + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), ) } } @@ -9207,6 +9166,22 @@ impl MaybePointMass for DynOrigin { } } } +impl MaybeMeanRadius for DynOrigin { + fn maybe_mean_radius(&self) -> Option { + match self { + DynOrigin::Mercury => Some(2439.4f64), + DynOrigin::Venus => Some(6051.8f64), + DynOrigin::Earth => Some(6371.0084f64), + DynOrigin::Mars => Some(3389.5f64), + DynOrigin::Jupiter => Some(69911f64), + DynOrigin::Saturn => Some(58232f64), + DynOrigin::Uranus => Some(25362f64), + DynOrigin::Neptune => Some(24622f64), + DynOrigin::Pluto => Some(1188.3f64), + _ => None, + } + } +} impl MaybeTriaxialEllipsoid for DynOrigin { fn maybe_radii(&self) -> Option { match self { @@ -9305,5328 +9280,4676 @@ impl MaybeTriaxialEllipsoid for DynOrigin { } impl MaybeSpheroid for DynOrigin {} impl MaybeRotationalElements for DynOrigin { - fn maybe_nutation_precession_coefficients( - &self, - ) -> Option { + fn maybe_nutation_precession_coefficients(&self) -> Option { match self { DynOrigin::Sun => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Mercury => { - Some(( - &[ - 3.0506799486005773f64, - 6.101359897201155f64, - 2.868854538622146f64, - 5.919534488968053f64, - 2.6870291303890443f64, - ], - &[ - 2608.7878923240937f64, - 5217.575784648187f64, - 7826.363676972282f64, - 10435.151569296375f64, - 13043.939461620466f64, - ], - )) - } + DynOrigin::Mercury => Some(( + &[ + 3.0506799486005773f64, + 6.101359897201155f64, + 2.868854538622146f64, + 5.919534488968053f64, + 2.6870291303890443f64, + ], + &[ + 2608.7878923240937f64, + 5217.575784648187f64, + 7826.363676972282f64, + 10435.151569296375f64, + 13043.939461620466f64, + ], + )), DynOrigin::Venus => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Earth => { - Some(( - &[ - 2.1824469631563095f64, - 4.364876473020098f64, - 4.537995681525416f64, - 3.0826877913349846f64, - 6.240058221362807f64, - 5.438253962996612f64, - 2.355548718369107f64, - 4.827877416989155f64, - 0.5973563897875792f64, - 0.2641381289968218f64, - 2.0899096062155698f64, - 4.188109526378113f64, - 0.4372573375021394f64, - ], - &[ - -33.781483888495835f64, - -67.56296777699167f64, - 8294.909972626925f64, - 8504.459388212737f64, - 628.3019668015924f64, - 16833.15084472816f64, - 8328.69145651542f64, - 209.54947933396397f64, - 1114.6285779726247f64, - -101.3444516654875f64, - 2.301053255936537f64, - 104.77473966698199f64, - 8261.12848873843f64, - ], - )) - } - DynOrigin::Mars => { - Some(( - &[ - 3.328804809897935f64, - 0f64, - 555.6129894920322f64, - 5.809517398292802f64, - 0f64, - 668.125936040531f64, - 3.3097152567180146f64, - 0.22186491448462606f64, - 11.523153020184504f64, - 4.032588225058434f64, - 0f64, - 23.047098122619843f64, - 3.8045796985836846f64, - 0f64, - 334.05316148477937f64, - 3.4730520762801462f64, - 0f64, - 668.1268926511307f64, - 4.357448194643978f64, - 0f64, - 1336.235189496269f64, - 1.3857704297725961f64, - 0f64, - 334.054984682245f64, - 0.751510868094019f64, - 0f64, - 1002.1811764929237f64, - 1.3871248750853138f64, - 0f64, - 0.008801023466045386f64, - 2.252727410236719f64, - 0f64, - 668.130317528175f64, - 0.9890544553471146f64, - 0f64, - 1336.2285297823557f64, - 1.8289772979888115f64, - 0f64, - 0.008801023466045386f64, - ], - &[ - 277.80594525842264f64, - 0.37470342287773584f64, - 0f64, - 334.05422022489097f64, - 6.892873571600945f64, - 0f64, - 719340.2120445863f64, - 2.120032883264378f64, - 0f64, - 11.536473384554899f64, - 4.387288948439982f64, - 0f64, - 668.1113614443373f64, - 3.424288764152381f64, - 0f64, - 334.0469780000094f64, - 3.9495523217086292f64, - 0f64, - 1002.1807129125305f64, - 4.645778664015252f64, - 0f64, - 0.008801023466045386f64, - 2.136869016190709f64, - 0f64, - 668.1273150051017f64, - 1.0064158213753553f64, - 0f64, - 1336.2354112473317f64, - 2.9029314796567682f64, - 0f64, - 334.05659172556966f64, - 0.6344650043848296f64, - 0f64, - 1002.1842799588599f64, - 1.1757236496733376f64, - 0f64, - 1670.2877519268022f64, - 1.664898441223219f64, - 0f64, - ], - )) - } - DynOrigin::Jupiter => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Saturn => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Uranus => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Neptune => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Pluto => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Moon => { - Some(( - &[ - 2.1824469631563095f64, - 4.364876473020098f64, - 4.537995681525416f64, - 3.0826877913349846f64, - 6.240058221362807f64, - 5.438253962996612f64, - 2.355548718369107f64, - 4.827877416989155f64, - 0.5973563897875792f64, - 0.2641381289968218f64, - 2.0899096062155698f64, - 4.188109526378113f64, - 0.4372573375021394f64, - ], - &[ - -33.781483888495835f64, - -67.56296777699167f64, - 8294.909972626925f64, - 8504.459388212737f64, - 628.3019668015924f64, - 16833.15084472816f64, - 8328.69145651542f64, - 209.54947933396397f64, - 1114.6285779726247f64, - -101.3444516654875f64, - 2.301053255936537f64, - 104.77473966698199f64, - 8261.12848873843f64, - ], - )) - } - DynOrigin::Phobos => { - Some(( - &[ - 3.328804809897935f64, - 0f64, - 555.6129894920322f64, - 5.809517398292802f64, - 0f64, - 668.125936040531f64, - 3.3097152567180146f64, - 0.22186491448462606f64, - 11.523153020184504f64, - 4.032588225058434f64, - 0f64, - 23.047098122619843f64, - 3.8045796985836846f64, - 0f64, - 334.05316148477937f64, - 3.4730520762801462f64, - 0f64, - 668.1268926511307f64, - 4.357448194643978f64, - 0f64, - 1336.235189496269f64, - 1.3857704297725961f64, - 0f64, - 334.054984682245f64, - 0.751510868094019f64, - 0f64, - 1002.1811764929237f64, - 1.3871248750853138f64, - 0f64, - 0.008801023466045386f64, - 2.252727410236719f64, - 0f64, - 668.130317528175f64, - 0.9890544553471146f64, - 0f64, - 1336.2285297823557f64, - 1.8289772979888115f64, - 0f64, - 0.008801023466045386f64, - ], - &[ - 277.80594525842264f64, - 0.37470342287773584f64, - 0f64, - 334.05422022489097f64, - 6.892873571600945f64, - 0f64, - 719340.2120445863f64, - 2.120032883264378f64, - 0f64, - 11.536473384554899f64, - 4.387288948439982f64, - 0f64, - 668.1113614443373f64, - 3.424288764152381f64, - 0f64, - 334.0469780000094f64, - 3.9495523217086292f64, - 0f64, - 1002.1807129125305f64, - 4.645778664015252f64, - 0f64, - 0.008801023466045386f64, - 2.136869016190709f64, - 0f64, - 668.1273150051017f64, - 1.0064158213753553f64, - 0f64, - 1336.2354112473317f64, - 2.9029314796567682f64, - 0f64, - 334.05659172556966f64, - 0.6344650043848296f64, - 0f64, - 1002.1842799588599f64, - 1.1757236496733376f64, - 0f64, - 1670.2877519268022f64, - 1.664898441223219f64, - 0f64, - ], - )) - } - DynOrigin::Deimos => { - Some(( - &[ - 3.328804809897935f64, - 0f64, - 555.6129894920322f64, - 5.809517398292802f64, - 0f64, - 668.125936040531f64, - 3.3097152567180146f64, - 0.22186491448462606f64, - 11.523153020184504f64, - 4.032588225058434f64, - 0f64, - 23.047098122619843f64, - 3.8045796985836846f64, - 0f64, - 334.05316148477937f64, - 3.4730520762801462f64, - 0f64, - 668.1268926511307f64, - 4.357448194643978f64, - 0f64, - 1336.235189496269f64, - 1.3857704297725961f64, - 0f64, - 334.054984682245f64, - 0.751510868094019f64, - 0f64, - 1002.1811764929237f64, - 1.3871248750853138f64, - 0f64, - 0.008801023466045386f64, - 2.252727410236719f64, - 0f64, - 668.130317528175f64, - 0.9890544553471146f64, - 0f64, - 1336.2285297823557f64, - 1.8289772979888115f64, - 0f64, - 0.008801023466045386f64, - ], - &[ - 277.80594525842264f64, - 0.37470342287773584f64, - 0f64, - 334.05422022489097f64, - 6.892873571600945f64, - 0f64, - 719340.2120445863f64, - 2.120032883264378f64, - 0f64, - 11.536473384554899f64, - 4.387288948439982f64, - 0f64, - 668.1113614443373f64, - 3.424288764152381f64, - 0f64, - 334.0469780000094f64, - 3.9495523217086292f64, - 0f64, - 1002.1807129125305f64, - 4.645778664015252f64, - 0f64, - 0.008801023466045386f64, - 2.136869016190709f64, - 0f64, - 668.1273150051017f64, - 1.0064158213753553f64, - 0f64, - 1336.2354112473317f64, - 2.9029314796567682f64, - 0f64, - 334.05659172556966f64, - 0.6344650043848296f64, - 0f64, - 1002.1842799588599f64, - 1.1757236496733376f64, - 0f64, - 1670.2877519268022f64, - 1.664898441223219f64, - 0f64, - ], - )) - } - DynOrigin::Io => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Europa => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Ganymede => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Callisto => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Amalthea => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Thebe => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Adrastea => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Metis => { - Some(( - &[ - 1.2796754075622423f64, - 0.42970006184100396f64, - 4.9549897464119015f64, - 6.2098814785958245f64, - 2.092649773141201f64, - 4.010766621082969f64, - 6.147922290150026f64, - 1.9783307071355725f64, - 2.5593508151244846f64, - 0.8594001236820079f64, - 1.734171606432425f64, - 3.0699533280603655f64, - 5.241627996900319f64, - 1.9898901100379935f64, - 0.864134346731335f64, - ], - &[ - 1596.503281347521f64, - 787.7927551311844f64, - 84.66068602648895f64, - 20.792107379008446f64, - 4.574507969477138f64, - 1.1222467090323538f64, - 41.58421475801689f64, - 105.9414855960558f64, - 3193.006562695042f64, - 1575.5855102623689f64, - 84.65553032387855f64, - 20.80363527871787f64, - 4.582318317879813f64, - 105.94580703128374f64, - 1.1222467090323538f64, - ], - )) - } - DynOrigin::Mimas => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Enceladus => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Tethys => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Dione => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Rhea => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Titan => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Iapetus => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Phoebe => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Janus => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Epimetheus => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Helene => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Telesto => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Calypso => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Atlas => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Prometheus => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Pandora => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Pan => { - Some(( - &[ - 6.166597313146365f64, - 0.5012585611727715f64, - 3.0962140930379407f64, - 5.235987755982989f64, - 5.523094417936056f64, - 6.0248765778844255f64, - 12.33319462629273f64, - 1.002517122345543f64, - ], - &[ - 1321.331180819591f64, - 1321.331180819591f64, - -637.14117008679f64, - -126.11574641985825f64, - 8.834856673595295f64, - -17.73778118801837f64, - 2642.662361639182f64, - 2642.662361639182f64, - ], - )) - } - DynOrigin::Ariel => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Umbriel => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Titania => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Oberon => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Miranda => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Cordelia => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Ophelia => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Bianca => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Cressida => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Desdemona => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Juliet => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Portia => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Rosalind => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Belinda => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Puck => { - Some(( - &[ - 2.0202186091834364f64, - 2.4729570171507653f64, - 2.356718088967943f64, - 1.0780898789568973f64, - 4.351454891072263f64, - 0.7655014099247129f64, - 1.3554226970987964f64, - 2.746450110938277f64, - 1.776919711455427f64, - 2.419724474964938f64, - 1.784250094313803f64, - 5.522396286235258f64, - 5.3059754589879615f64, - 5.388005933831694f64, - 5.948431156647074f64, - 4.522846223618106f64, - 3.568500188627606f64, - 11.044792572470516f64, - ], - &[ - 959.7891933286942f64, - 731.077582955928f64, - 522.3307938967249f64, - 449.1358738582876f64, - 427.10754977009157f64, - 388.83160660922994f64, - 354.1171823199879f64, - 290.6454915444109f64, - 224.66977689099764f64, - 140.70512817020406f64, - -35.32930378471962f64, - 49.9855316454168f64, - -0.9065240134858548f64, - -1.626123264083117f64, - -1.314581992602129f64, - -8.810596596992575f64, - -70.65860756943924f64, - 99.9710632908336f64, - ], - )) - } - DynOrigin::Triton => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Naiad => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Thalassa => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Despina => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Galatea => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Larissa => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Proteus => { - Some(( - &[ - 6.245660728261709f64, - 5.653470513060032f64, - 3.848625533572696f64, - 6.183177941040311f64, - 1.3144074596769295f64, - 0.6171484235051949f64, - 2.4890140462691135f64, - 3.104068074671915f64, - 11.306941026120064f64, - 6.20813614934383f64, - 9.312204224015744f64, - 12.41627229868766f64, - 15.520340373359575f64, - 18.624408448031488f64, - 21.728476522703406f64, - 24.83254459737532f64, - 27.936612672047236f64, - ], - &[ - 0.9130864514733535f64, - 1092.6913034790819f64, - 961.0515899766616f64, - 812.7038395448996f64, - 455.6949957202075f64, - 250.02539666519567f64, - 49.29857005183183f64, - 0.9130864514733535f64, - 2185.3826069581637f64, - 1.826172902946707f64, - 2.7392593544200605f64, - 3.652345805893414f64, - 4.565432257366767f64, - 5.478518708840121f64, - 6.391605160313474f64, - 7.304691611786828f64, - 8.21777806326018f64, - ], - )) - } - DynOrigin::Charon => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Gaspra => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Ida => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Ceres => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Pallas => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Vesta => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Lutetia => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Eros => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Davida => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Steins => Some((&[] as &[f64], &[] as &[f64])), - DynOrigin::Itokawa => Some((&[] as &[f64], &[] as &[f64])), - _ => None, - } - } - fn maybe_right_ascension_coefficients(&self) -> Option { - match self { - DynOrigin::Sun => Some((4.993910588731375f64, 0f64, 0f64, None)), - DynOrigin::Mercury => { - Some(( - 4.904554967017021f64, - -0.0005724679946541401f64, + DynOrigin::Earth => Some(( + &[ + 2.1824469631563095f64, + 4.364876473020098f64, + 4.537995681525416f64, + 3.0826877913349846f64, + 6.240058221362807f64, + 5.438253962996612f64, + 2.355548718369107f64, + 4.827877416989155f64, + 0.5973563897875792f64, + 0.2641381289968218f64, + 2.0899096062155698f64, + 4.188109526378113f64, + 0.4372573375021394f64, + ], + &[ + -33.781483888495835f64, + -67.56296777699167f64, + 8294.909972626925f64, + 8504.459388212737f64, + 628.3019668015924f64, + 16833.15084472816f64, + 8328.69145651542f64, + 209.54947933396397f64, + 1114.6285779726247f64, + -101.3444516654875f64, + 2.301053255936537f64, + 104.77473966698199f64, + 8261.12848873843f64, + ], + )), + DynOrigin::Mars => Some(( + &[ + 3.328804809897935f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64]), - )) - } - DynOrigin::Venus => Some((4.760560067739733f64, 0f64, 0f64, None)), - DynOrigin::Earth => Some((0f64, -0.011187560505283653f64, 0f64, None)), - DynOrigin::Mars => { - Some(( - 5.5373921900749785f64, - -0.001907216743164288f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000001186823891356144f64, - 0.000004153883619746505f64, - 0.0000009075712110370513f64, - 0.00000015707963267948966f64, - 0.007313924403529878f64, - ], - ), - )) - } - DynOrigin::Jupiter => { - Some(( - 4.6784701644349695f64, - -0.00011342894808711148f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0000020420352248333656f64, - 0.000016371188383706813f64, - 0.000024993114888558796f64, - 0.0000005235987755982989f64, - 0.00003752457891787809f64, - ], - ), - )) - } - DynOrigin::Saturn => { - Some((0.7084116900919784f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Uranus => Some((4.4909241515991285f64, 0f64, 0f64, None)), - DynOrigin::Neptune => { - Some(( - 5.224817648770225f64, - 0f64, - 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Pluto => Some((2.3211657321048187f64, 0f64, 0f64, None)), - DynOrigin::Moon => { - Some(( - 4.712299968592838f64, - 0.000054105206811824215f64, - 0f64, - Some( - &[ - -0.06769608569710406f64, - -0.0021013764194011725f64, - 0.0012217304763960308f64, - -0.0003001966313430247f64, - 0f64, - 0.0001256637061435917f64, - 0f64, - 0f64, - 0f64, - -0.00009075712110370513f64, - 0f64, - 0f64, - 0.00007504915783575618f64, - ], - ), - )) - } - DynOrigin::Phobos => { - Some(( - 5.544399941316208f64, - -0.001892691938596266f64, - 0f64, - Some( - &[ - -0.031141630416121578f64, - 0.00038621064567151f64, - -0.00017946365486924213f64, - -0.00008300698656022431f64, - ], - ), - )) - } - DynOrigin::Deimos => { - Some(( - 5.526708263174914f64, - -0.0018357397507085887f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.05396867424229676f64, - 0.004010877798556321f64, - 0.0011202666329959662f64, - 0.00044218562371099577f64, - 0.00013590791618817245f64, - ], - ), - )) - } - DynOrigin::Io => { - Some(( - 4.678355059970801f64, - -0.00015707963267948965f64, + 555.6129894920322f64, + 5.809517398292802f64, 0f64, - Some( - &[0f64, 0f64, 0.0016406094968746698f64, 0.0004188790204786391f64], - ), - )) - } - DynOrigin::Europa => { - Some(( - 4.678878658746398f64, - -0.00015707963267948965f64, + 668.125936040531f64, + 3.3097152567180146f64, + 0.22186491448462606f64, + 11.523153020184504f64, + 4.032588225058434f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.01895427567665842f64, - 0.0010471975511965976f64, - 0.0002617993877991494f64, - 0.00015707963267948965f64, - ], - ), - )) - } - DynOrigin::Ganymede => { - Some(( - 4.680973053848792f64, - -0.00015707963267948965f64, + 23.047098122619843f64, + 3.8045796985836846f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.0006457718232379018f64, - 0.0075223690760955605f64, - 0.0015882496193148398f64, - ], - ), - )) - } - DynOrigin::Callisto => { - Some(( - 4.690048765959163f64, - -0.00015707963267948965f64, + 334.05316148477937f64, + 3.4730520762801462f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.001186823891356144f64, - 0.010297442586766544f64, - 0f64, - 0.00017453292519943296f64, - ], - ), - )) - } - DynOrigin::Amalthea => { - Some(( - 4.678355059970801f64, - -0.00015707963267948965f64, + 668.1268926511307f64, + 4.357448194643978f64, 0f64, - Some( - &[ - -0.014660765716752368f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.00017453292519943296f64, - 0f64, - ], - ), - )) - } - DynOrigin::Thebe => { - Some(( - 4.678355059970801f64, - -0.00015707963267948965f64, + 1336.235189496269f64, + 1.3857704297725961f64, 0f64, - Some( - &[ - 0f64, - -0.03682644721708035f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - ], - ), - )) - } - DynOrigin::Adrastea => { - Some((4.678355059970801f64, -0.00015707963267948965f64, 0f64, None)) - } - DynOrigin::Metis => { - Some((4.678355059970801f64, -0.00015707963267948965f64, 0f64, None)) - } - DynOrigin::Mimas => { - Some(( - 0.7096508738608943f64, - -0.0006283185307179586f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0.2366666465704311f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Enceladus => { - Some((0.7096508738608943f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Tethys => { - Some(( - 0.7096508738608943f64, - -0.0006283185307179586f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.16859880574265224f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Dione => { - Some((0.7096508738608943f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Rhea => { - Some(( - 0.7047639519553103f64, - -0.0006283185307179586f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.054105206811824215f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Titan => { - Some(( - 0.6891031125771652f64, + 334.054984682245f64, + 0.751510868094019f64, 0f64, + 1002.1811764929237f64, + 1.3871248750853138f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), - )) - } - DynOrigin::Iapetus => { - Some((5.552939548145159f64, -0.06892305216125608f64, 0f64, None)) - } - DynOrigin::Phoebe => Some((6.229080100367762f64, 0f64, 0f64, None)), - DynOrigin::Janus => { - Some(( - 0.7082546104592989f64, - -0.0006283185307179586f64, - 0f64, - Some( - &[ - 0f64, - -0.028326693759867967f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0004014257279586958f64, - ], - ), - )) - } - DynOrigin::Epimetheus => { - Some(( - 0.7082546104592989f64, - -0.0006283185307179586f64, - 0f64, - Some( - &[ - -0.05503023131538121f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0015009831567151233f64, - 0f64, - ], - ), - )) - } - DynOrigin::Helene => { - Some((0.7129669994396837f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Telesto => { - Some((0.8815658051823358f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Calypso => { - Some((0.6354743806511354f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Atlas => { - Some((0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Prometheus => { - Some((0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Pandora => { - Some((0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Pan => { - Some((0.7086036763096978f64, -0.0006283185307179586f64, 0f64, None)) - } - DynOrigin::Ariel => { - Some(( - 4.493001093409003f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.005061454830783556f64, - ], - ), - )) - } - DynOrigin::Umbriel => { - Some(( - 4.493001093409003f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.003665191429188092f64, - ], - ), - )) - } - DynOrigin::Titania => { - Some(( - 4.493001093409003f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.005061454830783556f64, - ], - ), - )) - } - DynOrigin::Oberon => { - Some(( - 4.493001093409003f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0027925268031909274f64, - ], - ), - )) - } - DynOrigin::Miranda => { - Some(( - 4.493001093409003f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.07696902001294993f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - ], - ), - )) - } - DynOrigin::Cordelia => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - -0.002617993877991494f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Ophelia => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Bianca => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - -0.0027925268031909274f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Cressida => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Desdemona => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.0029670597283903604f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Juliet => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0010471975511965976f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Portia => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Rosalind => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.005061454830783556f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Belinda => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0005235987755982988f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Puck => { - Some(( - 4.49090669830661f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.005759586531581287f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Triton => { - Some(( - 5.224817648770225f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.5646140130201657f64, - 0f64, - -0.1096066770252439f64, - -0.03630284844148206f64, - -0.012915436464758038f64, - -0.004886921905584123f64, - -0.0019198621771937625f64, - -0.0012217304763960308f64, - -0.00034906585039886593f64, - -0.00017453292519943296f64, - ], - ), - )) - } - DynOrigin::Naiad => { - Some(( - 5.224817648770225f64, - 0f64, - 0f64, - Some( - &[ - 0.012217304763960306f64, - -0.11327186845443199f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004363323129985824f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Thalassa => { - Some(( - 5.224817648770225f64, - 0f64, - 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - -0.004886921905584123f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Despina => { - Some(( - 5.224817648770225f64, - 0f64, - 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Galatea => { - Some(( - 5.224817648770225f64, - 0f64, - 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - 0f64, - -0.0012217304763960308f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Larissa => { - Some(( - 5.224817648770225f64, - 0f64, - 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00471238898038469f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Proteus => { - Some(( - 5.22324685244343f64, - 0f64, - 0f64, - Some( - &[ - 0.012217304763960306f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0008726646259971648f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Charon => Some((2.3211657321048187f64, 0f64, 0f64, None)), - DynOrigin::Gaspra => Some((0.16528268016386302f64, 0f64, 0f64, None)), - DynOrigin::Ida => Some((2.9454176456656302f64, 0f64, 0f64, None)), - DynOrigin::Ceres => Some((5.0862035995768355f64, 0f64, 0f64, None)), - DynOrigin::Pallas => Some((0.5759586531581288f64, 0f64, 0f64, None)), - DynOrigin::Vesta => Some((5.393608440730596f64, 0f64, 0f64, None)), - DynOrigin::Lutetia => Some((0.9075712110370514f64, 0f64, 0f64, None)), - DynOrigin::Eros => Some((0.1980948701013564f64, 0f64, 0f64, None)), - DynOrigin::Davida => Some((5.183627878423159f64, 0f64, 0f64, None)), - DynOrigin::Steins => Some((1.5882496193148399f64, 0f64, 0f64, None)), - DynOrigin::Itokawa => Some((1.5800465718304666f64, 0f64, 0f64, None)), - _ => None, - } - } - fn maybe_declination_coefficients(&self) -> Option { - match self { - DynOrigin::Sun => Some((1.1147417932487782f64, 0f64, 0f64, None)), - DynOrigin::Mercury => { - Some(( - 1.0719026867585775f64, - -0.00008552113334772214f64, + 0.008801023466045386f64, + 2.252727410236719f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64]), - )) + 668.130317528175f64, + 0.9890544553471146f64, + 0f64, + 1336.2285297823557f64, + 1.8289772979888115f64, + 0f64, + 0.008801023466045386f64, + ], + &[ + 277.80594525842264f64, + 0.37470342287773584f64, + 0f64, + 334.05422022489097f64, + 6.892873571600945f64, + 0f64, + 719340.2120445863f64, + 2.120032883264378f64, + 0f64, + 11.536473384554899f64, + 4.387288948439982f64, + 0f64, + 668.1113614443373f64, + 3.424288764152381f64, + 0f64, + 334.0469780000094f64, + 3.9495523217086292f64, + 0f64, + 1002.1807129125305f64, + 4.645778664015252f64, + 0f64, + 0.008801023466045386f64, + 2.136869016190709f64, + 0f64, + 668.1273150051017f64, + 1.0064158213753553f64, + 0f64, + 1336.2354112473317f64, + 2.9029314796567682f64, + 0f64, + 334.05659172556966f64, + 0.6344650043848296f64, + 0f64, + 1002.1842799588599f64, + 1.1757236496733376f64, + 0f64, + 1670.2877519268022f64, + 1.664898441223219f64, + 0f64, + ], + )), + DynOrigin::Jupiter => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Saturn => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Uranus => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Neptune => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Pluto => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Moon => Some(( + &[ + 2.1824469631563095f64, + 4.364876473020098f64, + 4.537995681525416f64, + 3.0826877913349846f64, + 6.240058221362807f64, + 5.438253962996612f64, + 2.355548718369107f64, + 4.827877416989155f64, + 0.5973563897875792f64, + 0.2641381289968218f64, + 2.0899096062155698f64, + 4.188109526378113f64, + 0.4372573375021394f64, + ], + &[ + -33.781483888495835f64, + -67.56296777699167f64, + 8294.909972626925f64, + 8504.459388212737f64, + 628.3019668015924f64, + 16833.15084472816f64, + 8328.69145651542f64, + 209.54947933396397f64, + 1114.6285779726247f64, + -101.3444516654875f64, + 2.301053255936537f64, + 104.77473966698199f64, + 8261.12848873843f64, + ], + )), + DynOrigin::Phobos => Some(( + &[ + 3.328804809897935f64, + 0f64, + 555.6129894920322f64, + 5.809517398292802f64, + 0f64, + 668.125936040531f64, + 3.3097152567180146f64, + 0.22186491448462606f64, + 11.523153020184504f64, + 4.032588225058434f64, + 0f64, + 23.047098122619843f64, + 3.8045796985836846f64, + 0f64, + 334.05316148477937f64, + 3.4730520762801462f64, + 0f64, + 668.1268926511307f64, + 4.357448194643978f64, + 0f64, + 1336.235189496269f64, + 1.3857704297725961f64, + 0f64, + 334.054984682245f64, + 0.751510868094019f64, + 0f64, + 1002.1811764929237f64, + 1.3871248750853138f64, + 0f64, + 0.008801023466045386f64, + 2.252727410236719f64, + 0f64, + 668.130317528175f64, + 0.9890544553471146f64, + 0f64, + 1336.2285297823557f64, + 1.8289772979888115f64, + 0f64, + 0.008801023466045386f64, + ], + &[ + 277.80594525842264f64, + 0.37470342287773584f64, + 0f64, + 334.05422022489097f64, + 6.892873571600945f64, + 0f64, + 719340.2120445863f64, + 2.120032883264378f64, + 0f64, + 11.536473384554899f64, + 4.387288948439982f64, + 0f64, + 668.1113614443373f64, + 3.424288764152381f64, + 0f64, + 334.0469780000094f64, + 3.9495523217086292f64, + 0f64, + 1002.1807129125305f64, + 4.645778664015252f64, + 0f64, + 0.008801023466045386f64, + 2.136869016190709f64, + 0f64, + 668.1273150051017f64, + 1.0064158213753553f64, + 0f64, + 1336.2354112473317f64, + 2.9029314796567682f64, + 0f64, + 334.05659172556966f64, + 0.6344650043848296f64, + 0f64, + 1002.1842799588599f64, + 1.1757236496733376f64, + 0f64, + 1670.2877519268022f64, + 1.664898441223219f64, + 0f64, + ], + )), + DynOrigin::Deimos => Some(( + &[ + 3.328804809897935f64, + 0f64, + 555.6129894920322f64, + 5.809517398292802f64, + 0f64, + 668.125936040531f64, + 3.3097152567180146f64, + 0.22186491448462606f64, + 11.523153020184504f64, + 4.032588225058434f64, + 0f64, + 23.047098122619843f64, + 3.8045796985836846f64, + 0f64, + 334.05316148477937f64, + 3.4730520762801462f64, + 0f64, + 668.1268926511307f64, + 4.357448194643978f64, + 0f64, + 1336.235189496269f64, + 1.3857704297725961f64, + 0f64, + 334.054984682245f64, + 0.751510868094019f64, + 0f64, + 1002.1811764929237f64, + 1.3871248750853138f64, + 0f64, + 0.008801023466045386f64, + 2.252727410236719f64, + 0f64, + 668.130317528175f64, + 0.9890544553471146f64, + 0f64, + 1336.2285297823557f64, + 1.8289772979888115f64, + 0f64, + 0.008801023466045386f64, + ], + &[ + 277.80594525842264f64, + 0.37470342287773584f64, + 0f64, + 334.05422022489097f64, + 6.892873571600945f64, + 0f64, + 719340.2120445863f64, + 2.120032883264378f64, + 0f64, + 11.536473384554899f64, + 4.387288948439982f64, + 0f64, + 668.1113614443373f64, + 3.424288764152381f64, + 0f64, + 334.0469780000094f64, + 3.9495523217086292f64, + 0f64, + 1002.1807129125305f64, + 4.645778664015252f64, + 0f64, + 0.008801023466045386f64, + 2.136869016190709f64, + 0f64, + 668.1273150051017f64, + 1.0064158213753553f64, + 0f64, + 1336.2354112473317f64, + 2.9029314796567682f64, + 0f64, + 334.05659172556966f64, + 0.6344650043848296f64, + 0f64, + 1002.1842799588599f64, + 1.1757236496733376f64, + 0f64, + 1670.2877519268022f64, + 1.664898441223219f64, + 0f64, + ], + )), + DynOrigin::Io => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Europa => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Ganymede => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Callisto => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Amalthea => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Thebe => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Adrastea => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Metis => Some(( + &[ + 1.2796754075622423f64, + 0.42970006184100396f64, + 4.9549897464119015f64, + 6.2098814785958245f64, + 2.092649773141201f64, + 4.010766621082969f64, + 6.147922290150026f64, + 1.9783307071355725f64, + 2.5593508151244846f64, + 0.8594001236820079f64, + 1.734171606432425f64, + 3.0699533280603655f64, + 5.241627996900319f64, + 1.9898901100379935f64, + 0.864134346731335f64, + ], + &[ + 1596.503281347521f64, + 787.7927551311844f64, + 84.66068602648895f64, + 20.792107379008446f64, + 4.574507969477138f64, + 1.1222467090323538f64, + 41.58421475801689f64, + 105.9414855960558f64, + 3193.006562695042f64, + 1575.5855102623689f64, + 84.65553032387855f64, + 20.80363527871787f64, + 4.582318317879813f64, + 105.94580703128374f64, + 1.1222467090323538f64, + ], + )), + DynOrigin::Mimas => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Enceladus => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Tethys => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Dione => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Rhea => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Titan => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Iapetus => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Phoebe => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Janus => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Epimetheus => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Helene => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Telesto => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Calypso => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Atlas => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Prometheus => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Pandora => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Pan => Some(( + &[ + 6.166597313146365f64, + 0.5012585611727715f64, + 3.0962140930379407f64, + 5.235987755982989f64, + 5.523094417936056f64, + 6.0248765778844255f64, + 12.33319462629273f64, + 1.002517122345543f64, + ], + &[ + 1321.331180819591f64, + 1321.331180819591f64, + -637.14117008679f64, + -126.11574641985825f64, + 8.834856673595295f64, + -17.73778118801837f64, + 2642.662361639182f64, + 2642.662361639182f64, + ], + )), + DynOrigin::Ariel => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Umbriel => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Titania => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Oberon => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Miranda => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Cordelia => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Ophelia => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Bianca => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Cressida => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Desdemona => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Juliet => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Portia => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Rosalind => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Belinda => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Puck => Some(( + &[ + 2.0202186091834364f64, + 2.4729570171507653f64, + 2.356718088967943f64, + 1.0780898789568973f64, + 4.351454891072263f64, + 0.7655014099247129f64, + 1.3554226970987964f64, + 2.746450110938277f64, + 1.776919711455427f64, + 2.419724474964938f64, + 1.784250094313803f64, + 5.522396286235258f64, + 5.3059754589879615f64, + 5.388005933831694f64, + 5.948431156647074f64, + 4.522846223618106f64, + 3.568500188627606f64, + 11.044792572470516f64, + ], + &[ + 959.7891933286942f64, + 731.077582955928f64, + 522.3307938967249f64, + 449.1358738582876f64, + 427.10754977009157f64, + 388.83160660922994f64, + 354.1171823199879f64, + 290.6454915444109f64, + 224.66977689099764f64, + 140.70512817020406f64, + -35.32930378471962f64, + 49.9855316454168f64, + -0.9065240134858548f64, + -1.626123264083117f64, + -1.314581992602129f64, + -8.810596596992575f64, + -70.65860756943924f64, + 99.9710632908336f64, + ], + )), + DynOrigin::Triton => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Naiad => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Thalassa => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Despina => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Galatea => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Larissa => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Proteus => Some(( + &[ + 6.245660728261709f64, + 5.653470513060032f64, + 3.848625533572696f64, + 6.183177941040311f64, + 1.3144074596769295f64, + 0.6171484235051949f64, + 2.4890140462691135f64, + 3.104068074671915f64, + 11.306941026120064f64, + 6.20813614934383f64, + 9.312204224015744f64, + 12.41627229868766f64, + 15.520340373359575f64, + 18.624408448031488f64, + 21.728476522703406f64, + 24.83254459737532f64, + 27.936612672047236f64, + ], + &[ + 0.9130864514733535f64, + 1092.6913034790819f64, + 961.0515899766616f64, + 812.7038395448996f64, + 455.6949957202075f64, + 250.02539666519567f64, + 49.29857005183183f64, + 0.9130864514733535f64, + 2185.3826069581637f64, + 1.826172902946707f64, + 2.7392593544200605f64, + 3.652345805893414f64, + 4.565432257366767f64, + 5.478518708840121f64, + 6.391605160313474f64, + 7.304691611786828f64, + 8.21777806326018f64, + ], + )), + DynOrigin::Charon => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Gaspra => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Ida => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Ceres => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Pallas => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Vesta => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Lutetia => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Eros => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Davida => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Steins => Some((&[] as &[f64], &[] as &[f64])), + DynOrigin::Itokawa => Some((&[] as &[f64], &[] as &[f64])), + _ => None, + } + } + fn maybe_right_ascension_coefficients(&self) -> Option { + match self { + DynOrigin::Sun => Some((4.993910588731375f64, 0f64, 0f64, None)), + DynOrigin::Mercury => Some(( + 4.904554967017021f64, + -0.0005724679946541401f64, + 0f64, + Some(&[0f64, 0f64, 0f64, 0f64, 0f64]), + )), + DynOrigin::Venus => Some((4.760560067739733f64, 0f64, 0f64, None)), + DynOrigin::Earth => Some((0f64, -0.011187560505283653f64, 0f64, None)), + DynOrigin::Mars => Some(( + 5.5373921900749785f64, + -0.001907216743164288f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000001186823891356144f64, + 0.000004153883619746505f64, + 0.0000009075712110370513f64, + 0.00000015707963267948966f64, + 0.007313924403529878f64, + ]), + )), + DynOrigin::Jupiter => Some(( + 4.6784701644349695f64, + -0.00011342894808711148f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000020420352248333656f64, + 0.000016371188383706813f64, + 0.000024993114888558796f64, + 0.0000005235987755982989f64, + 0.00003752457891787809f64, + ]), + )), + DynOrigin::Saturn => { + Some((0.7084116900919784f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Uranus => Some((4.4909241515991285f64, 0f64, 0f64, None)), + DynOrigin::Neptune => Some(( + 5.224817648770225f64, + 0f64, + 0f64, + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Pluto => Some((2.3211657321048187f64, 0f64, 0f64, None)), + DynOrigin::Moon => Some(( + 4.712299968592838f64, + 0.000054105206811824215f64, + 0f64, + Some(&[ + -0.06769608569710406f64, + -0.0021013764194011725f64, + 0.0012217304763960308f64, + -0.0003001966313430247f64, + 0f64, + 0.0001256637061435917f64, + 0f64, + 0f64, + 0f64, + -0.00009075712110370513f64, + 0f64, + 0f64, + 0.00007504915783575618f64, + ]), + )), + DynOrigin::Phobos => Some(( + 5.544399941316208f64, + -0.001892691938596266f64, + 0f64, + Some(&[ + -0.031141630416121578f64, + 0.00038621064567151f64, + -0.00017946365486924213f64, + -0.00008300698656022431f64, + ]), + )), + DynOrigin::Deimos => Some(( + 5.526708263174914f64, + -0.0018357397507085887f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.05396867424229676f64, + 0.004010877798556321f64, + 0.0011202666329959662f64, + 0.00044218562371099577f64, + 0.00013590791618817245f64, + ]), + )), + DynOrigin::Io => Some(( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0.0016406094968746698f64, + 0.0004188790204786391f64, + ]), + )), + DynOrigin::Europa => Some(( + 4.678878658746398f64, + -0.00015707963267948965f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0.01895427567665842f64, + 0.0010471975511965976f64, + 0.0002617993877991494f64, + 0.00015707963267948965f64, + ]), + )), + DynOrigin::Ganymede => Some(( + 4.680973053848792f64, + -0.00015707963267948965f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + -0.0006457718232379018f64, + 0.0075223690760955605f64, + 0.0015882496193148398f64, + ]), + )), + DynOrigin::Callisto => Some(( + 4.690048765959163f64, + -0.00015707963267948965f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.001186823891356144f64, + 0.010297442586766544f64, + 0f64, + 0.00017453292519943296f64, + ]), + )), + DynOrigin::Amalthea => Some(( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + Some(&[ + -0.014660765716752368f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64, + 0f64, + ]), + )), + DynOrigin::Thebe => Some(( + 4.678355059970801f64, + -0.00015707963267948965f64, + 0f64, + Some(&[ + 0f64, + -0.03682644721708035f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + ]), + )), + DynOrigin::Adrastea => { + Some((4.678355059970801f64, -0.00015707963267948965f64, 0f64, None)) + } + DynOrigin::Metis => { + Some((4.678355059970801f64, -0.00015707963267948965f64, 0f64, None)) + } + DynOrigin::Mimas => Some(( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0.2366666465704311f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Enceladus => { + Some((0.7096508738608943f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Tethys => Some(( + 0.7096508738608943f64, + -0.0006283185307179586f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0.16859880574265224f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Dione => { + Some((0.7096508738608943f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Rhea => Some(( + 0.7047639519553103f64, + -0.0006283185307179586f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.054105206811824215f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Titan => Some(( + 0.6891031125771652f64, + 0f64, + 0f64, + Some(&[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + )), + DynOrigin::Iapetus => Some((5.552939548145159f64, -0.06892305216125608f64, 0f64, None)), + DynOrigin::Phoebe => Some((6.229080100367762f64, 0f64, 0f64, None)), + DynOrigin::Janus => Some(( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + Some(&[ + 0f64, + -0.028326693759867967f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0004014257279586958f64, + ]), + )), + DynOrigin::Epimetheus => Some(( + 0.7082546104592989f64, + -0.0006283185307179586f64, + 0f64, + Some(&[ + -0.05503023131538121f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015009831567151233f64, + 0f64, + ]), + )), + DynOrigin::Helene => { + Some((0.7129669994396837f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Telesto => { + Some((0.8815658051823358f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Calypso => { + Some((0.6354743806511354f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Atlas => { + Some((0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None)) } + DynOrigin::Prometheus => { + Some((0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Pandora => { + Some((0.7082546104592989f64, -0.0006283185307179586f64, 0f64, None)) + } + DynOrigin::Pan => Some((0.7086036763096978f64, -0.0006283185307179586f64, 0f64, None)), + DynOrigin::Ariel => Some(( + 4.493001093409003f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64, + ]), + )), + DynOrigin::Umbriel => Some(( + 4.493001093409003f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003665191429188092f64, + ]), + )), + DynOrigin::Titania => Some(( + 4.493001093409003f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.005061454830783556f64, + ]), + )), + DynOrigin::Oberon => Some(( + 4.493001093409003f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + ]), + )), + DynOrigin::Miranda => Some(( + 4.493001093409003f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07696902001294993f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + ]), + )), + DynOrigin::Cordelia => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + -0.002617993877991494f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Ophelia => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Bianca => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + -0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Cressida => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Desdemona => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0029670597283903604f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Juliet => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Portia => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Rosalind => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005061454830783556f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Belinda => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Puck => Some(( + 4.49090669830661f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.005759586531581287f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Triton => Some(( + 5.224817648770225f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.5646140130201657f64, + 0f64, + -0.1096066770252439f64, + -0.03630284844148206f64, + -0.012915436464758038f64, + -0.004886921905584123f64, + -0.0019198621771937625f64, + -0.0012217304763960308f64, + -0.00034906585039886593f64, + -0.00017453292519943296f64, + ]), + )), + DynOrigin::Naiad => Some(( + 5.224817648770225f64, + 0f64, + 0f64, + Some(&[ + 0.012217304763960306f64, + -0.11327186845443199f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004363323129985824f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Thalassa => Some(( + 5.224817648770225f64, + 0f64, + 0f64, + Some(&[ + 0.012217304763960306f64, + 0f64, + -0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Despina => Some(( + 5.224817648770225f64, + 0f64, + 0f64, + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Galatea => Some(( + 5.224817648770225f64, + 0f64, + 0f64, + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Larissa => Some(( + 5.224817648770225f64, + 0f64, + 0f64, + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00471238898038469f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Proteus => Some(( + 5.22324685244343f64, + 0f64, + 0f64, + Some(&[ + 0.012217304763960306f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Charon => Some((2.3211657321048187f64, 0f64, 0f64, None)), + DynOrigin::Gaspra => Some((0.16528268016386302f64, 0f64, 0f64, None)), + DynOrigin::Ida => Some((2.9454176456656302f64, 0f64, 0f64, None)), + DynOrigin::Ceres => Some((5.0862035995768355f64, 0f64, 0f64, None)), + DynOrigin::Pallas => Some((0.5759586531581288f64, 0f64, 0f64, None)), + DynOrigin::Vesta => Some((5.393608440730596f64, 0f64, 0f64, None)), + DynOrigin::Lutetia => Some((0.9075712110370514f64, 0f64, 0f64, None)), + DynOrigin::Eros => Some((0.1980948701013564f64, 0f64, 0f64, None)), + DynOrigin::Davida => Some((5.183627878423159f64, 0f64, 0f64, None)), + DynOrigin::Steins => Some((1.5882496193148399f64, 0f64, 0f64, None)), + DynOrigin::Itokawa => Some((1.5800465718304666f64, 0f64, 0f64, None)), + _ => None, + } + } + fn maybe_declination_coefficients(&self) -> Option { + match self { + DynOrigin::Sun => Some((1.1147417932487782f64, 0f64, 0f64, None)), + DynOrigin::Mercury => Some(( + 1.0719026867585775f64, + -0.00008552113334772214f64, + 0f64, + Some(&[0f64, 0f64, 0f64, 0f64, 0f64]), + )), DynOrigin::Venus => Some((1.1721631256393916f64, 0f64, 0f64, None)), - DynOrigin::Earth => { - Some((1.5707963267948966f64, -0.009721483933608416f64, 0f64, None)) - } - DynOrigin::Mars => { - Some(( - 0.9500266243444937f64, - -0.0010170216810942417f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000000890117918517108f64, - 0.000002460914245312005f64, - 0.0000005410520681182422f64, - 0.00000008726646259971648f64, - 0.02777297060138025f64, - ], - ), - )) - } - DynOrigin::Jupiter => { - Some(( - 1.1256553894213766f64, - 0.00004211479485062318f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0000008726646259971648f64, - 0.000007051130178057092f64, - 0.000010768681484805013f64, - -0.00000022689280275926283f64, - 0.00001616174887346749f64, - ], - ), - )) - } + DynOrigin::Earth => Some((1.5707963267948966f64, -0.009721483933608416f64, 0f64, None)), + DynOrigin::Mars => Some(( + 0.9500266243444937f64, + -0.0010170216810942417f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000000890117918517108f64, + 0.000002460914245312005f64, + 0.0000005410520681182422f64, + 0.00000008726646259971648f64, + 0.02777297060138025f64, + ]), + )), + DynOrigin::Jupiter => Some(( + 1.1256553894213766f64, + 0.00004211479485062318f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0000008726646259971648f64, + 0.000007051130178057092f64, + 0.000010768681484805013f64, + -0.00000022689280275926283f64, + 0.00001616174887346749f64, + ]), + )), DynOrigin::Saturn => { Some((1.457995697238503f64, -0.00006981317007977319f64, 0f64, None)) } DynOrigin::Uranus => Some((-0.2648537139901395f64, 0f64, 0f64, None)), - DynOrigin::Neptune => { - Some(( - 0.7585200929167356f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } + DynOrigin::Neptune => Some(( + 0.7585200929167356f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), DynOrigin::Pluto => Some((-0.10756464180041053f64, 0f64, 0f64, None)), - DynOrigin::Moon => { - Some(( - 1.161328121643011f64, - 0.00022689280275926284f64, - 0f64, - Some( - &[ - 0.02691123173650057f64, - 0.0004171336912266448f64, - -0.00048520153205442357f64, - 0.0001186823891356144f64, - 0f64, - -0.00005061454830783555f64, - 0.000015707963267948964f64, - 0f64, - 0f64, - 0.000013962634015954637f64, - 0f64, - 0f64, - -0.000015707963267948964f64, - ], - ), - )) - } - DynOrigin::Phobos => { - Some(( - 0.9230395870244597f64, - -0.0010707081834185127f64, - 0f64, - Some( - &[ - -0.018765175709923063f64, - 0.00011669725164439606f64, - -0.00011322648989388013f64, - 0.000049144282945955534f64, - ], - ), - )) - } - DynOrigin::Deimos => { - Some(( - 0.9339242922383507f64, - -0.0010435487658623783f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.032102888827614605f64, - 0.002500240004017941f64, - 0.00033360380402252296f64, - -0.0002587607695714273f64, - 0.00003358537079612689f64, - ], - ), - )) - } - DynOrigin::Io => { - Some(( - 1.1257373675363425f64, - 0.00005235987755982989f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0.0006981317007977319f64, - 0.00019198621771937625f64, - ], - ), - )) - } - DynOrigin::Europa => { - Some(( - 1.125911900461542f64, - 0.00005235987755982989f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.008168140899333463f64, - 0.0004537856055185257f64, - 0.00012217304763960306f64, - 0.00003490658503988659f64, - ], - ), - )) - } - DynOrigin::Ganymede => { - Some(( - 1.1269590980127384f64, - 0.00005235987755982989f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.00027925268031909274f64, - 0.003246312408709453f64, - 0.0006806784082777885f64, - ], - ), - )) + DynOrigin::Moon => Some(( + 1.161328121643011f64, + 0.00022689280275926284f64, + 0f64, + Some(&[ + 0.02691123173650057f64, + 0.0004171336912266448f64, + -0.00048520153205442357f64, + 0.0001186823891356144f64, + 0f64, + -0.00005061454830783555f64, + 0.000015707963267948964f64, + 0f64, + 0f64, + 0.000013962634015954637f64, + 0f64, + 0f64, + -0.000015707963267948964f64, + ]), + )), + DynOrigin::Phobos => Some(( + 0.9230395870244597f64, + -0.0010707081834185127f64, + 0f64, + Some(&[ + -0.018765175709923063f64, + 0.00011669725164439606f64, + -0.00011322648989388013f64, + 0.000049144282945955534f64, + ]), + )), + DynOrigin::Deimos => Some(( + 0.9339242922383507f64, + -0.0010435487658623783f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.032102888827614605f64, + 0.002500240004017941f64, + 0.00033360380402252296f64, + -0.0002587607695714273f64, + 0.00003358537079612689f64, + ]), + )), + DynOrigin::Io => Some(( + 1.1257373675363425f64, + 0.00005235987755982989f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0.0006981317007977319f64, + 0.00019198621771937625f64, + ]), + )), + DynOrigin::Europa => Some(( + 1.125911900461542f64, + 0.00005235987755982989f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0.008168140899333463f64, + 0.0004537856055185257f64, + 0.00012217304763960306f64, + 0.00003490658503988659f64, + ]), + )), + DynOrigin::Ganymede => Some(( + 1.1269590980127384f64, + 0.00005235987755982989f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + -0.00027925268031909274f64, + 0.003246312408709453f64, + 0.0006806784082777885f64, + ]), + )), + DynOrigin::Callisto => Some(( + 1.1314969540679238f64, + 0.00005235987755982989f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0005061454830783556f64, + 0.004433136300065597f64, + 0f64, + -0.00006981317007977319f64, + ]), + )), + DynOrigin::Amalthea => Some(( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + Some(&[ + -0.006283185307179586f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Thebe => Some(( + 1.125562834611143f64, + 0.00005235987755982989f64, + 0f64, + Some(&[ + 0f64, + -0.0158824961931484f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00017453292519943296f64, + ]), + )), + DynOrigin::Adrastea => { + Some((1.125562834611143f64, 0.00005235987755982989f64, 0f64, None)) } - DynOrigin::Callisto => { - Some(( - 1.1314969540679238f64, - 0.00005235987755982989f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.0005061454830783556f64, - 0.004433136300065597f64, - 0f64, - -0.00006981317007977319f64, - ], - ), - )) + DynOrigin::Metis => Some((1.125562834611143f64, 0.00005235987755982989f64, 0f64, None)), + DynOrigin::Mimas => Some(( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + Some(&[ + 0f64, + 0f64, + -0.026703537555513242f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Enceladus => { + Some((1.457698991265664f64, -0.00006981317007977319f64, 0f64, None)) } - DynOrigin::Amalthea => { - Some(( - 1.125562834611143f64, - 0.00005235987755982989f64, - 0f64, - Some( - &[ - -0.006283185307179586f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) + DynOrigin::Tethys => Some(( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + -0.019024088846738195f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Dione => { + Some((1.457698991265664f64, -0.00006981317007977319f64, 0f64, None)) } - DynOrigin::Thebe => { - Some(( - 1.125562834611143f64, - 0.00005235987755982989f64, - 0f64, - Some( - &[ - 0f64, - -0.0158824961931484f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.00017453292519943296f64, - ], - ), - )) + DynOrigin::Rhea => Some(( + 1.4582225900412622f64, + -0.00006981317007977319f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.006108652381980153f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Titan => Some(( + 1.456091543024577f64, + 0f64, + 0f64, + Some(&[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + )), + DynOrigin::Iapetus => { + Some((1.3095205377713455f64, -0.019949113350295186f64, 0f64, None)) } - DynOrigin::Adrastea => { - Some((1.125562834611143f64, 0.00005235987755982989f64, 0f64, None)) + DynOrigin::Phoebe => Some((1.3578661580515883f64, 0f64, 0f64, None)), + DynOrigin::Janus => Some(( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + Some(&[ + 0f64, + -0.003193952531149623f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000017453292519943296f64, + ]), + )), + DynOrigin::Epimetheus => Some(( + 1.457698991265664f64, + -0.00006981317007977319f64, + 0f64, + Some(&[ + -0.006213372137099813f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.00008726646259971648f64, + 0f64, + ]), + )), + DynOrigin::Helene => Some(( + 1.4545573986120743f64, + -0.00006981317007977319f64, + 0f64, + None, + )), + DynOrigin::Telesto => Some(( + 1.4671237692264334f64, + -0.00006981317007977319f64, + 0f64, + None, + )), + DynOrigin::Calypso => Some(( + 1.4842279958959779f64, + -0.00006981317007977319f64, + 0f64, + None, + )), + DynOrigin::Atlas => Some(( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + None, + )), + DynOrigin::Prometheus => Some(( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + None, + )), + DynOrigin::Pandora => Some(( + 1.4578735241908636f64, + -0.00006981317007977319f64, + 0f64, + None, + )), + DynOrigin::Pan => Some((1.457349925415265f64, -0.00006981317007977319f64, 0f64, None)), + DynOrigin::Ariel => Some(( + -0.26354471705114374f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + ]), + )), + DynOrigin::Umbriel => Some(( + -0.26354471705114374f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.003490658503988659f64, + ]), + )), + DynOrigin::Titania => Some(( + -0.26354471705114374f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + ]), + )), + DynOrigin::Oberon => Some(( + -0.26354471705114374f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + ]), + )), + DynOrigin::Miranda => Some(( + -0.2631956512007449f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.07417649320975901f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + ]), + )), + DynOrigin::Cordelia => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0.0024434609527920616f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Ophelia => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Bianca => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Cressida => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Desdemona => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.0027925268031909274f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Juliet => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Portia => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Rosalind => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.004886921905584123f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Belinda => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Puck => Some(( + -0.2649409804527392f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0054105206811824215f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Triton => Some(( + 0.7185520530460655f64, + 0f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3935717463247213f64, + 0f64, + 0.03665191429188092f64, + 0.009599310885968814f64, + 0.0027925268031909274f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Naiad => Some(( + 0.7567747636647413f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + -0.08290313946973066f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Thalassa => Some(( + 0.7583455599915362f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + 0f64, + -0.003665191429188092f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Despina => Some(( + 0.7583455599915362f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + -0.0012217304763960308f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Galatea => Some(( + 0.7579964941411373f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + -0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Larissa => Some(( + 0.7576474282907384f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.003490658503988659f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Proteus => Some(( + 0.7489207820307667f64, + 0f64, + 0f64, + Some(&[ + -0.00890117918517108f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Charon => Some((-0.10756464180041053f64, 0f64, 0f64, None)), + DynOrigin::Gaspra => Some((0.46600291028248597f64, 0f64, 0f64, None)), + DynOrigin::Ida => Some((-1.5205308443374599f64, 0f64, 0f64, None)), + DynOrigin::Ceres => Some((1.165251621801494f64, 0f64, 0f64, None)), + DynOrigin::Pallas => Some((-0.05235987755982989f64, 0f64, 0f64, None)), + DynOrigin::Vesta => Some((0.7371398095798051f64, 0f64, 0f64, None)), + DynOrigin::Lutetia => Some((0.20943951023931956f64, 0f64, 0f64, None)), + DynOrigin::Eros => Some((0.30054569719342356f64, 0f64, 0f64, None)), + DynOrigin::Davida => Some((0.08726646259971647f64, 0f64, 0f64, None)), + DynOrigin::Steins => Some((-1.0821041362364843f64, 0f64, 0f64, None)), + DynOrigin::Itokawa => Some((-1.1571532940722404f64, 0f64, 0f64, None)), + _ => None, + } + } + fn maybe_prime_meridian_coefficients(&self) -> Option { + match self { + DynOrigin::Sun => Some((1.4691483511587469f64, 0.24756448241988369f64, 0f64, None)), + DynOrigin::Mercury => Some(( + 5.752584270622286f64, + 0.10713722462923113f64, + 0f64, + Some(&[ + 0.0001862714861495712f64, + -0.000019601618296223117f64, + -0.00000192684349420174f64, + -0.00000044313909708136026f64, + -0.00000009965830028887623f64, + ]), + )), + DynOrigin::Venus => Some((2.7960174616949156f64, -0.025854762996317376f64, 0f64, None)), + DynOrigin::Earth => Some((3.3186912127896577f64, 6.3003876824396166f64, 0f64, None)), + DynOrigin::Mars => Some(( + 3.0726497570349416f64, + 6.12422041248567f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.000002530727415391778f64, + 0.0000027401669256310974f64, + 0.0000006981317007977319f64, + 0.000000017453292519943295f64, + 0.000000017453292519943295f64, + 0.010202182516192693f64, + ]), + )), + DynOrigin::Jupiter => Some(( + 4.973315703557842f64, + 15.193719457141356f64, + 0f64, + Some(&[ + 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, + 0f64, 0f64, + ]), + )), + DynOrigin::Saturn => Some((0.6789330790257941f64, 14.151023151973554f64, 0f64, None)), + DynOrigin::Uranus => Some((3.557155548489643f64, -8.746893698960328f64, 0f64, None)), + DynOrigin::Neptune => Some(( + 4.362939157550385f64, + 9.444670799468602f64, + 0f64, + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Pluto => Some((5.283024379324235f64, 0.9837115923543857f64, 0f64, None)), + DynOrigin::Moon => Some(( + 0.668832858644503f64, + 0.22997083313948888f64, + -0.000000000000024434609527920614f64, + Some(&[ + 0.06215117466351808f64, + 0.00210835773640915f64, + -0.0011205013797803594f64, + 0.0002757620218151041f64, + 0.0004398229715025711f64, + -0.00011519173063162575f64, + -0.00008203047484373349f64, + -0.00008028514559173915f64, + 0.000048869219055841225f64, + 0.00009075712110370513f64, + 0.00006981317007977319f64, + 0.00003316125578789226f64, + -0.0000767944870877505f64, + ]), + )), + DynOrigin::Phobos => Some(( + 0.6141419961301966f64, + 19.702057793318815f64, + 0.00000000016643698911600935f64, + Some(&[ + 0.02485728795564792f64, + -0.0003968499982587423f64, + 0.0000716825922415843f64, + 0.00011029852554073445f64, + -0.019949113350295186f64, + ]), + )), + DynOrigin::Deimos => Some(( + 1.3857797243489947f64, + 4.977013864082068f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.047814137677880446f64, + -0.006975837721323607f64, + -0.0011455047921115052f64, + -0.0005084039391304362f64, + 0.0002965593651818685f64, + ]), + )), + DynOrigin::Io => Some(( + 3.4974652880714365f64, + 3.551552235248627f64, + 0f64, + Some(&[ + 0f64, + 0f64, + -0.0014835298641951802f64, + -0.0003839724354387525f64, + ]), + )), + DynOrigin::Europa => Some(( + 0.6287025031533974f64, + 1.7693227033738699f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + -0.01710422666954443f64, + -0.0009424777960769379f64, + -0.0002443460952792061f64, + -0.00013962634015954637f64, + ]), + )), + DynOrigin::Ganymede => Some(( + 0.7690618815987814f64, + 0.8782079330731682f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0.0005759586531581288f64, + -0.006789330790257942f64, + -0.0014311699866353504f64, + ]), + )), + DynOrigin::Callisto => Some(( + 4.529303941850484f64, + 0.37648622085811195f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0.001064650843716541f64, + -0.009302604913129777f64, + 0f64, + -0.00015707963267948965f64, + ]), + )), + DynOrigin::Amalthea => Some(( + 4.043404278095263f64, + 12.612298185680531f64, + 0f64, + Some(&[ + 0.013264502315156905f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + ]), + )), + DynOrigin::Thebe => Some(( + 0.1494001839707146f64, + 9.31482937374367f64, + 0f64, + Some(&[ + 0f64, + 0.033335788713091695f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + ]), + )), + DynOrigin::Adrastea => Some((0.5810201079889122f64, 21.066100687650238f64, 0f64, None)), + DynOrigin::Metis => Some((6.040410008227175f64, 21.3149160457997f64, 0f64, None)), + DynOrigin::Mimas => Some(( + 5.819974923700291f64, + 6.667062709440567f64, + 0f64, + Some(&[ + 0f64, + 0f64, + -0.23527038316883564f64, + 0f64, + -0.7827801695194568f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Enceladus => { + Some((0.11030480872604163f64, 4.585536698039173f64, 0f64, None)) } - DynOrigin::Metis => { - Some((1.125562834611143f64, 0.00005235987755982989f64, 0f64, None)) + DynOrigin::Tethys => Some(( + 0.1562069680534925f64, + 3.328306379991881f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + -0.16755160819145562f64, + 0.03892084231947355f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Dione => Some((6.241297405131723f64, 2.295717637805533f64, 0f64, None)), + DynOrigin::Rhea => Some(( + 4.104316268989865f64, + 1.3908537151816638f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.05375614096142535f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Titan => Some(( + 3.2565313114798795f64, + 0.39404258030637335f64, + 0f64, + Some(&[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), + )), + DynOrigin::Iapetus => Some((6.199409503083858f64, 0.07920229445458282f64, 0f64, None)), + DynOrigin::Phoebe => Some((3.116808978211474f64, 16.26016798998745f64, 0f64, None)), + DynOrigin::Janus => Some(( + 1.0267771989482641f64, + 9.044924285944507f64, + 0f64, + Some(&[ + 0f64, + 0.028152160834668535f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0004014257279586958f64, + ]), + )), + DynOrigin::Epimetheus => Some(( + 5.128999072835736f64, + 9.049370273103856f64, + 0f64, + Some(&[ + 0.05468116546498235f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015009831567151233f64, + 0f64, + ]), + )), + DynOrigin::Helene => Some((4.278151062488501f64, 2.297157080652823f64, 0f64, None)), + DynOrigin::Telesto => Some((0.9927432785343747f64, 3.328306811088206f64, 0f64, None)), + DynOrigin::Calypso => Some((2.679254934736495f64, 3.327893239613983f64, 0f64, None)), + DynOrigin::Atlas => Some((2.4064599726497815f64, 10.442409634437194f64, 0f64, None)), + DynOrigin::Prometheus => { + Some((5.1686180468560075f64, 10.250126710744977f64, 0f64, None)) } - DynOrigin::Mimas => { - Some(( - 1.457698991265664f64, - -0.00006981317007977319f64, + DynOrigin::Pandora => Some((2.8434904173491615f64, 9.997055714535051f64, 0f64, None)), + DynOrigin::Pan => Some((0.8517206749732328f64, 10.92652906235538f64, 0f64, None)), + DynOrigin::Ariel => Some(( + 2.7265533574655416f64, + -2.492952697630833f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0.0013962634015954637f64, + ]), + )), + DynOrigin::Umbriel => Some(( + 1.885828256779873f64, + -1.5161481881953498f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0.0010471975511965976f64, + ]), + )), + DynOrigin::Titania => Some(( + 1.3568189605003917f64, + -0.7217186318332268f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0013962634015954637f64, + ]), + )), + DynOrigin::Oberon => Some(( + 0.1181587903600161f64, + -0.4666921966546346f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + ]), + )), + DynOrigin::Miranda => Some(( + 0.5358160803622591f64, + -4.445191100713563f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.02007128639793479f64, + -0.022165681500327987f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0.002617993877991494f64, + ]), + )), + DynOrigin::Cordelia => Some(( + 2.2286109218715593f64, + -18.753921879266084f64, + 0f64, + Some(&[ + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Ophelia => Some(( + 2.2750366799746087f64, + -16.692447910262292f64, + 0f64, + Some(&[ + 0f64, + -0.0005235987755982988f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Bianca => Some(( + 1.8406242291532198f64, + -14.458158751655587f64, + 0f64, + Some(&[ + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Cressida => Some(( + 1.0325367854798453f64, + -13.553906388910956f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Desdemona => Some(( + 1.6594590527962085f64, + -13.265430289266899f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + -0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Juliet => Some(( + 5.2806681848340435f64, + -12.74309158902866f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Portia => Some(( + 0.4368559117741807f64, + -12.243250601727652f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00034906585039886593f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Rosalind => Some(( + 5.496041814530144f64, + -11.250935609538423f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0013962634015954637f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Belinda => Some(( + 5.191656392982332f64, + -10.076882135239488f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.00017453292519943296f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Puck => Some(( + 1.5924384095196262f64, + -8.247467318113788f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + -0.0015707963267948964f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Triton => Some(( + 5.175424830938785f64, + -1.069140942327404f64, + 0f64, + Some(&[ + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.3883357585687383f64, + 0f64, + 0.11746065865921838f64, + 0.03577924966588375f64, + 0.012915436464758038f64, + 0.004886921905584123f64, + 0.0019198621771937625f64, + 0.0008726646259971648f64, + 0.00034906585039886593f64, + 0.00017453292519943296f64, + ]), + )), + DynOrigin::Naiad => Some(( + 4.434183497616794f64, + 21.342656148360604f64, + 0f64, + Some(&[ + -0.008377580409572781f64, + 0.07679448708775051f64, 0f64, - Some( - &[ - 0f64, - 0f64, - -0.026703537555513242f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Enceladus => { - Some((1.457698991265664f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Tethys => { - Some(( - 1.457698991265664f64, - -0.00006981317007977319f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.019024088846738195f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Dione => { - Some((1.457698991265664f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Rhea => { - Some(( - 1.4582225900412622f64, - -0.00006981317007977319f64, 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.006108652381980153f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Titan => { - Some(( - 1.456091543024577f64, 0f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), - )) - } - DynOrigin::Iapetus => { - Some((1.3095205377713455f64, -0.019949113350295186f64, 0f64, None)) - } - DynOrigin::Phoebe => Some((1.3578661580515883f64, 0f64, 0f64, None)), - DynOrigin::Janus => { - Some(( - 1.457698991265664f64, - -0.00006981317007977319f64, 0f64, - Some( - &[ - 0f64, - -0.003193952531149623f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000017453292519943296f64, - ], - ), - )) - } - DynOrigin::Epimetheus => { - Some(( - 1.457698991265664f64, - -0.00006981317007977319f64, + -0.00471238898038469f64, 0f64, - Some( - &[ - -0.006213372137099813f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.00008726646259971648f64, - 0f64, - ], - ), - )) - } - DynOrigin::Helene => { - Some((1.4545573986120743f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Telesto => { - Some((1.4671237692264334f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Calypso => { - Some((1.4842279958959779f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Atlas => { - Some((1.4578735241908636f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Prometheus => { - Some((1.4578735241908636f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Pandora => { - Some((1.4578735241908636f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Pan => { - Some((1.457349925415265f64, -0.00006981317007977319f64, 0f64, None)) - } - DynOrigin::Ariel => { - Some(( - -0.26354471705114374f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004886921905584123f64, - ], - ), - )) - } - DynOrigin::Umbriel => { - Some(( - -0.26354471705114374f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.003490658503988659f64, - ], - ), - )) - } - DynOrigin::Titania => { - Some(( - -0.26354471705114374f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004886921905584123f64, - ], - ), - )) - } - DynOrigin::Oberon => { - Some(( - -0.26354471705114374f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0027925268031909274f64, - ], - ), - )) - } - DynOrigin::Miranda => { - Some(( - -0.2631956512007449f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.07417649320975901f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00034906585039886593f64, - 0f64, - ], - ), - )) - } - DynOrigin::Cordelia => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0.0024434609527920616f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Ophelia => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Bianca => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0.0027925268031909274f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Cressida => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Desdemona => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.0027925268031909274f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Juliet => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0010471975511965976f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Portia => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Rosalind => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.004886921905584123f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Belinda => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0005235987755982988f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Puck => { - Some(( - -0.2649409804527392f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0054105206811824215f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Triton => { - Some(( - 0.7185520530460655f64, - 0f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.3935717463247213f64, - 0f64, - 0.03665191429188092f64, - 0.009599310885968814f64, - 0.0027925268031909274f64, - 0.0008726646259971648f64, - 0.00034906585039886593f64, - 0.00017453292519943296f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Naiad => { - Some(( - 0.7567747636647413f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - -0.08290313946973066f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Thalassa => { - Some(( - 0.7583455599915362f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - -0.003665191429188092f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Despina => { - Some(( - 0.7583455599915362f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - -0.0012217304763960308f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Galatea => { - Some(( - 0.7579964941411373f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - 0f64, - -0.0008726646259971648f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Larissa => { - Some(( - 0.7576474282907384f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.003490658503988659f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Proteus => { - Some(( - 0.7489207820307667f64, - 0f64, - 0f64, - Some( - &[ - -0.00890117918517108f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Charon => Some((-0.10756464180041053f64, 0f64, 0f64, None)), - DynOrigin::Gaspra => Some((0.46600291028248597f64, 0f64, 0f64, None)), - DynOrigin::Ida => Some((-1.5205308443374599f64, 0f64, 0f64, None)), - DynOrigin::Ceres => Some((1.165251621801494f64, 0f64, 0f64, None)), - DynOrigin::Pallas => Some((-0.05235987755982989f64, 0f64, 0f64, None)), - DynOrigin::Vesta => Some((0.7371398095798051f64, 0f64, 0f64, None)), - DynOrigin::Lutetia => Some((0.20943951023931956f64, 0f64, 0f64, None)), - DynOrigin::Eros => Some((0.30054569719342356f64, 0f64, 0f64, None)), - DynOrigin::Davida => Some((0.08726646259971647f64, 0f64, 0f64, None)), - DynOrigin::Steins => Some((-1.0821041362364843f64, 0f64, 0f64, None)), - DynOrigin::Itokawa => Some((-1.1571532940722404f64, 0f64, 0f64, None)), - _ => None, - } - } - fn maybe_prime_meridian_coefficients(&self) -> Option { - match self { - DynOrigin::Sun => { - Some((1.4691483511587469f64, 0.24756448241988369f64, 0f64, None)) - } - DynOrigin::Mercury => { - Some(( - 5.752584270622286f64, - 0.10713722462923113f64, - 0f64, - Some( - &[ - 0.0001862714861495712f64, - -0.000019601618296223117f64, - -0.00000192684349420174f64, - -0.00000044313909708136026f64, - -0.00000009965830028887623f64, - ], - ), - )) - } - DynOrigin::Venus => { - Some((2.7960174616949156f64, -0.025854762996317376f64, 0f64, None)) - } - DynOrigin::Earth => { - Some((3.3186912127896577f64, 6.3003876824396166f64, 0f64, None)) - } - DynOrigin::Mars => { - Some(( - 3.0726497570349416f64, - 6.12422041248567f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.000002530727415391778f64, - 0.0000027401669256310974f64, - 0.0000006981317007977319f64, - 0.000000017453292519943295f64, - 0.000000017453292519943295f64, - 0.010202182516192693f64, - ], - ), - )) - } - DynOrigin::Jupiter => { - Some(( - 4.973315703557842f64, - 15.193719457141356f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Saturn => { - Some((0.6789330790257941f64, 14.151023151973554f64, 0f64, None)) - } - DynOrigin::Uranus => { - Some((3.557155548489643f64, -8.746893698960328f64, 0f64, None)) - } - DynOrigin::Neptune => { - Some(( - 4.362939157550385f64, - 9.444670799468602f64, - 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Pluto => { - Some((5.283024379324235f64, 0.9837115923543857f64, 0f64, None)) - } - DynOrigin::Moon => { - Some(( - 0.668832858644503f64, - 0.22997083313948888f64, - -0.000000000000024434609527920614f64, - Some( - &[ - 0.06215117466351808f64, - 0.00210835773640915f64, - -0.0011205013797803594f64, - 0.0002757620218151041f64, - 0.0004398229715025711f64, - -0.00011519173063162575f64, - -0.00008203047484373349f64, - -0.00008028514559173915f64, - 0.000048869219055841225f64, - 0.00009075712110370513f64, - 0.00006981317007977319f64, - 0.00003316125578789226f64, - -0.0000767944870877505f64, - ], - ), - )) - } - DynOrigin::Phobos => { - Some(( - 0.6141419961301966f64, - 19.702057793318815f64, - 0.00000000016643698911600935f64, - Some( - &[ - 0.02485728795564792f64, - -0.0003968499982587423f64, - 0.0000716825922415843f64, - 0.00011029852554073445f64, - -0.019949113350295186f64, - ], - ), - )) - } - DynOrigin::Deimos => { - Some(( - 1.3857797243489947f64, - 4.977013864082068f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.047814137677880446f64, - -0.006975837721323607f64, - -0.0011455047921115052f64, - -0.0005084039391304362f64, - 0.0002965593651818685f64, - ], - ), - )) - } - DynOrigin::Io => { - Some(( - 3.4974652880714365f64, - 3.551552235248627f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - -0.0014835298641951802f64, - -0.0003839724354387525f64, - ], - ), - )) - } - DynOrigin::Europa => { - Some(( - 0.6287025031533974f64, - 1.7693227033738699f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.01710422666954443f64, - -0.0009424777960769379f64, - -0.0002443460952792061f64, - -0.00013962634015954637f64, - ], - ), - )) - } - DynOrigin::Ganymede => { - Some(( - 0.7690618815987814f64, - 0.8782079330731682f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0.0005759586531581288f64, - -0.006789330790257942f64, - -0.0014311699866353504f64, - ], - ), - )) - } - DynOrigin::Callisto => { - Some(( - 4.529303941850484f64, - 0.37648622085811195f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0.001064650843716541f64, - -0.009302604913129777f64, - 0f64, - -0.00015707963267948965f64, - ], - ), - )) - } - DynOrigin::Amalthea => { - Some(( - 4.043404278095263f64, - 12.612298185680531f64, - 0f64, - Some( - &[ - 0.013264502315156905f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00017453292519943296f64, - 0f64, - ], - ), - )) - } - DynOrigin::Thebe => { - Some(( - 0.1494001839707146f64, - 9.31482937374367f64, - 0f64, - Some( - &[ - 0f64, - 0.033335788713091695f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - ], - ), - )) - } - DynOrigin::Adrastea => { - Some((0.5810201079889122f64, 21.066100687650238f64, 0f64, None)) - } - DynOrigin::Metis => { - Some((6.040410008227175f64, 21.3149160457997f64, 0f64, None)) - } - DynOrigin::Mimas => { - Some(( - 5.819974923700291f64, - 6.667062709440567f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - -0.23527038316883564f64, - 0f64, - -0.7827801695194568f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Enceladus => { - Some((0.11030480872604163f64, 4.585536698039173f64, 0f64, None)) - } - DynOrigin::Tethys => { - Some(( - 0.1562069680534925f64, - 3.328306379991881f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.16755160819145562f64, - 0.03892084231947355f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Dione => { - Some((6.241297405131723f64, 2.295717637805533f64, 0f64, None)) - } - DynOrigin::Rhea => { - Some(( - 4.104316268989865f64, - 1.3908537151816638f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.05375614096142535f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Titan => { - Some(( - 3.2565313114798795f64, - 0.39404258030637335f64, 0f64, - Some(&[0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64]), - )) - } - DynOrigin::Iapetus => { - Some((6.199409503083858f64, 0.07920229445458282f64, 0f64, None)) - } - DynOrigin::Phoebe => { - Some((3.116808978211474f64, 16.26016798998745f64, 0f64, None)) - } - DynOrigin::Janus => { - Some(( - 1.0267771989482641f64, - 9.044924285944507f64, - 0f64, - Some( - &[ - 0f64, - 0.028152160834668535f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0004014257279586958f64, - ], - ), - )) - } - DynOrigin::Epimetheus => { - Some(( - 5.128999072835736f64, - 9.049370273103856f64, - 0f64, - Some( - &[ - 0.05468116546498235f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015009831567151233f64, - 0f64, - ], - ), - )) - } - DynOrigin::Helene => { - Some((4.278151062488501f64, 2.297157080652823f64, 0f64, None)) - } - DynOrigin::Telesto => { - Some((0.9927432785343747f64, 3.328306811088206f64, 0f64, None)) - } - DynOrigin::Calypso => { - Some((2.679254934736495f64, 3.327893239613983f64, 0f64, None)) - } - DynOrigin::Atlas => { - Some((2.4064599726497815f64, 10.442409634437194f64, 0f64, None)) - } - DynOrigin::Prometheus => { - Some((5.1686180468560075f64, 10.250126710744977f64, 0f64, None)) - } - DynOrigin::Pandora => { - Some((2.8434904173491615f64, 9.997055714535051f64, 0f64, None)) - } - DynOrigin::Pan => { - Some((0.8517206749732328f64, 10.92652906235538f64, 0f64, None)) - } - DynOrigin::Ariel => { - Some(( - 2.7265533574655416f64, - -2.492952697630833f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0008726646259971648f64, - 0.0013962634015954637f64, - ], - ), - )) - } - DynOrigin::Umbriel => { - Some(( - 1.885828256779873f64, - -1.5161481881953498f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0.0010471975511965976f64, - ], - ), - )) - } - DynOrigin::Titania => { - Some(( - 1.3568189605003917f64, - -0.7217186318332268f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0013962634015954637f64, - ], - ), - )) - } - DynOrigin::Oberon => { - Some(( - 0.1181587903600161f64, - -0.4666921966546346f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - ], - ), - )) - } - DynOrigin::Miranda => { - Some(( - 0.5358160803622591f64, - -4.445191100713563f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.02007128639793479f64, - -0.022165681500327987f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0.002617993877991494f64, - ], - ), - )) - } - DynOrigin::Cordelia => { - Some(( - 2.2286109218715593f64, - -18.753921879266084f64, - 0f64, - Some( - &[ - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Ophelia => { - Some(( - 2.2750366799746087f64, - -16.692447910262292f64, - 0f64, - Some( - &[ - 0f64, - -0.0005235987755982988f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Bianca => { - Some(( - 1.8406242291532198f64, - -14.458158751655587f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Cressida => { - Some(( - 1.0325367854798453f64, - -13.553906388910956f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - -0.00017453292519943296f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Desdemona => { - Some(( - 1.6594590527962085f64, - -13.265430289266899f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - -0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Juliet => { - Some(( - 5.2806681848340435f64, - -12.74309158902866f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00034906585039886593f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Portia => { - Some(( - 0.4368559117741807f64, - -12.243250601727652f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00034906585039886593f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Rosalind => { - Some(( - 5.496041814530144f64, - -11.250935609538423f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0013962634015954637f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Belinda => { - Some(( - 5.191656392982332f64, - -10.076882135239488f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00017453292519943296f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Puck => { - Some(( - 1.5924384095196262f64, - -8.247467318113788f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.0015707963267948964f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Triton => { - Some(( - 5.175424830938785f64, - -1.069140942327404f64, - 0f64, - Some( - &[ - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.3883357585687383f64, - 0f64, - 0.11746065865921838f64, - 0.03577924966588375f64, - 0.012915436464758038f64, - 0.004886921905584123f64, - 0.0019198621771937625f64, - 0.0008726646259971648f64, - 0.00034906585039886593f64, - 0.00017453292519943296f64, - ], - ), - )) - } - DynOrigin::Naiad => { - Some(( - 4.434183497616794f64, - 21.342656148360604f64, - 0f64, - Some( - &[ - -0.008377580409572781f64, - 0.07679448708775051f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - -0.00471238898038469f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Thalassa => { - Some(( - 1.7812830345854127f64, - 20.171739891174827f64, - 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0.0033161255787892262f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Despina => { - Some(( - 5.34960869028782f64, - 18.77510290185297f64, - 0f64, - Some( - &[ - -0.008552113334772215f64, - 0f64, - 0f64, - 0.0010471975511965976f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Galatea => { - Some(( - 4.504520266472165f64, - 14.6548275586037f64, - 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0f64, - 0f64, - 0.0008726646259971648f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Larissa => { - Some(( - 3.1312952110030268f64, - 11.328119671568512f64, - 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0033161255787892262f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Proteus => { - Some(( - 1.6297884555123048f64, - 5.598412754411688f64, - 0f64, - Some( - &[ - -0.008377580409572781f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0.0006981317007977319f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - 0f64, - ], - ), - )) - } - DynOrigin::Charon => { - Some((2.1414317257344426f64, 0.9837115923543857f64, 0f64, None)) - } - DynOrigin::Gaspra => { - Some((1.4603169851436555f64, 21.41364504378302f64, 0f64, None)) - } - DynOrigin::Ida => { - Some((4.78307481509046f64, 32.54389804704987f64, 0f64, None)) - } - DynOrigin::Ceres => { - Some((2.9784043685283237f64, 16.618208323400072f64, 0f64, None)) - } - DynOrigin::Pallas => { - Some((0.6632251157578453f64, 19.299913700406368f64, 0f64, None)) - } - DynOrigin::Vesta => { - Some((4.980995152266617f64, 28.22778495282912f64, 0f64, None)) - } - DynOrigin::Lutetia => { - Some((1.6406094968746698f64, 18.4612463429088f64, 0f64, None)) - } - DynOrigin::Eros => { - Some((5.690995091977911f64, 28.612729617819042f64, 0f64, None)) - } - DynOrigin::Davida => { - Some((4.679227724596798f64, 29.39866372732388f64, 0f64, None)) - } - DynOrigin::Steins => { - Some((5.615771401216954f64, 24.925032561498227f64, 0f64, None)) - } + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Thalassa => Some(( + 1.7812830345854127f64, + 20.171739891174827f64, + 0f64, + Some(&[ + -0.008377580409572781f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Despina => Some(( + 5.34960869028782f64, + 18.77510290185297f64, + 0f64, + Some(&[ + -0.008552113334772215f64, + 0f64, + 0f64, + 0.0010471975511965976f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Galatea => Some(( + 4.504520266472165f64, + 14.6548275586037f64, + 0f64, + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0.0008726646259971648f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Larissa => Some(( + 3.1312952110030268f64, + 11.328119671568512f64, + 0f64, + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0033161255787892262f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Proteus => Some(( + 1.6297884555123048f64, + 5.598412754411688f64, + 0f64, + Some(&[ + -0.008377580409572781f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0.0006981317007977319f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + 0f64, + ]), + )), + DynOrigin::Charon => Some((2.1414317257344426f64, 0.9837115923543857f64, 0f64, None)), + DynOrigin::Gaspra => Some((1.4603169851436555f64, 21.41364504378302f64, 0f64, None)), + DynOrigin::Ida => Some((4.78307481509046f64, 32.54389804704987f64, 0f64, None)), + DynOrigin::Ceres => Some((2.9784043685283237f64, 16.618208323400072f64, 0f64, None)), + DynOrigin::Pallas => Some((0.6632251157578453f64, 19.299913700406368f64, 0f64, None)), + DynOrigin::Vesta => Some((4.980995152266617f64, 28.22778495282912f64, 0f64, None)), + DynOrigin::Lutetia => Some((1.6406094968746698f64, 18.4612463429088f64, 0f64, None)), + DynOrigin::Eros => Some((5.690995091977911f64, 28.612729617819042f64, 0f64, None)), + DynOrigin::Davida => Some((4.679227724596798f64, 29.39866372732388f64, 0f64, None)), + DynOrigin::Steins => Some((5.615771401216954f64, 24.925032561498227f64, 0f64, None)), DynOrigin::Itokawa => Some((0f64, 12.429240095029979f64, 0f64, None)), _ => None, } diff --git a/crates/lox-bodies/src/python.rs b/crates/lox-bodies/src/python.rs index a2a988ba..1646cce3 100644 --- a/crates/lox-bodies/src/python.rs +++ b/crates/lox-bodies/src/python.rs @@ -7,21 +7,10 @@ */ use pyo3::exceptions::{PyTypeError, PyValueError}; use pyo3::prelude::*; -use pyo3::types::PyTuple; use std::str::FromStr; use crate::dynamic::{DynOrigin, UnknownOriginId, UnknownOriginName}; -use crate::{ - Adrastea, Amalthea, Ariel, Atlas, Barycenter, Callisto, Ceres, Charon, Davida, Deimos, Despina, - Dione, Earth, EarthBarycenter, Ellipsoid, Enceladus, Epimetheus, Eros, Europa, Galatea, - Ganymede, Helene, Himalia, Hyperion, Iapetus, Io, Janus, Jupiter, JupiterBarycenter, Larissa, - Mars, MarsBarycenter, Mercury, MercuryBarycenter, Metis, Mimas, MinorBody, Miranda, Moon, - Naiad, NaifId, Neptune, NeptuneBarycenter, NutationPrecessionCoefficients, Oberon, Origin, - Pandora, Phobos, Phoebe, Planet, Pluto, PlutoBarycenter, PointMass, PolynomialCoefficients, - Prometheus, Proteus, Psyche, Rhea, RotationalElements, Satellite, Saturn, SaturnBarycenter, - SolarSystemBarycenter, Spheroid, Sun, Tethys, Thalassa, Thebe, Titan, Titania, Triton, Umbriel, - Uranus, UranusBarycenter, Venus, VenusBarycenter, Vesta, -}; +use crate::Origin; impl From for PyErr { fn from(err: UnknownOriginId) -> Self { @@ -36,6 +25,7 @@ impl From for PyErr { } #[pyclass(name = "Origin", module = "lox_space", frozen, eq)] +#[derive(Clone, Debug, PartialEq, Eq)] pub struct PyOrigin(DynOrigin); #[pymethods] @@ -73,811 +63,3 @@ impl PyOrigin { self.0.name() } } - -#[pyclass(name = "Sun", module = "lox_space", frozen)] -#[derive(Clone, Debug, Default)] -pub struct PySun; - -#[pymethods] -impl PySun { - #[new] - pub fn new() -> Self { - Self - } - - fn __repr__(&self) -> &str { - "Sun()" - } - - fn __str__(&self) -> &str { - "Sun" - } - - fn __eq__(&self, _other: &Self) -> bool { - true - } - - fn __getnewargs__(&self) -> Py { - // A unit return type would be converted to `None` on the Python side, - // but we actually want an empty tuple here. - Python::with_gil(|py| PyTuple::empty_bound(py).into_py(py)) - } - - pub fn id(&self) -> i32 { - Sun.id().0 - } - - pub fn name(&self) -> &'static str { - Sun.name() - } - - pub fn gravitational_parameter(&self) -> f64 { - Sun.gravitational_parameter() - } - - pub fn mean_radius(&self) -> f64 { - Sun.mean_radius() - } - - pub fn polar_radius(&self) -> f64 { - Sun.polar_radius() - } - - pub fn equatorial_radius(&self) -> f64 { - Sun.equatorial_radius() - } -} - -#[pyclass(name = "Barycenter", module = "lox_space", frozen)] -#[derive(Debug, Clone)] -pub struct PyBarycenter(Box); - -#[pymethods] -impl PyBarycenter { - #[new] - pub fn new(name: &str) -> PyResult { - let barycenter: Option> = match name { - "ssb" | "SSB" | "solar system barycenter" | "Solar System Barycenter" => { - Some(Box::new(SolarSystemBarycenter)) - } - "mercury barycenter" | "Mercury Barycenter" => Some(Box::new(MercuryBarycenter)), - "venus barycenter" | "Venus Barycenter" => Some(Box::new(VenusBarycenter)), - "earth barycenter" | "Earth Barycenter" => Some(Box::new(EarthBarycenter)), - "mars barycenter" | "Mars Barycenter" => Some(Box::new(MarsBarycenter)), - "jupiter barycenter" | "Jupiter Barycenter" => Some(Box::new(JupiterBarycenter)), - "saturn barycenter" | "Saturn Barycenter" => Some(Box::new(SaturnBarycenter)), - "uranus barycenter" | "Uranus Barycenter" => Some(Box::new(UranusBarycenter)), - "neptune barycenter" | "Neptune Barycenter" => Some(Box::new(NeptuneBarycenter)), - "pluto barycenter" | "Pluto Barycenter" => Some(Box::new(PlutoBarycenter)), - _ => None, - }; - match barycenter { - Some(barycenter) => Ok(Self(barycenter)), - None => Err(PyValueError::new_err(format!( - "unknown barycenter: {}", - name - ))), - } - } - - fn __repr__(&self) -> String { - format!("Barycenter(\"{}\")", self.name()) - } - - fn __str__(&self) -> &str { - self.name() - } - - fn __eq__(&self, other: &Self) -> bool { - self.id() == other.id() - } - - fn __getnewargs__(&self) -> (&str,) { - (self.name(),) - } - - pub fn id(&self) -> i32 { - self.0.id().0 - } - - pub fn name(&self) -> &'static str { - self.0.name() - } - - pub fn gravitational_parameter(&self) -> f64 { - self.0.gravitational_parameter() - } -} - -#[pyclass(name = "Planet", module = "lox_space", frozen)] -#[derive(Clone, Debug)] -pub struct PyPlanet(Box); - -#[pymethods] -impl PyPlanet { - #[new] - pub fn new(name: &str) -> PyResult { - let planet: Option> = match name { - "mercury" | "Mercury" => Some(Box::new(Mercury)), - "venus" | "Venus" => Some(Box::new(Venus)), - "earth" | "Earth" => Some(Box::new(Earth)), - "mars" | "Mars" => Some(Box::new(Mars)), - "jupiter" | "Jupiter" => Some(Box::new(Jupiter)), - "saturn" | "Saturn" => Some(Box::new(Saturn)), - "uranus" | "Uranus" => Some(Box::new(Uranus)), - "neptune" | "Neptune" => Some(Box::new(Neptune)), - "pluto" | "Pluto" => Some(Box::new(Pluto)), - _ => None, - }; - match planet { - Some(planet) => Ok(Self(planet)), - None => Err(PyValueError::new_err(format!("unknown planet: {}", name))), - } - } - - fn __repr__(&self) -> String { - format!("Planet(\"{}\")", self.name()) - } - - fn __str__(&self) -> &str { - self.name() - } - - fn __eq__(&self, other: &Self) -> bool { - self.id() == other.id() - } - - fn __getnewargs__(&self) -> (&str,) { - (self.name(),) - } - - pub fn id(&self) -> i32 { - self.0.id().0 - } - - pub fn name(&self) -> &'static str { - self.0.name() - } - - pub fn gravitational_parameter(&self) -> f64 { - self.0.gravitational_parameter() - } - - pub fn mean_radius(&self) -> f64 { - self.0.mean_radius() - } - - pub fn polar_radius(&self) -> f64 { - self.0.polar_radius() - } - - pub fn equatorial_radius(&self) -> f64 { - self.0.equatorial_radius() - } -} - -impl Origin for PyPlanet { - fn id(&self) -> NaifId { - self.0.id() - } - - fn name(&self) -> &'static str { - self.0.name() - } -} - -impl Ellipsoid for PyPlanet { - fn polar_radius(&self) -> f64 { - self.0.polar_radius() - } - - fn mean_radius(&self) -> f64 { - self.0.mean_radius() - } -} - -impl Spheroid for PyPlanet { - fn equatorial_radius(&self) -> f64 { - self.0.equatorial_radius() - } -} - -impl RotationalElements for PyPlanet { - fn nutation_precession_coefficients(&self) -> NutationPrecessionCoefficients { - self.0.nutation_precession_coefficients() - } - - fn right_ascension_coefficients(&self) -> PolynomialCoefficients { - self.0.right_ascension_coefficients() - } - - fn declination_coefficients(&self) -> PolynomialCoefficients { - self.0.declination_coefficients() - } - - fn prime_meridian_coefficients(&self) -> PolynomialCoefficients { - self.0.prime_meridian_coefficients() - } -} - -#[pyclass(name = "Satellite", module = "lox_space", frozen)] -#[derive(Clone, Debug)] -pub struct PySatellite(Box); - -#[pymethods] -impl PySatellite { - #[new] - pub fn new(name: &str) -> PyResult { - let satellite: Option> = match name { - "moon" | "Moon" | "luna" | "Luna" => Some(Box::new(Moon)), - "phobos" | "Phobos" => Some(Box::new(Phobos)), - "deimos" | "Deimos" => Some(Box::new(Deimos)), - "io" | "Io" => Some(Box::new(Io)), - "europa" | "Europa" => Some(Box::new(Europa)), - "ganymede" | "Ganymede" => Some(Box::new(Ganymede)), - "callisto" | "Callisto" => Some(Box::new(Callisto)), - "amalthea" | "Amalthea" => Some(Box::new(Amalthea)), - "himalia" | "Himalia" => Some(Box::new(Himalia)), - "thebe" | "Thebe" => Some(Box::new(Thebe)), - "adrastea" | "Adrastea" => Some(Box::new(Adrastea)), - "metis" | "Metis" => Some(Box::new(Metis)), - "mimas" | "Mimas" => Some(Box::new(Mimas)), - "enceladus" | "Enceladus" => Some(Box::new(Enceladus)), - "tethys" | "Tethys" => Some(Box::new(Tethys)), - "dione" | "Dione" => Some(Box::new(Dione)), - "rhea" | "Rhea" => Some(Box::new(Rhea)), - "titan" | "Titan" => Some(Box::new(Titan)), - "hyperion" | "Hyperion" => Some(Box::new(Hyperion)), - "iapetus" | "Iapetus" => Some(Box::new(Iapetus)), - "phoebe" | "Phoebe" => Some(Box::new(Phoebe)), - "janus" | "Janus" => Some(Box::new(Janus)), - "epimetheus" | "Epimetheus" => Some(Box::new(Epimetheus)), - "helene" | "Helene" => Some(Box::new(Helene)), - "atlas" | "Atlas" => Some(Box::new(Atlas)), - "prometheus" | "Prometheus" => Some(Box::new(Prometheus)), - "pandora" | "Pandora" => Some(Box::new(Pandora)), - "ariel" | "Ariel" => Some(Box::new(Ariel)), - "umbriel" | "Umbriel" => Some(Box::new(Umbriel)), - "titania" | "Titania" => Some(Box::new(Titania)), - "oberon" | "Oberon" => Some(Box::new(Oberon)), - "miranda" | "Miranda" => Some(Box::new(Miranda)), - "triton" | "Triton" => Some(Box::new(Triton)), - "naiad" | "Naiad" => Some(Box::new(Naiad)), - "thalassa" | "Thalassa" => Some(Box::new(Thalassa)), - "despina" | "Despina" => Some(Box::new(Despina)), - "galatea" | "Galatea" => Some(Box::new(Galatea)), - "larissa" | "Larissa" => Some(Box::new(Larissa)), - "proteus" | "Proteus" => Some(Box::new(Proteus)), - "charon" | "Charon" => Some(Box::new(Charon)), - _ => None, - }; - match satellite { - Some(satellite) => Ok(Self(satellite)), - None => Err(PyValueError::new_err(format!( - "unknown satellite: {}", - name - ))), - } - } - - fn __repr__(&self) -> String { - format!("Satellite(\"{}\")", self.name()) - } - - fn __str__(&self) -> &str { - self.name() - } - - fn __eq__(&self, other: &Self) -> bool { - self.id() == other.id() - } - - fn __getnewargs__(&self) -> (&str,) { - (self.name(),) - } - - pub fn id(&self) -> i32 { - self.0.id().0 - } - - pub fn name(&self) -> &'static str { - self.0.name() - } - - pub fn gravitational_parameter(&self) -> f64 { - self.0.gravitational_parameter() - } - - pub fn mean_radius(&self) -> f64 { - self.0.mean_radius() - } - - pub fn polar_radius(&self) -> f64 { - self.0.polar_radius() - } - - pub fn subplanetary_radius(&self) -> f64 { - self.0.subplanetary_radius() - } - - pub fn along_orbit_radius(&self) -> f64 { - self.0.along_orbit_radius() - } -} - -#[pyclass(name = "MinorBody", module = "lox_space", frozen)] -#[derive(Clone, Debug)] -pub struct PyMinorBody(Box); - -#[pymethods] -impl PyMinorBody { - #[new] - pub fn new(name: &str) -> PyResult { - let minor: Option> = match name { - "ceres" | "Ceres" => Some(Box::new(Ceres)), - "vesta" | "Vesta" => Some(Box::new(Vesta)), - "psyche" | "Psyche" => Some(Box::new(Psyche)), - "eros" | "Eros" => Some(Box::new(Eros)), - "davida" | "Davida" => Some(Box::new(Davida)), - _ => None, - }; - match minor { - Some(minor) => Ok(Self(minor)), - None => Err(PyValueError::new_err(format!( - "unknown minor body: {}", - name - ))), - } - } - - fn __repr__(&self) -> String { - format!("MinorBody(\"{}\")", self.name()) - } - - fn __str__(&self) -> &str { - self.name() - } - - fn __eq__(&self, other: &Self) -> bool { - self.id() == other.id() - } - - fn __getnewargs__(&self) -> (&str,) { - (self.name(),) - } - - pub fn id(&self) -> i32 { - self.0.id().0 - } - - pub fn name(&self) -> &'static str { - self.0.name() - } - - pub fn gravitational_parameter(&self) -> f64 { - self.0.gravitational_parameter() - } - - pub fn mean_radius(&self) -> f64 { - self.0.mean_radius() - } - - pub fn polar_radius(&self) -> f64 { - self.0.polar_radius() - } - - pub fn subplanetary_radius(&self) -> f64 { - self.0.subplanetary_radius() - } - - pub fn along_orbit_radius(&self) -> f64 { - self.0.along_orbit_radius() - } -} - -#[derive(Debug, Clone)] -pub enum PyBody { - Barycenter(PyBarycenter), - Sun(PySun), - Planet(PyPlanet), - Satellite(PySatellite), - MinorBody(PyMinorBody), -} - -impl From for PyObject { - fn from(body: PyBody) -> Self { - Python::with_gil(|py| match body { - PyBody::Barycenter(barycenter) => barycenter.clone().into_py(py), - PyBody::Sun(sun) => sun.clone().into_py(py), - PyBody::Planet(planet) => planet.clone().into_py(py), - PyBody::Satellite(satellite) => satellite.clone().into_py(py), - PyBody::MinorBody(minor_body) => minor_body.clone().into_py(py), - }) - } -} - -impl TryFrom<&Bound<'_, PyAny>> for PyBody { - type Error = PyErr; - - fn try_from(body: &Bound<'_, PyAny>) -> Result { - if let Ok(body) = body.extract::() { - Ok(PyBody::Barycenter(body)) - } else if let Ok(body) = body.extract::() { - Ok(PyBody::Sun(body)) - } else if let Ok(body) = body.extract::() { - Ok(PyBody::Planet(body)) - } else if let Ok(body) = body.extract::() { - Ok(PyBody::Satellite(body)) - } else if let Ok(body) = body.extract::() { - Ok(PyBody::MinorBody(body)) - } else { - Err(PyValueError::new_err("Invalid body")) - } - } -} - -impl TryFrom>> for PyBody { - type Error = PyErr; - - fn try_from(body: Option<&Bound<'_, PyAny>>) -> Result { - if let Some(body) = body { - return PyBody::try_from(body); - } - Ok(PyBody::Planet(PyPlanet::new("Earth").unwrap())) - } -} - -impl TryFrom for PyBody { - type Error = PyErr; - - // TODO: Use `Bound` API - fn try_from(body: PyObject) -> Result { - Python::with_gil(|py| { - if let Ok(body) = body.extract::(py) { - Ok(PyBody::Barycenter(body)) - } else if let Ok(body) = body.extract::(py) { - Ok(PyBody::Sun(body)) - } else if let Ok(body) = body.extract::(py) { - Ok(PyBody::Planet(body)) - } else if let Ok(body) = body.extract::(py) { - Ok(PyBody::Satellite(body)) - } else if let Ok(body) = body.extract::(py) { - Ok(PyBody::MinorBody(body)) - } else { - Err(PyValueError::new_err("Invalid body")) - } - }) - } -} - -impl Origin for PyBody { - fn id(&self) -> NaifId { - match &self { - PyBody::Barycenter(barycenter) => NaifId(barycenter.id()), - PyBody::Sun(sun) => NaifId(sun.id()), - PyBody::Planet(planet) => NaifId(planet.id()), - PyBody::Satellite(satellite) => NaifId(satellite.id()), - PyBody::MinorBody(minor_body) => NaifId(minor_body.id()), - } - } - - fn name(&self) -> &'static str { - match &self { - PyBody::Barycenter(barycenter) => barycenter.name(), - PyBody::Sun(sun) => sun.name(), - PyBody::Planet(planet) => planet.name(), - PyBody::Satellite(satellite) => satellite.name(), - PyBody::MinorBody(minor_body) => minor_body.name(), - } - } -} - -impl PointMass for PyBody { - fn gravitational_parameter(&self) -> f64 { - match &self { - PyBody::Barycenter(barycenter) => barycenter.gravitational_parameter(), - PyBody::Sun(sun) => sun.gravitational_parameter(), - PyBody::Planet(planet) => planet.gravitational_parameter(), - PyBody::Satellite(satellite) => satellite.gravitational_parameter(), - PyBody::MinorBody(minor_body) => minor_body.gravitational_parameter(), - } - } -} - -#[cfg(test)] -mod tests { - use rstest::rstest; - - use super::*; - - #[test] - fn test_sun() { - let sun = PySun::new(); - assert_eq!(sun.__repr__(), "Sun()"); - assert_eq!(sun.__str__(), "Sun"); - assert_eq!(sun.id(), Sun.id().0); - assert_eq!(sun.name(), Sun.name()); - assert_eq!(sun.gravitational_parameter(), Sun.gravitational_parameter()); - assert_eq!(sun.mean_radius(), Sun.mean_radius()); - assert_eq!(sun.polar_radius(), Sun.polar_radius()); - assert_eq!(sun.equatorial_radius(), Sun.equatorial_radius()); - assert!(sun.__eq__(&sun)); - let sun_args = sun.__getnewargs__(); - let empty: Py = Python::with_gil(|py| PyTuple::empty_bound(py).into_py(py)); - assert!(sun_args.is(&empty)); - } - - #[rstest] - #[case("Solar System Barycenter", SolarSystemBarycenter)] - #[case("SSB", SolarSystemBarycenter)] - #[case("Mercury Barycenter", MercuryBarycenter)] - #[case("Venus Barycenter", VenusBarycenter)] - #[case("Earth Barycenter", EarthBarycenter)] - #[case("Mars Barycenter", MarsBarycenter)] - #[case("Jupiter Barycenter", JupiterBarycenter)] - #[case("Saturn Barycenter", SaturnBarycenter)] - #[case("Uranus Barycenter", UranusBarycenter)] - #[case("Neptune Barycenter", NeptuneBarycenter)] - #[case("Pluto Barycenter", PlutoBarycenter)] - fn test_barycenter(#[case] name: &str, #[case] barycenter: impl Barycenter) { - let py_barycenter = PyBarycenter::new(name).expect("barycenter should be valid"); - assert_eq!( - py_barycenter.__repr__(), - format!("Barycenter(\"{}\")", barycenter.name()) - ); - assert_eq!(py_barycenter.__str__(), barycenter.name()); - assert_eq!(py_barycenter.name(), barycenter.name()); - let py_barycenter = - PyBarycenter::new(&name.to_lowercase()).expect("barycenter should be valid"); - assert_eq!( - py_barycenter.__repr__(), - format!("Barycenter(\"{}\")", barycenter.name()) - ); - assert_eq!(py_barycenter.__str__(), barycenter.name()); - assert_eq!(py_barycenter.name(), barycenter.name()); - assert_eq!(py_barycenter.id(), barycenter.id().0); - assert_eq!( - py_barycenter.gravitational_parameter(), - barycenter.gravitational_parameter() - ); - assert_eq!(py_barycenter.__getnewargs__(), (barycenter.name(),)); - assert!(py_barycenter.__eq__(&py_barycenter)); - } - - #[test] - fn test_invalid_barycenter() { - let barycenter = PyBarycenter::new("Rupert Barycenter"); - assert!(barycenter.is_err()); - } - - #[rstest] - #[case("Mercury", Mercury)] - #[case("Venus", Venus)] - #[case("Earth", Earth)] - #[case("Mars", Mars)] - #[case("Jupiter", Jupiter)] - #[case("Saturn", Saturn)] - #[case("Uranus", Uranus)] - #[case("Neptune", Neptune)] - #[case("Pluto", Pluto)] - fn test_planet(#[case] name: &str, #[case] planet: impl Planet) { - let py_planet = PyPlanet::new(name).expect("planet should be valid"); - assert_eq!(py_planet.__repr__(), format!("Planet(\"{}\")", name)); - assert_eq!(py_planet.__str__(), name); - assert_eq!(py_planet.name(), name); - let py_planet = PyPlanet::new(&name.to_lowercase()).expect("planet should be valid"); - assert_eq!(py_planet.__repr__(), format!("Planet(\"{}\")", name)); - assert_eq!(py_planet.__str__(), name); - assert_eq!(py_planet.name(), name); - assert_eq!(py_planet.id(), planet.id().0); - assert_eq!( - py_planet.gravitational_parameter(), - planet.gravitational_parameter() - ); - assert_eq!(py_planet.mean_radius(), planet.mean_radius()); - assert_eq!(py_planet.polar_radius(), planet.polar_radius()); - assert_eq!(py_planet.equatorial_radius(), planet.equatorial_radius()); - assert_eq!(py_planet.__getnewargs__(), (planet.name(),)); - assert!(py_planet.__eq__(&py_planet)); - } - - #[test] - fn test_invalid_planet() { - let planet = PyPlanet::new("Rupert"); - assert!(planet.is_err()); - } - - #[rstest] - #[case("Moon", Moon)] - #[case("Luna", Moon)] - #[case("Phobos", Phobos)] - #[case("Deimos", Deimos)] - #[case("Io", Io)] - #[case("Europa", Europa)] - #[case("Ganymede", Ganymede)] - #[case("Callisto", Callisto)] - #[case("Amalthea", Amalthea)] - #[case("Himalia", Himalia)] - #[case("Thebe", Thebe)] - #[case("Adrastea", Adrastea)] - #[case("Metis", Metis)] - #[case("Mimas", Mimas)] - #[case("Enceladus", Enceladus)] - #[case("Tethys", Tethys)] - #[case("Dione", Dione)] - #[case("Rhea", Rhea)] - #[case("Titan", Titan)] - #[case("Hyperion", Hyperion)] - #[case("Iapetus", Iapetus)] - #[case("Phoebe", Phoebe)] - #[case("Janus", Janus)] - #[case("Epimetheus", Epimetheus)] - #[case("Helene", Helene)] - #[case("Atlas", Atlas)] - #[case("Prometheus", Prometheus)] - #[case("Pandora", Pandora)] - #[case("Ariel", Ariel)] - #[case("Umbriel", Umbriel)] - #[case("Titania", Titania)] - #[case("Oberon", Oberon)] - #[case("Miranda", Miranda)] - #[case("Triton", Triton)] - #[case("Naiad", Naiad)] - #[case("Thalassa", Thalassa)] - #[case("Despina", Despina)] - #[case("Galatea", Galatea)] - #[case("Larissa", Larissa)] - #[case("Proteus", Proteus)] - #[case("Charon", Charon)] - fn test_satellite(#[case] name: &str, #[case] satellite: impl Satellite) { - let py_satellite = PySatellite::new(name).expect("satellite should be valid"); - assert_eq!( - py_satellite.__repr__(), - format!("Satellite(\"{}\")", satellite.name()) - ); - assert_eq!(py_satellite.__str__(), satellite.name()); - assert_eq!(py_satellite.name(), satellite.name()); - let py_satellite = - PySatellite::new(&name.to_lowercase()).expect("satellite should be valid"); - assert_eq!( - py_satellite.__repr__(), - format!("Satellite(\"{}\")", satellite.name()) - ); - assert_eq!(py_satellite.__str__(), satellite.name()); - assert_eq!(py_satellite.name(), satellite.name()); - assert_eq!(py_satellite.id(), satellite.id().0); - assert_eq!( - py_satellite.gravitational_parameter(), - satellite.gravitational_parameter() - ); - assert_eq!(py_satellite.mean_radius(), satellite.mean_radius()); - assert_eq!(py_satellite.polar_radius(), satellite.polar_radius()); - assert_eq!( - py_satellite.subplanetary_radius(), - satellite.subplanetary_radius() - ); - assert_eq!( - py_satellite.along_orbit_radius(), - satellite.along_orbit_radius() - ); - assert_eq!(py_satellite.__getnewargs__(), (satellite.name(),)); - assert!(py_satellite.__eq__(&py_satellite)); - } - - #[test] - fn test_invalid_satellite() { - let satellite = PySatellite::new("Endor"); - assert!(satellite.is_err()); - } - - #[rstest] - #[case("Ceres", Ceres)] - #[case("Vesta", Vesta)] - #[case("Psyche", Psyche)] - #[case("Eros", Eros)] - #[case("Davida", Davida)] - fn test_minor_body(#[case] name: &str, #[case] minor_body: impl MinorBody) { - let py_minor_body = PyMinorBody::new(name).expect("minor body should be valid"); - assert_eq!( - py_minor_body.__repr__(), - format!("MinorBody(\"{}\")", minor_body.name()) - ); - assert_eq!(py_minor_body.__str__(), minor_body.name()); - assert_eq!(py_minor_body.name(), minor_body.name()); - let py_minor_body = - PyMinorBody::new(&name.to_lowercase()).expect("minor body should be valid"); - assert_eq!( - py_minor_body.__repr__(), - format!("MinorBody(\"{}\")", minor_body.name()) - ); - assert_eq!(py_minor_body.__str__(), minor_body.name()); - assert_eq!(py_minor_body.name(), minor_body.name()); - assert_eq!(py_minor_body.id(), minor_body.id().0); - assert_eq!( - py_minor_body.gravitational_parameter(), - minor_body.gravitational_parameter() - ); - assert_eq!(py_minor_body.mean_radius(), minor_body.mean_radius()); - assert_eq!(py_minor_body.polar_radius(), minor_body.polar_radius()); - assert_eq!( - py_minor_body.subplanetary_radius(), - minor_body.subplanetary_radius() - ); - assert_eq!( - py_minor_body.along_orbit_radius(), - minor_body.along_orbit_radius() - ); - assert_eq!(py_minor_body.__getnewargs__(), (minor_body.name(),)); - assert!(py_minor_body.__eq__(&py_minor_body)); - } - - #[test] - fn test_invalid_minor_body() { - let minor_body = PyMinorBody::new("Bielefeld"); - assert!(minor_body.is_err()); - } - - #[test] - fn test_body() { - let sun = PyBody::Sun(PySun::new()); - assert_eq!(sun.id(), Sun.id()); - assert_eq!(sun.name(), Sun.name()); - assert_eq!(sun.gravitational_parameter(), Sun.gravitational_parameter()); - let sun1: PyBody = PyObject::from(sun.clone()) - .try_into() - .expect("sun is valid"); - assert_eq!(sun1.id(), sun.id()); - - let barycenter = PyBody::Barycenter(PyBarycenter::new("ssb").expect("barycenter is valid")); - assert_eq!(barycenter.id(), SolarSystemBarycenter.id()); - assert_eq!(barycenter.name(), SolarSystemBarycenter.name()); - assert_eq!( - barycenter.gravitational_parameter(), - SolarSystemBarycenter.gravitational_parameter() - ); - let barycenter1: PyBody = PyObject::from(barycenter.clone()) - .try_into() - .expect("barycenter is valid"); - assert_eq!(barycenter1.id(), barycenter.id()); - - let planet = PyBody::Planet(PyPlanet::new("earth").expect("planet is valid")); - assert_eq!(planet.id(), Earth.id()); - assert_eq!(planet.name(), Earth.name()); - assert_eq!( - planet.gravitational_parameter(), - Earth.gravitational_parameter() - ); - let planet1: PyBody = PyObject::from(planet.clone()) - .try_into() - .expect("planet is valid"); - assert_eq!(planet1.id(), planet.id()); - - let satellite = PyBody::Satellite(PySatellite::new("moon").expect("satellite is valid")); - assert_eq!(satellite.id(), Moon.id()); - assert_eq!(satellite.name(), Moon.name()); - assert_eq!( - satellite.gravitational_parameter(), - Moon.gravitational_parameter() - ); - let satellite1: PyBody = PyObject::from(satellite.clone()) - .try_into() - .expect("satellite is valid"); - assert_eq!(satellite1.id(), satellite.id()); - - let minor_body = PyBody::MinorBody(PyMinorBody::new("ceres").expect("minor body is valid")); - assert_eq!(minor_body.id(), Ceres.id()); - assert_eq!(minor_body.name(), Ceres.name()); - assert_eq!( - minor_body.gravitational_parameter(), - Ceres.gravitational_parameter() - ); - let minor_body1: PyBody = PyObject::from(minor_body.clone()) - .try_into() - .expect("minor_body is valid"); - assert_eq!(minor_body1.id(), minor_body.id()); - - let obj = Python::with_gil(|py| 1.into_py(py)); - let body = PyBody::try_from(obj); - assert!(body.is_err()); - } -} diff --git a/tools/lox-gen/Cargo.lock b/tools/lox-gen/Cargo.lock index a9764085..fd2de7f5 100644 --- a/tools/lox-gen/Cargo.lock +++ b/tools/lox-gen/Cargo.lock @@ -178,7 +178,6 @@ dependencies = [ "proc-macro2", "quote", "syn", - "thiserror", ] [[package]] diff --git a/tools/lox-gen/Cargo.toml b/tools/lox-gen/Cargo.toml index ddf8b552..0ff6e2d9 100644 --- a/tools/lox-gen/Cargo.toml +++ b/tools/lox-gen/Cargo.toml @@ -10,5 +10,4 @@ lox-io = { path = "../../crates/lox-io" } proc-macro2 = "1.0.92" quote = "1.0.37" syn = "2.0.90" -thiserror = "2.0.4" prettyplease = "0.2.25" diff --git a/tools/lox-gen/src/bodies.rs b/tools/lox-gen/src/bodies.rs index bf5d25ac..73496dab 100644 --- a/tools/lox-gen/src/bodies.rs +++ b/tools/lox-gen/src/bodies.rs @@ -11,201 +11,967 @@ use proc_macro2::Ident; use quote::{format_ident, quote}; use std::path::Path; -const BODIES: [(&str, i32); 190] = [ - ("Sun", 10), +struct Origin { + name: &'static str, + id: i32, + mean_radius: Option, +} + +const ORIGINS: [Origin; 190] = [ + Origin { + name: "Sun", + id: 10, + mean_radius: None, + }, // Planets. - ("Mercury", 199), - ("Venus", 299), - ("Earth", 399), - ("Mars", 499), - ("Jupiter", 599), - ("Saturn", 699), - ("Uranus", 799), - ("Neptune", 899), - ("Pluto", 999), + Origin { + name: "Mercury", + id: 199, + mean_radius: Some(2439.4), + }, + Origin { + name: "Venus", + id: 299, + mean_radius: Some(6051.8), + }, + Origin { + name: "Earth", + id: 399, + mean_radius: Some(6371.0084), + }, + Origin { + name: "Mars", + id: 499, + mean_radius: Some(3389.5), + }, + Origin { + name: "Jupiter", + id: 599, + mean_radius: Some(69911.0), + }, + Origin { + name: "Saturn", + id: 699, + mean_radius: Some(58232.0), + }, + Origin { + name: "Uranus", + id: 799, + mean_radius: Some(25362.0), + }, + Origin { + name: "Neptune", + id: 899, + mean_radius: Some(24622.0), + }, + Origin { + name: "Pluto", + id: 999, + mean_radius: Some(1188.3), + }, // Barycenters. - ("Solar System Barycenter", 0), - ("Mercury Barycenter", 1), - ("Venus Barycenter", 2), - ("Earth Barycenter", 3), - ("Mars Barycenter", 4), - ("Jupiter Barycenter", 5), - ("Saturn Barycenter", 6), - ("Uranus Barycenter", 7), - ("Neptune Barycenter", 8), - ("Pluto Barycenter", 9), + Origin { + name: "Solar System Barycenter", + id: 0, + mean_radius: None, + }, + Origin { + name: "Mercury Barycenter", + id: 1, + mean_radius: None, + }, + Origin { + name: "Venus Barycenter", + id: 2, + mean_radius: None, + }, + Origin { + name: "Earth Barycenter", + id: 3, + mean_radius: None, + }, + Origin { + name: "Mars Barycenter", + id: 4, + mean_radius: None, + }, + Origin { + name: "Jupiter Barycenter", + id: 5, + mean_radius: None, + }, + Origin { + name: "Saturn Barycenter", + id: 6, + mean_radius: None, + }, + Origin { + name: "Uranus Barycenter", + id: 7, + mean_radius: None, + }, + Origin { + name: "Neptune Barycenter", + id: 8, + mean_radius: None, + }, + Origin { + name: "Pluto Barycenter", + id: 9, + mean_radius: None, + }, // Satellites. - ("Moon", 301), - ("Phobos", 401), - ("Deimos", 402), - ("Io", 501), - ("Europa", 502), - ("Ganymede", 503), - ("Callisto", 504), - ("Amalthea", 505), - ("Himalia", 506), - ("Elara", 507), - ("Pasiphae", 508), - ("Sinope", 509), - ("Lysithea", 510), - ("Carme", 511), - ("Ananke", 512), - ("Leda", 513), - ("Thebe", 514), - ("Adrastea", 515), - ("Metis", 516), - ("Callirrhoe", 517), - ("Themisto", 518), - ("Magaclite", 519), - ("Taygete", 520), - ("Chaldene", 521), - ("Harpalyke", 522), - ("Kalyke", 523), - ("Iocaste", 524), - ("Erinome", 525), - ("Isonoe", 526), - ("Praxidike", 527), - ("Autonoe", 528), - ("Thyone", 529), - ("Hermippe", 530), - ("Aitne", 531), - ("Eurydome", 532), - ("Euanthe", 533), - ("Euporie", 534), - ("Orthosie", 535), - ("Sponde", 536), - ("Kale", 537), - ("Pasithee", 538), - ("Hegemone", 539), - ("Mneme", 540), - ("Aoede", 541), - ("Thelxinoe", 542), - ("Arche", 543), - ("Kallichore", 544), - ("Helike", 545), - ("Carpo", 546), - ("Eukelade", 547), - ("Cyllene", 548), - ("Kore", 549), - ("Herse", 550), - ("Dia", 553), - ("Mimas", 601), - ("Enceladus", 602), - ("Tethys", 603), - ("Dione", 604), - ("Rhea", 605), - ("Titan", 606), - ("Hyperion", 607), - ("Iapetus", 608), - ("Phoebe", 609), - ("Janus", 610), - ("Epimetheus", 611), - ("Helene", 612), - ("Telesto", 613), - ("Calypso", 614), - ("Atlas", 615), - ("Prometheus", 616), - ("Pandora", 617), - ("Pan", 618), - ("Ymir", 619), - ("Paaliaq", 620), - ("Tarvos", 621), - ("Ijiraq", 622), - ("Suttungr", 623), - ("Kiviuq", 624), - ("Mundilfari", 625), - ("Albiorix", 626), - ("Skathi", 627), - ("Erriapus", 628), - ("Siarnaq", 629), - ("Thrymr", 630), - ("Narvi", 631), - ("Methone", 632), - ("Pallene", 633), - ("Polydeuces", 634), - ("Daphnis", 635), - ("Aegir", 636), - ("Bebhionn", 637), - ("Bergelmir", 638), - ("Bestla", 639), - ("Farbauti", 640), - ("Fenrir", 641), - ("Fornjot", 642), - ("Hati", 643), - ("Hyrrokkin", 644), - ("Kari", 645), - ("Loge", 646), - ("Skoll", 647), - ("Surtur", 648), - ("Anthe", 649), - ("Jarnsaxa", 650), - ("Greip", 651), - ("Tarqeq", 652), - ("Aegaeon", 653), - ("Ariel", 701), - ("Umbriel", 702), - ("Titania", 703), - ("Oberon", 704), - ("Miranda", 705), - ("Cordelia", 706), - ("Ophelia", 707), - ("Bianca", 708), - ("Cressida", 709), - ("Desdemona", 710), - ("Juliet", 711), - ("Portia", 712), - ("Rosalind", 713), - ("Belinda", 714), - ("Puck", 715), - ("Caliban", 716), - ("Sycorax", 717), - ("Prospero", 718), - ("Setebos", 719), - ("Stephano", 720), - ("Trinculo", 721), - ("Francisco", 722), - ("Margaret", 723), - ("Ferdinand", 724), - ("Perdita", 725), - ("Mab", 726), - ("Cupid", 727), - ("Triton", 801), - ("Nereid", 802), - ("Naiad", 803), - ("Thalassa", 804), - ("Despina", 805), - ("Galatea", 806), - ("Larissa", 807), - ("Proteus", 808), - ("Halimede", 809), - ("Psamathe", 810), - ("Sao", 811), - ("Laomedeia", 812), - ("Neso", 813), - ("Charon", 901), - ("Nix", 902), - ("Hydra", 903), - ("Kerberos", 904), - ("Styx", 905), + Origin { + name: "Moon", + id: 301, + mean_radius: None, + }, + Origin { + name: "Phobos", + id: 401, + mean_radius: None, + }, + Origin { + name: "Deimos", + id: 402, + mean_radius: None, + }, + Origin { + name: "Io", + id: 501, + mean_radius: None, + }, + Origin { + name: "Europa", + id: 502, + mean_radius: None, + }, + Origin { + name: "Ganymede", + id: 503, + mean_radius: None, + }, + Origin { + name: "Callisto", + id: 504, + mean_radius: None, + }, + Origin { + name: "Amalthea", + id: 505, + mean_radius: None, + }, + Origin { + name: "Himalia", + id: 506, + mean_radius: None, + }, + Origin { + name: "Elara", + id: 507, + mean_radius: None, + }, + Origin { + name: "Pasiphae", + id: 508, + mean_radius: None, + }, + Origin { + name: "Sinope", + id: 509, + mean_radius: None, + }, + Origin { + name: "Lysithea", + id: 510, + mean_radius: None, + }, + Origin { + name: "Carme", + id: 511, + mean_radius: None, + }, + Origin { + name: "Ananke", + id: 512, + mean_radius: None, + }, + Origin { + name: "Leda", + id: 513, + mean_radius: None, + }, + Origin { + name: "Thebe", + id: 514, + mean_radius: None, + }, + Origin { + name: "Adrastea", + id: 515, + mean_radius: None, + }, + Origin { + name: "Metis", + id: 516, + mean_radius: None, + }, + Origin { + name: "Callirrhoe", + id: 517, + mean_radius: None, + }, + Origin { + name: "Themisto", + id: 518, + mean_radius: None, + }, + Origin { + name: "Magaclite", + id: 519, + mean_radius: None, + }, + Origin { + name: "Taygete", + id: 520, + mean_radius: None, + }, + Origin { + name: "Chaldene", + id: 521, + mean_radius: None, + }, + Origin { + name: "Harpalyke", + id: 522, + mean_radius: None, + }, + Origin { + name: "Kalyke", + id: 523, + mean_radius: None, + }, + Origin { + name: "Iocaste", + id: 524, + mean_radius: None, + }, + Origin { + name: "Erinome", + id: 525, + mean_radius: None, + }, + Origin { + name: "Isonoe", + id: 526, + mean_radius: None, + }, + Origin { + name: "Praxidike", + id: 527, + mean_radius: None, + }, + Origin { + name: "Autonoe", + id: 528, + mean_radius: None, + }, + Origin { + name: "Thyone", + id: 529, + mean_radius: None, + }, + Origin { + name: "Hermippe", + id: 530, + mean_radius: None, + }, + Origin { + name: "Aitne", + id: 531, + mean_radius: None, + }, + Origin { + name: "Eurydome", + id: 532, + mean_radius: None, + }, + Origin { + name: "Euanthe", + id: 533, + mean_radius: None, + }, + Origin { + name: "Euporie", + id: 534, + mean_radius: None, + }, + Origin { + name: "Orthosie", + id: 535, + mean_radius: None, + }, + Origin { + name: "Sponde", + id: 536, + mean_radius: None, + }, + Origin { + name: "Kale", + id: 537, + mean_radius: None, + }, + Origin { + name: "Pasithee", + id: 538, + mean_radius: None, + }, + Origin { + name: "Hegemone", + id: 539, + mean_radius: None, + }, + Origin { + name: "Mneme", + id: 540, + mean_radius: None, + }, + Origin { + name: "Aoede", + id: 541, + mean_radius: None, + }, + Origin { + name: "Thelxinoe", + id: 542, + mean_radius: None, + }, + Origin { + name: "Arche", + id: 543, + mean_radius: None, + }, + Origin { + name: "Kallichore", + id: 544, + mean_radius: None, + }, + Origin { + name: "Helike", + id: 545, + mean_radius: None, + }, + Origin { + name: "Carpo", + id: 546, + mean_radius: None, + }, + Origin { + name: "Eukelade", + id: 547, + mean_radius: None, + }, + Origin { + name: "Cyllene", + id: 548, + mean_radius: None, + }, + Origin { + name: "Kore", + id: 549, + mean_radius: None, + }, + Origin { + name: "Herse", + id: 550, + mean_radius: None, + }, + Origin { + name: "Dia", + id: 553, + mean_radius: None, + }, + Origin { + name: "Mimas", + id: 601, + mean_radius: None, + }, + Origin { + name: "Enceladus", + id: 602, + mean_radius: None, + }, + Origin { + name: "Tethys", + id: 603, + mean_radius: None, + }, + Origin { + name: "Dione", + id: 604, + mean_radius: None, + }, + Origin { + name: "Rhea", + id: 605, + mean_radius: None, + }, + Origin { + name: "Titan", + id: 606, + mean_radius: None, + }, + Origin { + name: "Hyperion", + id: 607, + mean_radius: None, + }, + Origin { + name: "Iapetus", + id: 608, + mean_radius: None, + }, + Origin { + name: "Phoebe", + id: 609, + mean_radius: None, + }, + Origin { + name: "Janus", + id: 610, + mean_radius: None, + }, + Origin { + name: "Epimetheus", + id: 611, + mean_radius: None, + }, + Origin { + name: "Helene", + id: 612, + mean_radius: None, + }, + Origin { + name: "Telesto", + id: 613, + mean_radius: None, + }, + Origin { + name: "Calypso", + id: 614, + mean_radius: None, + }, + Origin { + name: "Atlas", + id: 615, + mean_radius: None, + }, + Origin { + name: "Prometheus", + id: 616, + mean_radius: None, + }, + Origin { + name: "Pandora", + id: 617, + mean_radius: None, + }, + Origin { + name: "Pan", + id: 618, + mean_radius: None, + }, + Origin { + name: "Ymir", + id: 619, + mean_radius: None, + }, + Origin { + name: "Paaliaq", + id: 620, + mean_radius: None, + }, + Origin { + name: "Tarvos", + id: 621, + mean_radius: None, + }, + Origin { + name: "Ijiraq", + id: 622, + mean_radius: None, + }, + Origin { + name: "Suttungr", + id: 623, + mean_radius: None, + }, + Origin { + name: "Kiviuq", + id: 624, + mean_radius: None, + }, + Origin { + name: "Mundilfari", + id: 625, + mean_radius: None, + }, + Origin { + name: "Albiorix", + id: 626, + mean_radius: None, + }, + Origin { + name: "Skathi", + id: 627, + mean_radius: None, + }, + Origin { + name: "Erriapus", + id: 628, + mean_radius: None, + }, + Origin { + name: "Siarnaq", + id: 629, + mean_radius: None, + }, + Origin { + name: "Thrymr", + id: 630, + mean_radius: None, + }, + Origin { + name: "Narvi", + id: 631, + mean_radius: None, + }, + Origin { + name: "Methone", + id: 632, + mean_radius: None, + }, + Origin { + name: "Pallene", + id: 633, + mean_radius: None, + }, + Origin { + name: "Polydeuces", + id: 634, + mean_radius: None, + }, + Origin { + name: "Daphnis", + id: 635, + mean_radius: None, + }, + Origin { + name: "Aegir", + id: 636, + mean_radius: None, + }, + Origin { + name: "Bebhionn", + id: 637, + mean_radius: None, + }, + Origin { + name: "Bergelmir", + id: 638, + mean_radius: None, + }, + Origin { + name: "Bestla", + id: 639, + mean_radius: None, + }, + Origin { + name: "Farbauti", + id: 640, + mean_radius: None, + }, + Origin { + name: "Fenrir", + id: 641, + mean_radius: None, + }, + Origin { + name: "Fornjot", + id: 642, + mean_radius: None, + }, + Origin { + name: "Hati", + id: 643, + mean_radius: None, + }, + Origin { + name: "Hyrrokkin", + id: 644, + mean_radius: None, + }, + Origin { + name: "Kari", + id: 645, + mean_radius: None, + }, + Origin { + name: "Loge", + id: 646, + mean_radius: None, + }, + Origin { + name: "Skoll", + id: 647, + mean_radius: None, + }, + Origin { + name: "Surtur", + id: 648, + mean_radius: None, + }, + Origin { + name: "Anthe", + id: 649, + mean_radius: None, + }, + Origin { + name: "Jarnsaxa", + id: 650, + mean_radius: None, + }, + Origin { + name: "Greip", + id: 651, + mean_radius: None, + }, + Origin { + name: "Tarqeq", + id: 652, + mean_radius: None, + }, + Origin { + name: "Aegaeon", + id: 653, + mean_radius: None, + }, + Origin { + name: "Ariel", + id: 701, + mean_radius: None, + }, + Origin { + name: "Umbriel", + id: 702, + mean_radius: None, + }, + Origin { + name: "Titania", + id: 703, + mean_radius: None, + }, + Origin { + name: "Oberon", + id: 704, + mean_radius: None, + }, + Origin { + name: "Miranda", + id: 705, + mean_radius: None, + }, + Origin { + name: "Cordelia", + id: 706, + mean_radius: None, + }, + Origin { + name: "Ophelia", + id: 707, + mean_radius: None, + }, + Origin { + name: "Bianca", + id: 708, + mean_radius: None, + }, + Origin { + name: "Cressida", + id: 709, + mean_radius: None, + }, + Origin { + name: "Desdemona", + id: 710, + mean_radius: None, + }, + Origin { + name: "Juliet", + id: 711, + mean_radius: None, + }, + Origin { + name: "Portia", + id: 712, + mean_radius: None, + }, + Origin { + name: "Rosalind", + id: 713, + mean_radius: None, + }, + Origin { + name: "Belinda", + id: 714, + mean_radius: None, + }, + Origin { + name: "Puck", + id: 715, + mean_radius: None, + }, + Origin { + name: "Caliban", + id: 716, + mean_radius: None, + }, + Origin { + name: "Sycorax", + id: 717, + mean_radius: None, + }, + Origin { + name: "Prospero", + id: 718, + mean_radius: None, + }, + Origin { + name: "Setebos", + id: 719, + mean_radius: None, + }, + Origin { + name: "Stephano", + id: 720, + mean_radius: None, + }, + Origin { + name: "Trinculo", + id: 721, + mean_radius: None, + }, + Origin { + name: "Francisco", + id: 722, + mean_radius: None, + }, + Origin { + name: "Margaret", + id: 723, + mean_radius: None, + }, + Origin { + name: "Ferdinand", + id: 724, + mean_radius: None, + }, + Origin { + name: "Perdita", + id: 725, + mean_radius: None, + }, + Origin { + name: "Mab", + id: 726, + mean_radius: None, + }, + Origin { + name: "Cupid", + id: 727, + mean_radius: None, + }, + Origin { + name: "Triton", + id: 801, + mean_radius: None, + }, + Origin { + name: "Nereid", + id: 802, + mean_radius: None, + }, + Origin { + name: "Naiad", + id: 803, + mean_radius: None, + }, + Origin { + name: "Thalassa", + id: 804, + mean_radius: None, + }, + Origin { + name: "Despina", + id: 805, + mean_radius: None, + }, + Origin { + name: "Galatea", + id: 806, + mean_radius: None, + }, + Origin { + name: "Larissa", + id: 807, + mean_radius: None, + }, + Origin { + name: "Proteus", + id: 808, + mean_radius: None, + }, + Origin { + name: "Halimede", + id: 809, + mean_radius: None, + }, + Origin { + name: "Psamathe", + id: 810, + mean_radius: None, + }, + Origin { + name: "Sao", + id: 811, + mean_radius: None, + }, + Origin { + name: "Laomedeia", + id: 812, + mean_radius: None, + }, + Origin { + name: "Neso", + id: 813, + mean_radius: None, + }, + Origin { + name: "Charon", + id: 901, + mean_radius: None, + }, + Origin { + name: "Nix", + id: 902, + mean_radius: None, + }, + Origin { + name: "Hydra", + id: 903, + mean_radius: None, + }, + Origin { + name: "Kerberos", + id: 904, + mean_radius: None, + }, + Origin { + name: "Styx", + id: 905, + mean_radius: None, + }, // Minor bodies. - ("Gaspra", 9511010), - ("Ida", 2431010), - ("Dactyl", 2431011), - ("Ceres", 2000001), - ("Pallas", 2000002), - ("Vesta", 2000004), - ("Psyche", 2000016), - ("Lutetia", 2000021), - ("Kleopatra", 2000216), - ("Eros", 2000433), - ("Davida", 2000511), - ("Mathilde", 2000253), - ("Steins", 2002867), - ("Braille", 2009969), - ("Wilson-Harrington", 2004015), - ("Toutatis", 2004179), - ("Itokawa", 2025143), - ("Bennu", 2101955), + Origin { + name: "Gaspra", + id: 9511010, + mean_radius: None, + }, + Origin { + name: "Ida", + id: 2431010, + mean_radius: None, + }, + Origin { + name: "Dactyl", + id: 2431011, + mean_radius: None, + }, + Origin { + name: "Ceres", + id: 2000001, + mean_radius: None, + }, + Origin { + name: "Pallas", + id: 2000002, + mean_radius: None, + }, + Origin { + name: "Vesta", + id: 2000004, + mean_radius: None, + }, + Origin { + name: "Psyche", + id: 2000016, + mean_radius: None, + }, + Origin { + name: "Lutetia", + id: 2000021, + mean_radius: None, + }, + Origin { + name: "Kleopatra", + id: 2000216, + mean_radius: None, + }, + Origin { + name: "Eros", + id: 2000433, + mean_radius: None, + }, + Origin { + name: "Davida", + id: 2000511, + mean_radius: None, + }, + Origin { + name: "Mathilde", + id: 2000253, + mean_radius: None, + }, + Origin { + name: "Steins", + id: 2002867, + mean_radius: None, + }, + Origin { + name: "Braille", + id: 2009969, + mean_radius: None, + }, + Origin { + name: "Wilson-Harrington", + id: 2004015, + mean_radius: None, + }, + Origin { + name: "Toutatis", + id: 2004179, + mean_radius: None, + }, + Origin { + name: "Itokawa", + id: 2025143, + mean_radius: None, + }, + Origin { + name: "Bennu", + id: 2101955, + mean_radius: None, + }, ]; fn ident(name: &str) -> Ident { @@ -234,10 +1000,12 @@ fn unpair(vec: &[f64]) -> (Vec, Vec) { pub fn generate_bodies(path: &Path, pck: &Kernel, gm: &Kernel) { let mut code = quote! { use crate::DynOrigin; + use crate::MaybeMeanRadius; use crate::MaybePointMass; use crate::MaybeRotationalElements; use crate::MaybeSpheroid; use crate::MaybeTriaxialEllipsoid; + use crate::MeanRadius; use crate::NaifId; use crate::NutationPrecessionCoefficients; use crate::Origin; @@ -252,13 +1020,19 @@ pub fn generate_bodies(path: &Path, pck: &Kernel, gm: &Kernel) { }; let mut point_mass_match_arms = quote! {}; + let mut mean_radius_match_arms = quote! {}; let mut ellipsoid_match_arms = quote! {}; let mut nutation_precession_match_arms = quote! {}; let mut right_ascension_match_arms = quote! {}; let mut declination_match_arms = quote! {}; let mut prime_meridian_match_arms = quote! {}; - for (name, id) in BODIES { + for Origin { + name, + id, + mean_radius, + } in ORIGINS + { let ident = ident(name); code.extend(quote! { @@ -310,6 +1084,20 @@ pub fn generate_bodies(path: &Path, pck: &Kernel, gm: &Kernel) { continue; } + if let Some(mean_radius) = mean_radius { + code.extend(quote! { + impl MeanRadius for #ident { + fn mean_radius(&self) -> f64 { + #mean_radius + } + } + }); + + mean_radius_match_arms.extend(quote! { + DynOrigin::#ident => Some(#mean_radius), + }) + } + // TriaxialEllipsoid / Spheroid let key = format!("BODY{id}_RADII"); @@ -439,6 +1227,14 @@ pub fn generate_bodies(path: &Path, pck: &Kernel, gm: &Kernel) { } } } + impl MaybeMeanRadius for DynOrigin { + fn maybe_mean_radius(&self) -> Option { + match self { + #mean_radius_match_arms + _ => None, + } + } + } impl MaybeTriaxialEllipsoid for DynOrigin { fn maybe_radii(&self) -> Option { match self {