1use crate::DynOrigin;
7use crate::Elements;
8use crate::MeanRadius;
9use crate::NaifId;
10use crate::Origin;
11use crate::PointMass;
12use crate::Radii;
13use crate::RotationalElement;
14use crate::RotationalElementType;
15use crate::RotationalElements;
16use crate::Spheroid;
17use crate::TriaxialEllipsoid;
18use crate::TryMeanRadius;
19use crate::TryPointMass;
20use crate::TryRotationalElements;
21use crate::TrySpheroid;
22use crate::TryTriaxialEllipsoid;
23use crate::UndefinedOriginPropertyError;
24use lox_core::elements::GravitationalParameter;
25use lox_core::units::Distance;
26use std::fmt::Display;
27use std::fmt::Formatter;
28#[doc = "Sun (NAIF ID: 10)."]
29#[derive(Debug, Copy, Clone, Eq, PartialEq)]
30#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
31pub struct Sun;
32impl Origin for Sun {
33 fn id(&self) -> NaifId {
34 NaifId(10i32)
35 }
36 fn name(&self) -> &'static str {
37 "Sun"
38 }
39}
40impl Display for Sun {
41 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
42 write!(f, "{}", self.name())
43 }
44}
45impl From<Sun> for DynOrigin {
46 fn from(_: Sun) -> Self {
47 DynOrigin::Sun
48 }
49}
50impl PointMass for Sun {
51 fn gravitational_parameter(&self) -> GravitationalParameter {
52 GravitationalParameter::km3_per_s2(132712440041.27942f64)
53 }
54}
55impl TriaxialEllipsoid for Sun {
56 fn radii(&self) -> Radii {
57 (
58 Distance::kilometers(695700f64),
59 Distance::kilometers(695700f64),
60 Distance::kilometers(695700f64),
61 )
62 }
63}
64impl Spheroid for Sun {}
65const RIGHT_ASCENSION_SUN: RotationalElement<0usize> = RotationalElement {
66 typ: RotationalElementType::RightAscension,
67 c0: 4.993910588731375f64,
68 c1: 0f64,
69 c2: 0f64,
70 c: [],
71 theta0: [],
72 theta1: [],
73};
74const DECLINATION_SUN: RotationalElement<0usize> = RotationalElement {
75 typ: RotationalElementType::Declination,
76 c0: 1.1147417932487782f64,
77 c1: 0f64,
78 c2: 0f64,
79 c: [],
80 theta0: [],
81 theta1: [],
82};
83const ROTATION_SUN: RotationalElement<0usize> = RotationalElement {
84 typ: RotationalElementType::Rotation,
85 c0: 1.4691483511587469f64,
86 c1: 0.24756448241988369f64,
87 c2: 0f64,
88 c: [],
89 theta0: [],
90 theta1: [],
91};
92impl RotationalElements for Sun {
93 fn rotational_elements(&self, t: f64) -> Elements {
94 (
95 RIGHT_ASCENSION_SUN.angle(t),
96 DECLINATION_SUN.angle(t),
97 ROTATION_SUN.angle(t),
98 )
99 }
100 fn rotational_element_rates(&self, t: f64) -> Elements {
101 (
102 RIGHT_ASCENSION_SUN.angle_dot(t),
103 DECLINATION_SUN.angle_dot(t),
104 ROTATION_SUN.angle_dot(t),
105 )
106 }
107}
108#[doc = "Mercury (NAIF ID: 199)."]
109#[derive(Debug, Copy, Clone, Eq, PartialEq)]
110#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
111pub struct Mercury;
112impl Origin for Mercury {
113 fn id(&self) -> NaifId {
114 NaifId(199i32)
115 }
116 fn name(&self) -> &'static str {
117 "Mercury"
118 }
119}
120impl Display for Mercury {
121 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
122 write!(f, "{}", self.name())
123 }
124}
125impl From<Mercury> for DynOrigin {
126 fn from(_: Mercury) -> Self {
127 DynOrigin::Mercury
128 }
129}
130impl PointMass for Mercury {
131 fn gravitational_parameter(&self) -> GravitationalParameter {
132 GravitationalParameter::km3_per_s2(22031.868551400003f64)
133 }
134}
135impl MeanRadius for Mercury {
136 fn mean_radius(&self) -> Distance {
137 Distance::kilometers(2439.4f64)
138 }
139}
140impl TriaxialEllipsoid for Mercury {
141 fn radii(&self) -> Radii {
142 (
143 Distance::kilometers(2440.53f64),
144 Distance::kilometers(2440.53f64),
145 Distance::kilometers(2438.26f64),
146 )
147 }
148}
149impl Spheroid for Mercury {}
150const RIGHT_ASCENSION_MERCURY: RotationalElement<5usize> = RotationalElement {
151 typ: RotationalElementType::RightAscension,
152 c0: 4.904554967017021f64,
153 c1: -0.0005724679946541401f64,
154 c2: 0f64,
155 c: [0f64, 0f64, 0f64, 0f64, 0f64],
156 theta0: [
157 3.0506799486005773f64,
158 6.101359897201155f64,
159 2.868854538622146f64,
160 5.919534488968053f64,
161 2.6870291303890443f64,
162 ],
163 theta1: [
164 2608.7878923240937f64,
165 5217.575784648187f64,
166 7826.363676972282f64,
167 10435.151569296375f64,
168 13043.939461620466f64,
169 ],
170};
171const DECLINATION_MERCURY: RotationalElement<5usize> = RotationalElement {
172 typ: RotationalElementType::Declination,
173 c0: 1.0719026867585775f64,
174 c1: -0.00008552113334772214f64,
175 c2: 0f64,
176 c: [0f64, 0f64, 0f64, 0f64, 0f64],
177 theta0: [
178 3.0506799486005773f64,
179 6.101359897201155f64,
180 2.868854538622146f64,
181 5.919534488968053f64,
182 2.6870291303890443f64,
183 ],
184 theta1: [
185 2608.7878923240937f64,
186 5217.575784648187f64,
187 7826.363676972282f64,
188 10435.151569296375f64,
189 13043.939461620466f64,
190 ],
191};
192const ROTATION_MERCURY: RotationalElement<5usize> = RotationalElement {
193 typ: RotationalElementType::Rotation,
194 c0: 5.752584270622286f64,
195 c1: 0.10713722462923113f64,
196 c2: 0f64,
197 c: [
198 0.0001862714861495712f64,
199 -0.000019601618296223117f64,
200 -0.00000192684349420174f64,
201 -0.00000044313909708136026f64,
202 -0.00000009965830028887623f64,
203 ],
204 theta0: [
205 3.0506799486005773f64,
206 6.101359897201155f64,
207 2.868854538622146f64,
208 5.919534488968053f64,
209 2.6870291303890443f64,
210 ],
211 theta1: [
212 2608.7878923240937f64,
213 5217.575784648187f64,
214 7826.363676972282f64,
215 10435.151569296375f64,
216 13043.939461620466f64,
217 ],
218};
219impl RotationalElements for Mercury {
220 fn rotational_elements(&self, t: f64) -> Elements {
221 (
222 RIGHT_ASCENSION_MERCURY.angle(t),
223 DECLINATION_MERCURY.angle(t),
224 ROTATION_MERCURY.angle(t),
225 )
226 }
227 fn rotational_element_rates(&self, t: f64) -> Elements {
228 (
229 RIGHT_ASCENSION_MERCURY.angle_dot(t),
230 DECLINATION_MERCURY.angle_dot(t),
231 ROTATION_MERCURY.angle_dot(t),
232 )
233 }
234}
235#[doc = "Venus (NAIF ID: 299)."]
236#[derive(Debug, Copy, Clone, Eq, PartialEq)]
237#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
238pub struct Venus;
239impl Origin for Venus {
240 fn id(&self) -> NaifId {
241 NaifId(299i32)
242 }
243 fn name(&self) -> &'static str {
244 "Venus"
245 }
246}
247impl Display for Venus {
248 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
249 write!(f, "{}", self.name())
250 }
251}
252impl From<Venus> for DynOrigin {
253 fn from(_: Venus) -> Self {
254 DynOrigin::Venus
255 }
256}
257impl PointMass for Venus {
258 fn gravitational_parameter(&self) -> GravitationalParameter {
259 GravitationalParameter::km3_per_s2(324858.592f64)
260 }
261}
262impl MeanRadius for Venus {
263 fn mean_radius(&self) -> Distance {
264 Distance::kilometers(6051.8f64)
265 }
266}
267impl TriaxialEllipsoid for Venus {
268 fn radii(&self) -> Radii {
269 (
270 Distance::kilometers(6051.8f64),
271 Distance::kilometers(6051.8f64),
272 Distance::kilometers(6051.8f64),
273 )
274 }
275}
276impl Spheroid for Venus {}
277const RIGHT_ASCENSION_VENUS: RotationalElement<0usize> = RotationalElement {
278 typ: RotationalElementType::RightAscension,
279 c0: 4.760560067739733f64,
280 c1: 0f64,
281 c2: 0f64,
282 c: [],
283 theta0: [],
284 theta1: [],
285};
286const DECLINATION_VENUS: RotationalElement<0usize> = RotationalElement {
287 typ: RotationalElementType::Declination,
288 c0: 1.1721631256393916f64,
289 c1: 0f64,
290 c2: 0f64,
291 c: [],
292 theta0: [],
293 theta1: [],
294};
295const ROTATION_VENUS: RotationalElement<0usize> = RotationalElement {
296 typ: RotationalElementType::Rotation,
297 c0: 2.7960174616949156f64,
298 c1: -0.025854762996317376f64,
299 c2: 0f64,
300 c: [],
301 theta0: [],
302 theta1: [],
303};
304impl RotationalElements for Venus {
305 fn rotational_elements(&self, t: f64) -> Elements {
306 (
307 RIGHT_ASCENSION_VENUS.angle(t),
308 DECLINATION_VENUS.angle(t),
309 ROTATION_VENUS.angle(t),
310 )
311 }
312 fn rotational_element_rates(&self, t: f64) -> Elements {
313 (
314 RIGHT_ASCENSION_VENUS.angle_dot(t),
315 DECLINATION_VENUS.angle_dot(t),
316 ROTATION_VENUS.angle_dot(t),
317 )
318 }
319}
320#[doc = "Earth (NAIF ID: 399)."]
321#[derive(Debug, Copy, Clone, Eq, PartialEq)]
322#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
323pub struct Earth;
324impl Origin for Earth {
325 fn id(&self) -> NaifId {
326 NaifId(399i32)
327 }
328 fn name(&self) -> &'static str {
329 "Earth"
330 }
331}
332impl Display for Earth {
333 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
334 write!(f, "{}", self.name())
335 }
336}
337impl From<Earth> for DynOrigin {
338 fn from(_: Earth) -> Self {
339 DynOrigin::Earth
340 }
341}
342impl PointMass for Earth {
343 fn gravitational_parameter(&self) -> GravitationalParameter {
344 GravitationalParameter::km3_per_s2(398600.43550702266f64)
345 }
346}
347impl MeanRadius for Earth {
348 fn mean_radius(&self) -> Distance {
349 Distance::kilometers(6371.0084f64)
350 }
351}
352impl TriaxialEllipsoid for Earth {
353 fn radii(&self) -> Radii {
354 (
355 Distance::kilometers(6378.1366f64),
356 Distance::kilometers(6378.1366f64),
357 Distance::kilometers(6356.7519f64),
358 )
359 }
360}
361impl Spheroid for Earth {}
362const RIGHT_ASCENSION_EARTH: RotationalElement<0usize> = RotationalElement {
363 typ: RotationalElementType::RightAscension,
364 c0: 0f64,
365 c1: -0.011187560505283653f64,
366 c2: 0f64,
367 c: [],
368 theta0: [],
369 theta1: [],
370};
371const DECLINATION_EARTH: RotationalElement<0usize> = RotationalElement {
372 typ: RotationalElementType::Declination,
373 c0: 1.5707963267948966f64,
374 c1: -0.009721483933608416f64,
375 c2: 0f64,
376 c: [],
377 theta0: [],
378 theta1: [],
379};
380const ROTATION_EARTH: RotationalElement<0usize> = RotationalElement {
381 typ: RotationalElementType::Rotation,
382 c0: 3.3186912127896577f64,
383 c1: 6.3003876824396166f64,
384 c2: 0f64,
385 c: [],
386 theta0: [],
387 theta1: [],
388};
389impl RotationalElements for Earth {
390 fn rotational_elements(&self, t: f64) -> Elements {
391 (
392 RIGHT_ASCENSION_EARTH.angle(t),
393 DECLINATION_EARTH.angle(t),
394 ROTATION_EARTH.angle(t),
395 )
396 }
397 fn rotational_element_rates(&self, t: f64) -> Elements {
398 (
399 RIGHT_ASCENSION_EARTH.angle_dot(t),
400 DECLINATION_EARTH.angle_dot(t),
401 ROTATION_EARTH.angle_dot(t),
402 )
403 }
404}
405#[doc = "Mars (NAIF ID: 499)."]
406#[derive(Debug, Copy, Clone, Eq, PartialEq)]
407#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
408pub struct Mars;
409impl Origin for Mars {
410 fn id(&self) -> NaifId {
411 NaifId(499i32)
412 }
413 fn name(&self) -> &'static str {
414 "Mars"
415 }
416}
417impl Display for Mars {
418 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
419 write!(f, "{}", self.name())
420 }
421}
422impl From<Mars> for DynOrigin {
423 fn from(_: Mars) -> Self {
424 DynOrigin::Mars
425 }
426}
427impl PointMass for Mars {
428 fn gravitational_parameter(&self) -> GravitationalParameter {
429 GravitationalParameter::km3_per_s2(42828.37362069909f64)
430 }
431}
432impl MeanRadius for Mars {
433 fn mean_radius(&self) -> Distance {
434 Distance::kilometers(3389.5f64)
435 }
436}
437impl TriaxialEllipsoid for Mars {
438 fn radii(&self) -> Radii {
439 (
440 Distance::kilometers(3396.19f64),
441 Distance::kilometers(3396.19f64),
442 Distance::kilometers(3376.2f64),
443 )
444 }
445}
446impl Spheroid for Mars {}
447const RIGHT_ASCENSION_MARS: RotationalElement<15usize> = RotationalElement {
448 typ: RotationalElementType::RightAscension,
449 c0: 5.5373921900749785f64,
450 c1: -0.001907216743164288f64,
451 c2: 0f64,
452 c: [
453 0f64,
454 0f64,
455 0f64,
456 0f64,
457 0f64,
458 0f64,
459 0f64,
460 0f64,
461 0f64,
462 0f64,
463 0.000001186823891356144f64,
464 0.000004153883619746505f64,
465 0.0000009075712110370513f64,
466 0.00000015707963267948966f64,
467 0.007313924403529878f64,
468 ],
469 theta0: [
470 3.328804809897935f64,
471 0.37470342287773584f64,
472 5.809517398292802f64,
473 6.892873571600945f64,
474 3.3097152567180146f64,
475 2.120032883264378f64,
476 4.032588225058434f64,
477 4.387288948439982f64,
478 3.8045796985836846f64,
479 3.424288764152381f64,
480 3.4730520762801462f64,
481 3.9495523217086292f64,
482 4.357448194643978f64,
483 4.645778664015252f64,
484 1.3857704297725961f64,
485 ],
486 theta1: [
487 277.80594525842264f64,
488 555.6129894920322f64,
489 334.05422022489097f64,
490 668.125936040531f64,
491 719340.2120445863f64,
492 11.523153020184504f64,
493 11.536473384554899f64,
494 23.047098122619843f64,
495 668.1113614443373f64,
496 334.05316148477937f64,
497 334.0469780000094f64,
498 668.1268926511307f64,
499 1002.1807129125305f64,
500 1336.235189496269f64,
501 0.008801023466045386f64,
502 ],
503};
504const DECLINATION_MARS: RotationalElement<20usize> = RotationalElement {
505 typ: RotationalElementType::Declination,
506 c0: 0.9500266243444937f64,
507 c1: -0.0010170216810942417f64,
508 c2: 0f64,
509 c: [
510 0f64,
511 0f64,
512 0f64,
513 0f64,
514 0f64,
515 0f64,
516 0f64,
517 0f64,
518 0f64,
519 0f64,
520 0f64,
521 0f64,
522 0f64,
523 0f64,
524 0f64,
525 0.000000890117918517108f64,
526 0.000002460914245312005f64,
527 0.0000005410520681182422f64,
528 0.00000008726646259971648f64,
529 0.02777297060138025f64,
530 ],
531 theta0: [
532 3.328804809897935f64,
533 0.37470342287773584f64,
534 5.809517398292802f64,
535 6.892873571600945f64,
536 3.3097152567180146f64,
537 2.120032883264378f64,
538 4.032588225058434f64,
539 4.387288948439982f64,
540 3.8045796985836846f64,
541 3.424288764152381f64,
542 3.4730520762801462f64,
543 3.9495523217086292f64,
544 4.357448194643978f64,
545 4.645778664015252f64,
546 1.3857704297725961f64,
547 2.136869016190709f64,
548 0.751510868094019f64,
549 1.0064158213753553f64,
550 1.3871248750853138f64,
551 2.9029314796567682f64,
552 ],
553 theta1: [
554 277.80594525842264f64,
555 555.6129894920322f64,
556 334.05422022489097f64,
557 668.125936040531f64,
558 719340.2120445863f64,
559 11.523153020184504f64,
560 11.536473384554899f64,
561 23.047098122619843f64,
562 668.1113614443373f64,
563 334.05316148477937f64,
564 334.0469780000094f64,
565 668.1268926511307f64,
566 1002.1807129125305f64,
567 1336.235189496269f64,
568 0.008801023466045386f64,
569 334.054984682245f64,
570 668.1273150051017f64,
571 1002.1811764929237f64,
572 1336.2354112473317f64,
573 0.008801023466045386f64,
574 ],
575};
576const ROTATION_MARS: RotationalElement<26usize> = RotationalElement {
577 typ: RotationalElementType::Rotation,
578 c0: 3.0726497570349416f64,
579 c1: 6.12422041248567f64,
580 c2: 0f64,
581 c: [
582 0f64,
583 0f64,
584 0f64,
585 0f64,
586 0f64,
587 0f64,
588 0f64,
589 0f64,
590 0f64,
591 0f64,
592 0f64,
593 0f64,
594 0f64,
595 0f64,
596 0f64,
597 0f64,
598 0f64,
599 0f64,
600 0f64,
601 0f64,
602 0.000002530727415391778f64,
603 0.0000027401669256310974f64,
604 0.0000006981317007977319f64,
605 0.000000017453292519943295f64,
606 0.000000017453292519943295f64,
607 0.010202182516192693f64,
608 ],
609 theta0: [
610 3.328804809897935f64,
611 0.37470342287773584f64,
612 5.809517398292802f64,
613 6.892873571600945f64,
614 3.3097152567180146f64,
615 2.120032883264378f64,
616 4.032588225058434f64,
617 4.387288948439982f64,
618 3.8045796985836846f64,
619 3.424288764152381f64,
620 3.4730520762801462f64,
621 3.9495523217086292f64,
622 4.357448194643978f64,
623 4.645778664015252f64,
624 1.3857704297725961f64,
625 2.136869016190709f64,
626 0.751510868094019f64,
627 1.0064158213753553f64,
628 1.3871248750853138f64,
629 2.9029314796567682f64,
630 2.252727410236719f64,
631 0.6344650043848296f64,
632 0.9890544553471146f64,
633 1.1757236496733376f64,
634 1.8289772979888115f64,
635 1.664898441223219f64,
636 ],
637 theta1: [
638 277.80594525842264f64,
639 555.6129894920322f64,
640 334.05422022489097f64,
641 668.125936040531f64,
642 719340.2120445863f64,
643 11.523153020184504f64,
644 11.536473384554899f64,
645 23.047098122619843f64,
646 668.1113614443373f64,
647 334.05316148477937f64,
648 334.0469780000094f64,
649 668.1268926511307f64,
650 1002.1807129125305f64,
651 1336.235189496269f64,
652 0.008801023466045386f64,
653 334.054984682245f64,
654 668.1273150051017f64,
655 1002.1811764929237f64,
656 1336.2354112473317f64,
657 0.008801023466045386f64,
658 334.05659172556966f64,
659 668.130317528175f64,
660 1002.1842799588599f64,
661 1336.2285297823557f64,
662 1670.2877519268022f64,
663 0.008801023466045386f64,
664 ],
665};
666impl RotationalElements for Mars {
667 fn rotational_elements(&self, t: f64) -> Elements {
668 (
669 RIGHT_ASCENSION_MARS.angle(t),
670 DECLINATION_MARS.angle(t),
671 ROTATION_MARS.angle(t),
672 )
673 }
674 fn rotational_element_rates(&self, t: f64) -> Elements {
675 (
676 RIGHT_ASCENSION_MARS.angle_dot(t),
677 DECLINATION_MARS.angle_dot(t),
678 ROTATION_MARS.angle_dot(t),
679 )
680 }
681}
682#[doc = "Jupiter (NAIF ID: 599)."]
683#[derive(Debug, Copy, Clone, Eq, PartialEq)]
684#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
685pub struct Jupiter;
686impl Origin for Jupiter {
687 fn id(&self) -> NaifId {
688 NaifId(599i32)
689 }
690 fn name(&self) -> &'static str {
691 "Jupiter"
692 }
693}
694impl Display for Jupiter {
695 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
696 write!(f, "{}", self.name())
697 }
698}
699impl From<Jupiter> for DynOrigin {
700 fn from(_: Jupiter) -> Self {
701 DynOrigin::Jupiter
702 }
703}
704impl PointMass for Jupiter {
705 fn gravitational_parameter(&self) -> GravitationalParameter {
706 GravitationalParameter::km3_per_s2(126686531.9003704f64)
707 }
708}
709impl MeanRadius for Jupiter {
710 fn mean_radius(&self) -> Distance {
711 Distance::kilometers(69911f64)
712 }
713}
714impl TriaxialEllipsoid for Jupiter {
715 fn radii(&self) -> Radii {
716 (
717 Distance::kilometers(71492f64),
718 Distance::kilometers(71492f64),
719 Distance::kilometers(66854f64),
720 )
721 }
722}
723impl Spheroid for Jupiter {}
724const RIGHT_ASCENSION_JUPITER: RotationalElement<15usize> = RotationalElement {
725 typ: RotationalElementType::RightAscension,
726 c0: 4.6784701644349695f64,
727 c1: -0.00011342894808711148f64,
728 c2: 0f64,
729 c: [
730 0f64,
731 0f64,
732 0f64,
733 0f64,
734 0f64,
735 0f64,
736 0f64,
737 0f64,
738 0f64,
739 0f64,
740 0.0000020420352248333656f64,
741 0.000016371188383706813f64,
742 0.000024993114888558796f64,
743 0.0000005235987755982989f64,
744 0.00003752457891787809f64,
745 ],
746 theta0: [
747 1.2796754075622423f64,
748 0.42970006184100396f64,
749 4.9549897464119015f64,
750 6.2098814785958245f64,
751 2.092649773141201f64,
752 4.010766621082969f64,
753 6.147922290150026f64,
754 1.9783307071355725f64,
755 2.5593508151244846f64,
756 0.8594001236820079f64,
757 1.734171606432425f64,
758 3.0699533280603655f64,
759 5.241627996900319f64,
760 1.9898901100379935f64,
761 0.864134346731335f64,
762 ],
763 theta1: [
764 1596.503281347521f64,
765 787.7927551311844f64,
766 84.66068602648895f64,
767 20.792107379008446f64,
768 4.574507969477138f64,
769 1.1222467090323538f64,
770 41.58421475801689f64,
771 105.9414855960558f64,
772 3193.006562695042f64,
773 1575.5855102623689f64,
774 84.65553032387855f64,
775 20.80363527871787f64,
776 4.582318317879813f64,
777 105.94580703128374f64,
778 1.1222467090323538f64,
779 ],
780};
781const DECLINATION_JUPITER: RotationalElement<15usize> = RotationalElement {
782 typ: RotationalElementType::Declination,
783 c0: 1.1256553894213766f64,
784 c1: 0.00004211479485062318f64,
785 c2: 0f64,
786 c: [
787 0f64,
788 0f64,
789 0f64,
790 0f64,
791 0f64,
792 0f64,
793 0f64,
794 0f64,
795 0f64,
796 0f64,
797 0.0000008726646259971648f64,
798 0.000007051130178057092f64,
799 0.000010768681484805013f64,
800 -0.00000022689280275926283f64,
801 0.00001616174887346749f64,
802 ],
803 theta0: [
804 1.2796754075622423f64,
805 0.42970006184100396f64,
806 4.9549897464119015f64,
807 6.2098814785958245f64,
808 2.092649773141201f64,
809 4.010766621082969f64,
810 6.147922290150026f64,
811 1.9783307071355725f64,
812 2.5593508151244846f64,
813 0.8594001236820079f64,
814 1.734171606432425f64,
815 3.0699533280603655f64,
816 5.241627996900319f64,
817 1.9898901100379935f64,
818 0.864134346731335f64,
819 ],
820 theta1: [
821 1596.503281347521f64,
822 787.7927551311844f64,
823 84.66068602648895f64,
824 20.792107379008446f64,
825 4.574507969477138f64,
826 1.1222467090323538f64,
827 41.58421475801689f64,
828 105.9414855960558f64,
829 3193.006562695042f64,
830 1575.5855102623689f64,
831 84.65553032387855f64,
832 20.80363527871787f64,
833 4.582318317879813f64,
834 105.94580703128374f64,
835 1.1222467090323538f64,
836 ],
837};
838const ROTATION_JUPITER: RotationalElement<15usize> = RotationalElement {
839 typ: RotationalElementType::Rotation,
840 c0: 4.973315703557842f64,
841 c1: 15.193719457141356f64,
842 c2: 0f64,
843 c: [
844 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64,
845 ],
846 theta0: [
847 1.2796754075622423f64,
848 0.42970006184100396f64,
849 4.9549897464119015f64,
850 6.2098814785958245f64,
851 2.092649773141201f64,
852 4.010766621082969f64,
853 6.147922290150026f64,
854 1.9783307071355725f64,
855 2.5593508151244846f64,
856 0.8594001236820079f64,
857 1.734171606432425f64,
858 3.0699533280603655f64,
859 5.241627996900319f64,
860 1.9898901100379935f64,
861 0.864134346731335f64,
862 ],
863 theta1: [
864 1596.503281347521f64,
865 787.7927551311844f64,
866 84.66068602648895f64,
867 20.792107379008446f64,
868 4.574507969477138f64,
869 1.1222467090323538f64,
870 41.58421475801689f64,
871 105.9414855960558f64,
872 3193.006562695042f64,
873 1575.5855102623689f64,
874 84.65553032387855f64,
875 20.80363527871787f64,
876 4.582318317879813f64,
877 105.94580703128374f64,
878 1.1222467090323538f64,
879 ],
880};
881impl RotationalElements for Jupiter {
882 fn rotational_elements(&self, t: f64) -> Elements {
883 (
884 RIGHT_ASCENSION_JUPITER.angle(t),
885 DECLINATION_JUPITER.angle(t),
886 ROTATION_JUPITER.angle(t),
887 )
888 }
889 fn rotational_element_rates(&self, t: f64) -> Elements {
890 (
891 RIGHT_ASCENSION_JUPITER.angle_dot(t),
892 DECLINATION_JUPITER.angle_dot(t),
893 ROTATION_JUPITER.angle_dot(t),
894 )
895 }
896}
897#[doc = "Saturn (NAIF ID: 699)."]
898#[derive(Debug, Copy, Clone, Eq, PartialEq)]
899#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
900pub struct Saturn;
901impl Origin for Saturn {
902 fn id(&self) -> NaifId {
903 NaifId(699i32)
904 }
905 fn name(&self) -> &'static str {
906 "Saturn"
907 }
908}
909impl Display for Saturn {
910 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
911 write!(f, "{}", self.name())
912 }
913}
914impl From<Saturn> for DynOrigin {
915 fn from(_: Saturn) -> Self {
916 DynOrigin::Saturn
917 }
918}
919impl PointMass for Saturn {
920 fn gravitational_parameter(&self) -> GravitationalParameter {
921 GravitationalParameter::km3_per_s2(37931206.23436167f64)
922 }
923}
924impl MeanRadius for Saturn {
925 fn mean_radius(&self) -> Distance {
926 Distance::kilometers(58232f64)
927 }
928}
929impl TriaxialEllipsoid for Saturn {
930 fn radii(&self) -> Radii {
931 (
932 Distance::kilometers(60268f64),
933 Distance::kilometers(60268f64),
934 Distance::kilometers(54364f64),
935 )
936 }
937}
938impl Spheroid for Saturn {}
939const RIGHT_ASCENSION_SATURN: RotationalElement<0usize> = RotationalElement {
940 typ: RotationalElementType::RightAscension,
941 c0: 0.7084116900919784f64,
942 c1: -0.0006283185307179586f64,
943 c2: 0f64,
944 c: [],
945 theta0: [],
946 theta1: [],
947};
948const DECLINATION_SATURN: RotationalElement<0usize> = RotationalElement {
949 typ: RotationalElementType::Declination,
950 c0: 1.457995697238503f64,
951 c1: -0.00006981317007977319f64,
952 c2: 0f64,
953 c: [],
954 theta0: [],
955 theta1: [],
956};
957const ROTATION_SATURN: RotationalElement<0usize> = RotationalElement {
958 typ: RotationalElementType::Rotation,
959 c0: 0.6789330790257941f64,
960 c1: 14.151023151973554f64,
961 c2: 0f64,
962 c: [],
963 theta0: [],
964 theta1: [],
965};
966impl RotationalElements for Saturn {
967 fn rotational_elements(&self, t: f64) -> Elements {
968 (
969 RIGHT_ASCENSION_SATURN.angle(t),
970 DECLINATION_SATURN.angle(t),
971 ROTATION_SATURN.angle(t),
972 )
973 }
974 fn rotational_element_rates(&self, t: f64) -> Elements {
975 (
976 RIGHT_ASCENSION_SATURN.angle_dot(t),
977 DECLINATION_SATURN.angle_dot(t),
978 ROTATION_SATURN.angle_dot(t),
979 )
980 }
981}
982#[doc = "Uranus (NAIF ID: 799)."]
983#[derive(Debug, Copy, Clone, Eq, PartialEq)]
984#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
985pub struct Uranus;
986impl Origin for Uranus {
987 fn id(&self) -> NaifId {
988 NaifId(799i32)
989 }
990 fn name(&self) -> &'static str {
991 "Uranus"
992 }
993}
994impl Display for Uranus {
995 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
996 write!(f, "{}", self.name())
997 }
998}
999impl From<Uranus> for DynOrigin {
1000 fn from(_: Uranus) -> Self {
1001 DynOrigin::Uranus
1002 }
1003}
1004impl PointMass for Uranus {
1005 fn gravitational_parameter(&self) -> GravitationalParameter {
1006 GravitationalParameter::km3_per_s2(5793951.256527211f64)
1007 }
1008}
1009impl MeanRadius for Uranus {
1010 fn mean_radius(&self) -> Distance {
1011 Distance::kilometers(25362f64)
1012 }
1013}
1014impl TriaxialEllipsoid for Uranus {
1015 fn radii(&self) -> Radii {
1016 (
1017 Distance::kilometers(25559f64),
1018 Distance::kilometers(25559f64),
1019 Distance::kilometers(24973f64),
1020 )
1021 }
1022}
1023impl Spheroid for Uranus {}
1024const RIGHT_ASCENSION_URANUS: RotationalElement<0usize> = RotationalElement {
1025 typ: RotationalElementType::RightAscension,
1026 c0: 4.4909241515991285f64,
1027 c1: 0f64,
1028 c2: 0f64,
1029 c: [],
1030 theta0: [],
1031 theta1: [],
1032};
1033const DECLINATION_URANUS: RotationalElement<0usize> = RotationalElement {
1034 typ: RotationalElementType::Declination,
1035 c0: -0.2648537139901395f64,
1036 c1: 0f64,
1037 c2: 0f64,
1038 c: [],
1039 theta0: [],
1040 theta1: [],
1041};
1042const ROTATION_URANUS: RotationalElement<0usize> = RotationalElement {
1043 typ: RotationalElementType::Rotation,
1044 c0: 3.557155548489643f64,
1045 c1: -8.746893698960328f64,
1046 c2: 0f64,
1047 c: [],
1048 theta0: [],
1049 theta1: [],
1050};
1051impl RotationalElements for Uranus {
1052 fn rotational_elements(&self, t: f64) -> Elements {
1053 (
1054 RIGHT_ASCENSION_URANUS.angle(t),
1055 DECLINATION_URANUS.angle(t),
1056 ROTATION_URANUS.angle(t),
1057 )
1058 }
1059 fn rotational_element_rates(&self, t: f64) -> Elements {
1060 (
1061 RIGHT_ASCENSION_URANUS.angle_dot(t),
1062 DECLINATION_URANUS.angle_dot(t),
1063 ROTATION_URANUS.angle_dot(t),
1064 )
1065 }
1066}
1067#[doc = "Neptune (NAIF ID: 899)."]
1068#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1069#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1070pub struct Neptune;
1071impl Origin for Neptune {
1072 fn id(&self) -> NaifId {
1073 NaifId(899i32)
1074 }
1075 fn name(&self) -> &'static str {
1076 "Neptune"
1077 }
1078}
1079impl Display for Neptune {
1080 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1081 write!(f, "{}", self.name())
1082 }
1083}
1084impl From<Neptune> for DynOrigin {
1085 fn from(_: Neptune) -> Self {
1086 DynOrigin::Neptune
1087 }
1088}
1089impl PointMass for Neptune {
1090 fn gravitational_parameter(&self) -> GravitationalParameter {
1091 GravitationalParameter::km3_per_s2(6835103.145462294f64)
1092 }
1093}
1094impl MeanRadius for Neptune {
1095 fn mean_radius(&self) -> Distance {
1096 Distance::kilometers(24622f64)
1097 }
1098}
1099impl TriaxialEllipsoid for Neptune {
1100 fn radii(&self) -> Radii {
1101 (
1102 Distance::kilometers(24764f64),
1103 Distance::kilometers(24764f64),
1104 Distance::kilometers(24341f64),
1105 )
1106 }
1107}
1108impl Spheroid for Neptune {}
1109const RIGHT_ASCENSION_NEPTUNE: RotationalElement<8usize> = RotationalElement {
1110 typ: RotationalElementType::RightAscension,
1111 c0: 5.224817648770225f64,
1112 c1: 0f64,
1113 c2: 0f64,
1114 c: [
1115 0.012217304763960306f64,
1116 0f64,
1117 0f64,
1118 0f64,
1119 0f64,
1120 0f64,
1121 0f64,
1122 0f64,
1123 ],
1124 theta0: [
1125 6.245660728261709f64,
1126 5.653470513060032f64,
1127 3.848625533572696f64,
1128 6.183177941040311f64,
1129 1.3144074596769295f64,
1130 0.6171484235051949f64,
1131 2.4890140462691135f64,
1132 3.104068074671915f64,
1133 ],
1134 theta1: [
1135 0.9130864514733535f64,
1136 1092.6913034790819f64,
1137 961.0515899766616f64,
1138 812.7038395448996f64,
1139 455.6949957202075f64,
1140 250.02539666519567f64,
1141 49.29857005183183f64,
1142 0.9130864514733535f64,
1143 ],
1144};
1145const DECLINATION_NEPTUNE: RotationalElement<8usize> = RotationalElement {
1146 typ: RotationalElementType::Declination,
1147 c0: 0.7585200929167356f64,
1148 c1: 0f64,
1149 c2: 0f64,
1150 c: [
1151 -0.00890117918517108f64,
1152 0f64,
1153 0f64,
1154 0f64,
1155 0f64,
1156 0f64,
1157 0f64,
1158 0f64,
1159 ],
1160 theta0: [
1161 6.245660728261709f64,
1162 5.653470513060032f64,
1163 3.848625533572696f64,
1164 6.183177941040311f64,
1165 1.3144074596769295f64,
1166 0.6171484235051949f64,
1167 2.4890140462691135f64,
1168 3.104068074671915f64,
1169 ],
1170 theta1: [
1171 0.9130864514733535f64,
1172 1092.6913034790819f64,
1173 961.0515899766616f64,
1174 812.7038395448996f64,
1175 455.6949957202075f64,
1176 250.02539666519567f64,
1177 49.29857005183183f64,
1178 0.9130864514733535f64,
1179 ],
1180};
1181const ROTATION_NEPTUNE: RotationalElement<8usize> = RotationalElement {
1182 typ: RotationalElementType::Rotation,
1183 c0: 4.362939157550385f64,
1184 c1: 9.444670799468602f64,
1185 c2: 0f64,
1186 c: [
1187 -0.008377580409572781f64,
1188 0f64,
1189 0f64,
1190 0f64,
1191 0f64,
1192 0f64,
1193 0f64,
1194 0f64,
1195 ],
1196 theta0: [
1197 6.245660728261709f64,
1198 5.653470513060032f64,
1199 3.848625533572696f64,
1200 6.183177941040311f64,
1201 1.3144074596769295f64,
1202 0.6171484235051949f64,
1203 2.4890140462691135f64,
1204 3.104068074671915f64,
1205 ],
1206 theta1: [
1207 0.9130864514733535f64,
1208 1092.6913034790819f64,
1209 961.0515899766616f64,
1210 812.7038395448996f64,
1211 455.6949957202075f64,
1212 250.02539666519567f64,
1213 49.29857005183183f64,
1214 0.9130864514733535f64,
1215 ],
1216};
1217impl RotationalElements for Neptune {
1218 fn rotational_elements(&self, t: f64) -> Elements {
1219 (
1220 RIGHT_ASCENSION_NEPTUNE.angle(t),
1221 DECLINATION_NEPTUNE.angle(t),
1222 ROTATION_NEPTUNE.angle(t),
1223 )
1224 }
1225 fn rotational_element_rates(&self, t: f64) -> Elements {
1226 (
1227 RIGHT_ASCENSION_NEPTUNE.angle_dot(t),
1228 DECLINATION_NEPTUNE.angle_dot(t),
1229 ROTATION_NEPTUNE.angle_dot(t),
1230 )
1231 }
1232}
1233#[doc = "Pluto (NAIF ID: 999)."]
1234#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1235#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1236pub struct Pluto;
1237impl Origin for Pluto {
1238 fn id(&self) -> NaifId {
1239 NaifId(999i32)
1240 }
1241 fn name(&self) -> &'static str {
1242 "Pluto"
1243 }
1244}
1245impl Display for Pluto {
1246 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1247 write!(f, "{}", self.name())
1248 }
1249}
1250impl From<Pluto> for DynOrigin {
1251 fn from(_: Pluto) -> Self {
1252 DynOrigin::Pluto
1253 }
1254}
1255impl PointMass for Pluto {
1256 fn gravitational_parameter(&self) -> GravitationalParameter {
1257 GravitationalParameter::km3_per_s2(869.6138177608748f64)
1258 }
1259}
1260impl MeanRadius for Pluto {
1261 fn mean_radius(&self) -> Distance {
1262 Distance::kilometers(1188.3f64)
1263 }
1264}
1265impl TriaxialEllipsoid for Pluto {
1266 fn radii(&self) -> Radii {
1267 (
1268 Distance::kilometers(1188.3f64),
1269 Distance::kilometers(1188.3f64),
1270 Distance::kilometers(1188.3f64),
1271 )
1272 }
1273}
1274impl Spheroid for Pluto {}
1275const RIGHT_ASCENSION_PLUTO: RotationalElement<0usize> = RotationalElement {
1276 typ: RotationalElementType::RightAscension,
1277 c0: 2.3211657321048187f64,
1278 c1: 0f64,
1279 c2: 0f64,
1280 c: [],
1281 theta0: [],
1282 theta1: [],
1283};
1284const DECLINATION_PLUTO: RotationalElement<0usize> = RotationalElement {
1285 typ: RotationalElementType::Declination,
1286 c0: -0.10756464180041053f64,
1287 c1: 0f64,
1288 c2: 0f64,
1289 c: [],
1290 theta0: [],
1291 theta1: [],
1292};
1293const ROTATION_PLUTO: RotationalElement<0usize> = RotationalElement {
1294 typ: RotationalElementType::Rotation,
1295 c0: 5.283024379324235f64,
1296 c1: 0.9837115923543857f64,
1297 c2: 0f64,
1298 c: [],
1299 theta0: [],
1300 theta1: [],
1301};
1302impl RotationalElements for Pluto {
1303 fn rotational_elements(&self, t: f64) -> Elements {
1304 (
1305 RIGHT_ASCENSION_PLUTO.angle(t),
1306 DECLINATION_PLUTO.angle(t),
1307 ROTATION_PLUTO.angle(t),
1308 )
1309 }
1310 fn rotational_element_rates(&self, t: f64) -> Elements {
1311 (
1312 RIGHT_ASCENSION_PLUTO.angle_dot(t),
1313 DECLINATION_PLUTO.angle_dot(t),
1314 ROTATION_PLUTO.angle_dot(t),
1315 )
1316 }
1317}
1318#[doc = "Solar System Barycenter (NAIF ID: 0)."]
1319#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1320#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1321pub struct SolarSystemBarycenter;
1322impl Origin for SolarSystemBarycenter {
1323 fn id(&self) -> NaifId {
1324 NaifId(0i32)
1325 }
1326 fn name(&self) -> &'static str {
1327 "Solar System Barycenter"
1328 }
1329}
1330impl Display for SolarSystemBarycenter {
1331 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1332 write!(f, "{}", self.name())
1333 }
1334}
1335impl From<SolarSystemBarycenter> for DynOrigin {
1336 fn from(_: SolarSystemBarycenter) -> Self {
1337 DynOrigin::SolarSystemBarycenter
1338 }
1339}
1340impl PointMass for SolarSystemBarycenter {
1341 fn gravitational_parameter(&self) -> GravitationalParameter {
1342 GravitationalParameter::km3_per_s2(132712440041.27942f64)
1343 }
1344}
1345#[doc = "Mercury Barycenter (NAIF ID: 1)."]
1346#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1347#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1348pub struct MercuryBarycenter;
1349impl Origin for MercuryBarycenter {
1350 fn id(&self) -> NaifId {
1351 NaifId(1i32)
1352 }
1353 fn name(&self) -> &'static str {
1354 "Mercury Barycenter"
1355 }
1356}
1357impl Display for MercuryBarycenter {
1358 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1359 write!(f, "{}", self.name())
1360 }
1361}
1362impl From<MercuryBarycenter> for DynOrigin {
1363 fn from(_: MercuryBarycenter) -> Self {
1364 DynOrigin::MercuryBarycenter
1365 }
1366}
1367impl PointMass for MercuryBarycenter {
1368 fn gravitational_parameter(&self) -> GravitationalParameter {
1369 GravitationalParameter::km3_per_s2(22031.868551400003f64)
1370 }
1371}
1372#[doc = "Venus Barycenter (NAIF ID: 2)."]
1373#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1374#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1375pub struct VenusBarycenter;
1376impl Origin for VenusBarycenter {
1377 fn id(&self) -> NaifId {
1378 NaifId(2i32)
1379 }
1380 fn name(&self) -> &'static str {
1381 "Venus Barycenter"
1382 }
1383}
1384impl Display for VenusBarycenter {
1385 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1386 write!(f, "{}", self.name())
1387 }
1388}
1389impl From<VenusBarycenter> for DynOrigin {
1390 fn from(_: VenusBarycenter) -> Self {
1391 DynOrigin::VenusBarycenter
1392 }
1393}
1394impl PointMass for VenusBarycenter {
1395 fn gravitational_parameter(&self) -> GravitationalParameter {
1396 GravitationalParameter::km3_per_s2(324858.592f64)
1397 }
1398}
1399#[doc = "Earth Barycenter (NAIF ID: 3)."]
1400#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1401#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1402pub struct EarthBarycenter;
1403impl Origin for EarthBarycenter {
1404 fn id(&self) -> NaifId {
1405 NaifId(3i32)
1406 }
1407 fn name(&self) -> &'static str {
1408 "Earth Barycenter"
1409 }
1410}
1411impl Display for EarthBarycenter {
1412 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1413 write!(f, "{}", self.name())
1414 }
1415}
1416impl From<EarthBarycenter> for DynOrigin {
1417 fn from(_: EarthBarycenter) -> Self {
1418 DynOrigin::EarthBarycenter
1419 }
1420}
1421impl PointMass for EarthBarycenter {
1422 fn gravitational_parameter(&self) -> GravitationalParameter {
1423 GravitationalParameter::km3_per_s2(403503.2356254802f64)
1424 }
1425}
1426#[doc = "Mars Barycenter (NAIF ID: 4)."]
1427#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1428#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1429pub struct MarsBarycenter;
1430impl Origin for MarsBarycenter {
1431 fn id(&self) -> NaifId {
1432 NaifId(4i32)
1433 }
1434 fn name(&self) -> &'static str {
1435 "Mars Barycenter"
1436 }
1437}
1438impl Display for MarsBarycenter {
1439 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1440 write!(f, "{}", self.name())
1441 }
1442}
1443impl From<MarsBarycenter> for DynOrigin {
1444 fn from(_: MarsBarycenter) -> Self {
1445 DynOrigin::MarsBarycenter
1446 }
1447}
1448impl PointMass for MarsBarycenter {
1449 fn gravitational_parameter(&self) -> GravitationalParameter {
1450 GravitationalParameter::km3_per_s2(42828.3758157561f64)
1451 }
1452}
1453#[doc = "Jupiter Barycenter (NAIF ID: 5)."]
1454#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1455#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1456pub struct JupiterBarycenter;
1457impl Origin for JupiterBarycenter {
1458 fn id(&self) -> NaifId {
1459 NaifId(5i32)
1460 }
1461 fn name(&self) -> &'static str {
1462 "Jupiter Barycenter"
1463 }
1464}
1465impl Display for JupiterBarycenter {
1466 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1467 write!(f, "{}", self.name())
1468 }
1469}
1470impl From<JupiterBarycenter> for DynOrigin {
1471 fn from(_: JupiterBarycenter) -> Self {
1472 DynOrigin::JupiterBarycenter
1473 }
1474}
1475impl PointMass for JupiterBarycenter {
1476 fn gravitational_parameter(&self) -> GravitationalParameter {
1477 GravitationalParameter::km3_per_s2(126712764.09999998f64)
1478 }
1479}
1480#[doc = "Saturn Barycenter (NAIF ID: 6)."]
1481#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1482#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1483pub struct SaturnBarycenter;
1484impl Origin for SaturnBarycenter {
1485 fn id(&self) -> NaifId {
1486 NaifId(6i32)
1487 }
1488 fn name(&self) -> &'static str {
1489 "Saturn Barycenter"
1490 }
1491}
1492impl Display for SaturnBarycenter {
1493 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1494 write!(f, "{}", self.name())
1495 }
1496}
1497impl From<SaturnBarycenter> for DynOrigin {
1498 fn from(_: SaturnBarycenter) -> Self {
1499 DynOrigin::SaturnBarycenter
1500 }
1501}
1502impl PointMass for SaturnBarycenter {
1503 fn gravitational_parameter(&self) -> GravitationalParameter {
1504 GravitationalParameter::km3_per_s2(37940584.8418f64)
1505 }
1506}
1507#[doc = "Uranus Barycenter (NAIF ID: 7)."]
1508#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1509#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1510pub struct UranusBarycenter;
1511impl Origin for UranusBarycenter {
1512 fn id(&self) -> NaifId {
1513 NaifId(7i32)
1514 }
1515 fn name(&self) -> &'static str {
1516 "Uranus Barycenter"
1517 }
1518}
1519impl Display for UranusBarycenter {
1520 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1521 write!(f, "{}", self.name())
1522 }
1523}
1524impl From<UranusBarycenter> for DynOrigin {
1525 fn from(_: UranusBarycenter) -> Self {
1526 DynOrigin::UranusBarycenter
1527 }
1528}
1529impl PointMass for UranusBarycenter {
1530 fn gravitational_parameter(&self) -> GravitationalParameter {
1531 GravitationalParameter::km3_per_s2(5794556.3999999985f64)
1532 }
1533}
1534#[doc = "Neptune Barycenter (NAIF ID: 8)."]
1535#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1536#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1537pub struct NeptuneBarycenter;
1538impl Origin for NeptuneBarycenter {
1539 fn id(&self) -> NaifId {
1540 NaifId(8i32)
1541 }
1542 fn name(&self) -> &'static str {
1543 "Neptune Barycenter"
1544 }
1545}
1546impl Display for NeptuneBarycenter {
1547 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1548 write!(f, "{}", self.name())
1549 }
1550}
1551impl From<NeptuneBarycenter> for DynOrigin {
1552 fn from(_: NeptuneBarycenter) -> Self {
1553 DynOrigin::NeptuneBarycenter
1554 }
1555}
1556impl PointMass for NeptuneBarycenter {
1557 fn gravitational_parameter(&self) -> GravitationalParameter {
1558 GravitationalParameter::km3_per_s2(6836527.100580399f64)
1559 }
1560}
1561#[doc = "Pluto Barycenter (NAIF ID: 9)."]
1562#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1563#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1564pub struct PlutoBarycenter;
1565impl Origin for PlutoBarycenter {
1566 fn id(&self) -> NaifId {
1567 NaifId(9i32)
1568 }
1569 fn name(&self) -> &'static str {
1570 "Pluto Barycenter"
1571 }
1572}
1573impl Display for PlutoBarycenter {
1574 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1575 write!(f, "{}", self.name())
1576 }
1577}
1578impl From<PlutoBarycenter> for DynOrigin {
1579 fn from(_: PlutoBarycenter) -> Self {
1580 DynOrigin::PlutoBarycenter
1581 }
1582}
1583impl PointMass for PlutoBarycenter {
1584 fn gravitational_parameter(&self) -> GravitationalParameter {
1585 GravitationalParameter::km3_per_s2(975.5f64)
1586 }
1587}
1588#[doc = "Moon (NAIF ID: 301)."]
1589#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1590#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1591pub struct Moon;
1592impl Origin for Moon {
1593 fn id(&self) -> NaifId {
1594 NaifId(301i32)
1595 }
1596 fn name(&self) -> &'static str {
1597 "Moon"
1598 }
1599}
1600impl Display for Moon {
1601 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1602 write!(f, "{}", self.name())
1603 }
1604}
1605impl From<Moon> for DynOrigin {
1606 fn from(_: Moon) -> Self {
1607 DynOrigin::Moon
1608 }
1609}
1610impl PointMass for Moon {
1611 fn gravitational_parameter(&self) -> GravitationalParameter {
1612 GravitationalParameter::km3_per_s2(4902.80011845755f64)
1613 }
1614}
1615impl MeanRadius for Moon {
1616 fn mean_radius(&self) -> Distance {
1617 Distance::kilometers(1737.4f64)
1618 }
1619}
1620impl TriaxialEllipsoid for Moon {
1621 fn radii(&self) -> Radii {
1622 (
1623 Distance::kilometers(1737.4f64),
1624 Distance::kilometers(1737.4f64),
1625 Distance::kilometers(1737.4f64),
1626 )
1627 }
1628}
1629impl Spheroid for Moon {}
1630const RIGHT_ASCENSION_MOON: RotationalElement<13usize> = RotationalElement {
1631 typ: RotationalElementType::RightAscension,
1632 c0: 4.712299968592838f64,
1633 c1: 0.000054105206811824215f64,
1634 c2: 0f64,
1635 c: [
1636 -0.06769608569710406f64,
1637 -0.0021013764194011725f64,
1638 0.0012217304763960308f64,
1639 -0.0003001966313430247f64,
1640 0f64,
1641 0.0001256637061435917f64,
1642 0f64,
1643 0f64,
1644 0f64,
1645 -0.00009075712110370513f64,
1646 0f64,
1647 0f64,
1648 0.00007504915783575618f64,
1649 ],
1650 theta0: [
1651 2.1824469631563095f64,
1652 4.364876473020098f64,
1653 4.537995681525416f64,
1654 3.0826877913349846f64,
1655 6.240058221362807f64,
1656 5.438253962996612f64,
1657 2.355548718369107f64,
1658 4.827877416989155f64,
1659 0.5973563897875792f64,
1660 0.2641381289968218f64,
1661 2.0899096062155698f64,
1662 4.188109526378113f64,
1663 0.4372573375021394f64,
1664 ],
1665 theta1: [
1666 -33.781483888495835f64,
1667 -67.56296777699167f64,
1668 8294.909972626925f64,
1669 8504.459388212737f64,
1670 628.3019668015924f64,
1671 16833.15084472816f64,
1672 8328.69145651542f64,
1673 209.54947933396397f64,
1674 1114.6285779726247f64,
1675 -101.3444516654875f64,
1676 2.301053255936537f64,
1677 104.77473966698199f64,
1678 8261.12848873843f64,
1679 ],
1680};
1681const DECLINATION_MOON: RotationalElement<13usize> = RotationalElement {
1682 typ: RotationalElementType::Declination,
1683 c0: 1.161328121643011f64,
1684 c1: 0.00022689280275926284f64,
1685 c2: 0f64,
1686 c: [
1687 0.02691123173650057f64,
1688 0.0004171336912266448f64,
1689 -0.00048520153205442357f64,
1690 0.0001186823891356144f64,
1691 0f64,
1692 -0.00005061454830783555f64,
1693 0.000015707963267948964f64,
1694 0f64,
1695 0f64,
1696 0.000013962634015954637f64,
1697 0f64,
1698 0f64,
1699 -0.000015707963267948964f64,
1700 ],
1701 theta0: [
1702 2.1824469631563095f64,
1703 4.364876473020098f64,
1704 4.537995681525416f64,
1705 3.0826877913349846f64,
1706 6.240058221362807f64,
1707 5.438253962996612f64,
1708 2.355548718369107f64,
1709 4.827877416989155f64,
1710 0.5973563897875792f64,
1711 0.2641381289968218f64,
1712 2.0899096062155698f64,
1713 4.188109526378113f64,
1714 0.4372573375021394f64,
1715 ],
1716 theta1: [
1717 -33.781483888495835f64,
1718 -67.56296777699167f64,
1719 8294.909972626925f64,
1720 8504.459388212737f64,
1721 628.3019668015924f64,
1722 16833.15084472816f64,
1723 8328.69145651542f64,
1724 209.54947933396397f64,
1725 1114.6285779726247f64,
1726 -101.3444516654875f64,
1727 2.301053255936537f64,
1728 104.77473966698199f64,
1729 8261.12848873843f64,
1730 ],
1731};
1732const ROTATION_MOON: RotationalElement<13usize> = RotationalElement {
1733 typ: RotationalElementType::Rotation,
1734 c0: 0.668832858644503f64,
1735 c1: 0.22997083313948888f64,
1736 c2: -0.000000000000024434609527920614f64,
1737 c: [
1738 0.06215117466351808f64,
1739 0.00210835773640915f64,
1740 -0.0011205013797803594f64,
1741 0.0002757620218151041f64,
1742 0.0004398229715025711f64,
1743 -0.00011519173063162575f64,
1744 -0.00008203047484373349f64,
1745 -0.00008028514559173915f64,
1746 0.000048869219055841225f64,
1747 0.00009075712110370513f64,
1748 0.00006981317007977319f64,
1749 0.00003316125578789226f64,
1750 -0.0000767944870877505f64,
1751 ],
1752 theta0: [
1753 2.1824469631563095f64,
1754 4.364876473020098f64,
1755 4.537995681525416f64,
1756 3.0826877913349846f64,
1757 6.240058221362807f64,
1758 5.438253962996612f64,
1759 2.355548718369107f64,
1760 4.827877416989155f64,
1761 0.5973563897875792f64,
1762 0.2641381289968218f64,
1763 2.0899096062155698f64,
1764 4.188109526378113f64,
1765 0.4372573375021394f64,
1766 ],
1767 theta1: [
1768 -33.781483888495835f64,
1769 -67.56296777699167f64,
1770 8294.909972626925f64,
1771 8504.459388212737f64,
1772 628.3019668015924f64,
1773 16833.15084472816f64,
1774 8328.69145651542f64,
1775 209.54947933396397f64,
1776 1114.6285779726247f64,
1777 -101.3444516654875f64,
1778 2.301053255936537f64,
1779 104.77473966698199f64,
1780 8261.12848873843f64,
1781 ],
1782};
1783impl RotationalElements for Moon {
1784 fn rotational_elements(&self, t: f64) -> Elements {
1785 (
1786 RIGHT_ASCENSION_MOON.angle(t),
1787 DECLINATION_MOON.angle(t),
1788 ROTATION_MOON.angle(t),
1789 )
1790 }
1791 fn rotational_element_rates(&self, t: f64) -> Elements {
1792 (
1793 RIGHT_ASCENSION_MOON.angle_dot(t),
1794 DECLINATION_MOON.angle_dot(t),
1795 ROTATION_MOON.angle_dot(t),
1796 )
1797 }
1798}
1799#[doc = "Phobos (NAIF ID: 401)."]
1800#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1801#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1802pub struct Phobos;
1803impl Origin for Phobos {
1804 fn id(&self) -> NaifId {
1805 NaifId(401i32)
1806 }
1807 fn name(&self) -> &'static str {
1808 "Phobos"
1809 }
1810}
1811impl Display for Phobos {
1812 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1813 write!(f, "{}", self.name())
1814 }
1815}
1816impl From<Phobos> for DynOrigin {
1817 fn from(_: Phobos) -> Self {
1818 DynOrigin::Phobos
1819 }
1820}
1821impl PointMass for Phobos {
1822 fn gravitational_parameter(&self) -> GravitationalParameter {
1823 GravitationalParameter::km3_per_s2(0.0007087546066894452f64)
1824 }
1825}
1826impl MeanRadius for Phobos {
1827 fn mean_radius(&self) -> Distance {
1828 Distance::kilometers(11.08f64)
1829 }
1830}
1831impl TriaxialEllipsoid for Phobos {
1832 fn radii(&self) -> Radii {
1833 (
1834 Distance::kilometers(13f64),
1835 Distance::kilometers(11.4f64),
1836 Distance::kilometers(9.1f64),
1837 )
1838 }
1839}
1840const RIGHT_ASCENSION_PHOBOS: RotationalElement<4usize> = RotationalElement {
1841 typ: RotationalElementType::RightAscension,
1842 c0: 5.544399941316208f64,
1843 c1: -0.001892691938596266f64,
1844 c2: 0f64,
1845 c: [
1846 -0.031141630416121578f64,
1847 0.00038621064567151f64,
1848 -0.00017946365486924213f64,
1849 -0.00008300698656022431f64,
1850 ],
1851 theta0: [
1852 3.328804809897935f64,
1853 0.37470342287773584f64,
1854 5.809517398292802f64,
1855 6.892873571600945f64,
1856 ],
1857 theta1: [
1858 277.80594525842264f64,
1859 555.6129894920322f64,
1860 334.05422022489097f64,
1861 668.125936040531f64,
1862 ],
1863};
1864const DECLINATION_PHOBOS: RotationalElement<4usize> = RotationalElement {
1865 typ: RotationalElementType::Declination,
1866 c0: 0.9230395870244597f64,
1867 c1: -0.0010707081834185127f64,
1868 c2: 0f64,
1869 c: [
1870 -0.018765175709923063f64,
1871 0.00011669725164439606f64,
1872 -0.00011322648989388013f64,
1873 0.000049144282945955534f64,
1874 ],
1875 theta0: [
1876 3.328804809897935f64,
1877 0.37470342287773584f64,
1878 5.809517398292802f64,
1879 6.892873571600945f64,
1880 ],
1881 theta1: [
1882 277.80594525842264f64,
1883 555.6129894920322f64,
1884 334.05422022489097f64,
1885 668.125936040531f64,
1886 ],
1887};
1888const ROTATION_PHOBOS: RotationalElement<5usize> = RotationalElement {
1889 typ: RotationalElementType::Rotation,
1890 c0: 0.6141419961301966f64,
1891 c1: 19.702057793318815f64,
1892 c2: 0.00000000016643698911600935f64,
1893 c: [
1894 0.02485728795564792f64,
1895 -0.0003968499982587423f64,
1896 0.0000716825922415843f64,
1897 0.00011029852554073445f64,
1898 -0.019949113350295186f64,
1899 ],
1900 theta0: [
1901 3.328804809897935f64,
1902 0.37470342287773584f64,
1903 5.809517398292802f64,
1904 6.892873571600945f64,
1905 3.3097152567180146f64,
1906 ],
1907 theta1: [
1908 277.80594525842264f64,
1909 555.6129894920322f64,
1910 334.05422022489097f64,
1911 668.125936040531f64,
1912 719340.2120445863f64,
1913 ],
1914};
1915impl RotationalElements for Phobos {
1916 fn rotational_elements(&self, t: f64) -> Elements {
1917 (
1918 RIGHT_ASCENSION_PHOBOS.angle(t),
1919 DECLINATION_PHOBOS.angle(t),
1920 ROTATION_PHOBOS.angle(t),
1921 )
1922 }
1923 fn rotational_element_rates(&self, t: f64) -> Elements {
1924 (
1925 RIGHT_ASCENSION_PHOBOS.angle_dot(t),
1926 DECLINATION_PHOBOS.angle_dot(t),
1927 ROTATION_PHOBOS.angle_dot(t),
1928 )
1929 }
1930}
1931#[doc = "Deimos (NAIF ID: 402)."]
1932#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1933#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1934pub struct Deimos;
1935impl Origin for Deimos {
1936 fn id(&self) -> NaifId {
1937 NaifId(402i32)
1938 }
1939 fn name(&self) -> &'static str {
1940 "Deimos"
1941 }
1942}
1943impl Display for Deimos {
1944 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
1945 write!(f, "{}", self.name())
1946 }
1947}
1948impl From<Deimos> for DynOrigin {
1949 fn from(_: Deimos) -> Self {
1950 DynOrigin::Deimos
1951 }
1952}
1953impl PointMass for Deimos {
1954 fn gravitational_parameter(&self) -> GravitationalParameter {
1955 GravitationalParameter::km3_per_s2(0.00009615569648120313f64)
1956 }
1957}
1958impl MeanRadius for Deimos {
1959 fn mean_radius(&self) -> Distance {
1960 Distance::kilometers(6.2f64)
1961 }
1962}
1963impl TriaxialEllipsoid for Deimos {
1964 fn radii(&self) -> Radii {
1965 (
1966 Distance::kilometers(7.8f64),
1967 Distance::kilometers(6f64),
1968 Distance::kilometers(5.1f64),
1969 )
1970 }
1971}
1972const RIGHT_ASCENSION_DEIMOS: RotationalElement<10usize> = RotationalElement {
1973 typ: RotationalElementType::RightAscension,
1974 c0: 5.526708263174914f64,
1975 c1: -0.0018357397507085887f64,
1976 c2: 0f64,
1977 c: [
1978 0f64,
1979 0f64,
1980 0f64,
1981 0f64,
1982 0f64,
1983 0.05396867424229676f64,
1984 0.004010877798556321f64,
1985 0.0011202666329959662f64,
1986 0.00044218562371099577f64,
1987 0.00013590791618817245f64,
1988 ],
1989 theta0: [
1990 3.328804809897935f64,
1991 0.37470342287773584f64,
1992 5.809517398292802f64,
1993 6.892873571600945f64,
1994 3.3097152567180146f64,
1995 2.120032883264378f64,
1996 4.032588225058434f64,
1997 4.387288948439982f64,
1998 3.8045796985836846f64,
1999 3.424288764152381f64,
2000 ],
2001 theta1: [
2002 277.80594525842264f64,
2003 555.6129894920322f64,
2004 334.05422022489097f64,
2005 668.125936040531f64,
2006 719340.2120445863f64,
2007 11.523153020184504f64,
2008 11.536473384554899f64,
2009 23.047098122619843f64,
2010 668.1113614443373f64,
2011 334.05316148477937f64,
2012 ],
2013};
2014const DECLINATION_DEIMOS: RotationalElement<10usize> = RotationalElement {
2015 typ: RotationalElementType::Declination,
2016 c0: 0.9339242922383507f64,
2017 c1: -0.0010435487658623783f64,
2018 c2: 0f64,
2019 c: [
2020 0f64,
2021 0f64,
2022 0f64,
2023 0f64,
2024 0f64,
2025 0.032102888827614605f64,
2026 0.002500240004017941f64,
2027 0.00033360380402252296f64,
2028 -0.0002587607695714273f64,
2029 0.00003358537079612689f64,
2030 ],
2031 theta0: [
2032 3.328804809897935f64,
2033 0.37470342287773584f64,
2034 5.809517398292802f64,
2035 6.892873571600945f64,
2036 3.3097152567180146f64,
2037 2.120032883264378f64,
2038 4.032588225058434f64,
2039 4.387288948439982f64,
2040 3.8045796985836846f64,
2041 3.424288764152381f64,
2042 ],
2043 theta1: [
2044 277.80594525842264f64,
2045 555.6129894920322f64,
2046 334.05422022489097f64,
2047 668.125936040531f64,
2048 719340.2120445863f64,
2049 11.523153020184504f64,
2050 11.536473384554899f64,
2051 23.047098122619843f64,
2052 668.1113614443373f64,
2053 334.05316148477937f64,
2054 ],
2055};
2056const ROTATION_DEIMOS: RotationalElement<10usize> = RotationalElement {
2057 typ: RotationalElementType::Rotation,
2058 c0: 1.3857797243489947f64,
2059 c1: 4.977013864082068f64,
2060 c2: 0f64,
2061 c: [
2062 0f64,
2063 0f64,
2064 0f64,
2065 0f64,
2066 0f64,
2067 -0.047814137677880446f64,
2068 -0.006975837721323607f64,
2069 -0.0011455047921115052f64,
2070 -0.0005084039391304362f64,
2071 0.0002965593651818685f64,
2072 ],
2073 theta0: [
2074 3.328804809897935f64,
2075 0.37470342287773584f64,
2076 5.809517398292802f64,
2077 6.892873571600945f64,
2078 3.3097152567180146f64,
2079 2.120032883264378f64,
2080 4.032588225058434f64,
2081 4.387288948439982f64,
2082 3.8045796985836846f64,
2083 3.424288764152381f64,
2084 ],
2085 theta1: [
2086 277.80594525842264f64,
2087 555.6129894920322f64,
2088 334.05422022489097f64,
2089 668.125936040531f64,
2090 719340.2120445863f64,
2091 11.523153020184504f64,
2092 11.536473384554899f64,
2093 23.047098122619843f64,
2094 668.1113614443373f64,
2095 334.05316148477937f64,
2096 ],
2097};
2098impl RotationalElements for Deimos {
2099 fn rotational_elements(&self, t: f64) -> Elements {
2100 (
2101 RIGHT_ASCENSION_DEIMOS.angle(t),
2102 DECLINATION_DEIMOS.angle(t),
2103 ROTATION_DEIMOS.angle(t),
2104 )
2105 }
2106 fn rotational_element_rates(&self, t: f64) -> Elements {
2107 (
2108 RIGHT_ASCENSION_DEIMOS.angle_dot(t),
2109 DECLINATION_DEIMOS.angle_dot(t),
2110 ROTATION_DEIMOS.angle_dot(t),
2111 )
2112 }
2113}
2114#[doc = "Io (NAIF ID: 501)."]
2115#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2116#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2117pub struct Io;
2118impl Origin for Io {
2119 fn id(&self) -> NaifId {
2120 NaifId(501i32)
2121 }
2122 fn name(&self) -> &'static str {
2123 "Io"
2124 }
2125}
2126impl Display for Io {
2127 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2128 write!(f, "{}", self.name())
2129 }
2130}
2131impl From<Io> for DynOrigin {
2132 fn from(_: Io) -> Self {
2133 DynOrigin::Io
2134 }
2135}
2136impl PointMass for Io {
2137 fn gravitational_parameter(&self) -> GravitationalParameter {
2138 GravitationalParameter::km3_per_s2(5959.915466180539f64)
2139 }
2140}
2141impl MeanRadius for Io {
2142 fn mean_radius(&self) -> Distance {
2143 Distance::kilometers(1821.49f64)
2144 }
2145}
2146impl TriaxialEllipsoid for Io {
2147 fn radii(&self) -> Radii {
2148 (
2149 Distance::kilometers(1829.4f64),
2150 Distance::kilometers(1819.4f64),
2151 Distance::kilometers(1815.7f64),
2152 )
2153 }
2154}
2155const RIGHT_ASCENSION_IO: RotationalElement<4usize> = RotationalElement {
2156 typ: RotationalElementType::RightAscension,
2157 c0: 4.678355059970801f64,
2158 c1: -0.00015707963267948965f64,
2159 c2: 0f64,
2160 c: [
2161 0f64,
2162 0f64,
2163 0.0016406094968746698f64,
2164 0.0004188790204786391f64,
2165 ],
2166 theta0: [
2167 1.2796754075622423f64,
2168 0.42970006184100396f64,
2169 4.9549897464119015f64,
2170 6.2098814785958245f64,
2171 ],
2172 theta1: [
2173 1596.503281347521f64,
2174 787.7927551311844f64,
2175 84.66068602648895f64,
2176 20.792107379008446f64,
2177 ],
2178};
2179const DECLINATION_IO: RotationalElement<4usize> = RotationalElement {
2180 typ: RotationalElementType::Declination,
2181 c0: 1.1257373675363425f64,
2182 c1: 0.00005235987755982989f64,
2183 c2: 0f64,
2184 c: [
2185 0f64,
2186 0f64,
2187 0.0006981317007977319f64,
2188 0.00019198621771937625f64,
2189 ],
2190 theta0: [
2191 1.2796754075622423f64,
2192 0.42970006184100396f64,
2193 4.9549897464119015f64,
2194 6.2098814785958245f64,
2195 ],
2196 theta1: [
2197 1596.503281347521f64,
2198 787.7927551311844f64,
2199 84.66068602648895f64,
2200 20.792107379008446f64,
2201 ],
2202};
2203const ROTATION_IO: RotationalElement<4usize> = RotationalElement {
2204 typ: RotationalElementType::Rotation,
2205 c0: 3.4974652880714365f64,
2206 c1: 3.551552235248627f64,
2207 c2: 0f64,
2208 c: [
2209 0f64,
2210 0f64,
2211 -0.0014835298641951802f64,
2212 -0.0003839724354387525f64,
2213 ],
2214 theta0: [
2215 1.2796754075622423f64,
2216 0.42970006184100396f64,
2217 4.9549897464119015f64,
2218 6.2098814785958245f64,
2219 ],
2220 theta1: [
2221 1596.503281347521f64,
2222 787.7927551311844f64,
2223 84.66068602648895f64,
2224 20.792107379008446f64,
2225 ],
2226};
2227impl RotationalElements for Io {
2228 fn rotational_elements(&self, t: f64) -> Elements {
2229 (
2230 RIGHT_ASCENSION_IO.angle(t),
2231 DECLINATION_IO.angle(t),
2232 ROTATION_IO.angle(t),
2233 )
2234 }
2235 fn rotational_element_rates(&self, t: f64) -> Elements {
2236 (
2237 RIGHT_ASCENSION_IO.angle_dot(t),
2238 DECLINATION_IO.angle_dot(t),
2239 ROTATION_IO.angle_dot(t),
2240 )
2241 }
2242}
2243#[doc = "Europa (NAIF ID: 502)."]
2244#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2245#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2246pub struct Europa;
2247impl Origin for Europa {
2248 fn id(&self) -> NaifId {
2249 NaifId(502i32)
2250 }
2251 fn name(&self) -> &'static str {
2252 "Europa"
2253 }
2254}
2255impl Display for Europa {
2256 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2257 write!(f, "{}", self.name())
2258 }
2259}
2260impl From<Europa> for DynOrigin {
2261 fn from(_: Europa) -> Self {
2262 DynOrigin::Europa
2263 }
2264}
2265impl PointMass for Europa {
2266 fn gravitational_parameter(&self) -> GravitationalParameter {
2267 GravitationalParameter::km3_per_s2(3202.712099607295f64)
2268 }
2269}
2270impl MeanRadius for Europa {
2271 fn mean_radius(&self) -> Distance {
2272 Distance::kilometers(1560.8f64)
2273 }
2274}
2275impl TriaxialEllipsoid for Europa {
2276 fn radii(&self) -> Radii {
2277 (
2278 Distance::kilometers(1562.6f64),
2279 Distance::kilometers(1560.3f64),
2280 Distance::kilometers(1559.5f64),
2281 )
2282 }
2283}
2284const RIGHT_ASCENSION_EUROPA: RotationalElement<7usize> = RotationalElement {
2285 typ: RotationalElementType::RightAscension,
2286 c0: 4.678878658746398f64,
2287 c1: -0.00015707963267948965f64,
2288 c2: 0f64,
2289 c: [
2290 0f64,
2291 0f64,
2292 0f64,
2293 0.01895427567665842f64,
2294 0.0010471975511965976f64,
2295 0.0002617993877991494f64,
2296 0.00015707963267948965f64,
2297 ],
2298 theta0: [
2299 1.2796754075622423f64,
2300 0.42970006184100396f64,
2301 4.9549897464119015f64,
2302 6.2098814785958245f64,
2303 2.092649773141201f64,
2304 4.010766621082969f64,
2305 6.147922290150026f64,
2306 ],
2307 theta1: [
2308 1596.503281347521f64,
2309 787.7927551311844f64,
2310 84.66068602648895f64,
2311 20.792107379008446f64,
2312 4.574507969477138f64,
2313 1.1222467090323538f64,
2314 41.58421475801689f64,
2315 ],
2316};
2317const DECLINATION_EUROPA: RotationalElement<7usize> = RotationalElement {
2318 typ: RotationalElementType::Declination,
2319 c0: 1.125911900461542f64,
2320 c1: 0.00005235987755982989f64,
2321 c2: 0f64,
2322 c: [
2323 0f64,
2324 0f64,
2325 0f64,
2326 0.008168140899333463f64,
2327 0.0004537856055185257f64,
2328 0.00012217304763960306f64,
2329 0.00003490658503988659f64,
2330 ],
2331 theta0: [
2332 1.2796754075622423f64,
2333 0.42970006184100396f64,
2334 4.9549897464119015f64,
2335 6.2098814785958245f64,
2336 2.092649773141201f64,
2337 4.010766621082969f64,
2338 6.147922290150026f64,
2339 ],
2340 theta1: [
2341 1596.503281347521f64,
2342 787.7927551311844f64,
2343 84.66068602648895f64,
2344 20.792107379008446f64,
2345 4.574507969477138f64,
2346 1.1222467090323538f64,
2347 41.58421475801689f64,
2348 ],
2349};
2350const ROTATION_EUROPA: RotationalElement<7usize> = RotationalElement {
2351 typ: RotationalElementType::Rotation,
2352 c0: 0.6287025031533974f64,
2353 c1: 1.7693227033738699f64,
2354 c2: 0f64,
2355 c: [
2356 0f64,
2357 0f64,
2358 0f64,
2359 -0.01710422666954443f64,
2360 -0.0009424777960769379f64,
2361 -0.0002443460952792061f64,
2362 -0.00013962634015954637f64,
2363 ],
2364 theta0: [
2365 1.2796754075622423f64,
2366 0.42970006184100396f64,
2367 4.9549897464119015f64,
2368 6.2098814785958245f64,
2369 2.092649773141201f64,
2370 4.010766621082969f64,
2371 6.147922290150026f64,
2372 ],
2373 theta1: [
2374 1596.503281347521f64,
2375 787.7927551311844f64,
2376 84.66068602648895f64,
2377 20.792107379008446f64,
2378 4.574507969477138f64,
2379 1.1222467090323538f64,
2380 41.58421475801689f64,
2381 ],
2382};
2383impl RotationalElements for Europa {
2384 fn rotational_elements(&self, t: f64) -> Elements {
2385 (
2386 RIGHT_ASCENSION_EUROPA.angle(t),
2387 DECLINATION_EUROPA.angle(t),
2388 ROTATION_EUROPA.angle(t),
2389 )
2390 }
2391 fn rotational_element_rates(&self, t: f64) -> Elements {
2392 (
2393 RIGHT_ASCENSION_EUROPA.angle_dot(t),
2394 DECLINATION_EUROPA.angle_dot(t),
2395 ROTATION_EUROPA.angle_dot(t),
2396 )
2397 }
2398}
2399#[doc = "Ganymede (NAIF ID: 503)."]
2400#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2401#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2402pub struct Ganymede;
2403impl Origin for Ganymede {
2404 fn id(&self) -> NaifId {
2405 NaifId(503i32)
2406 }
2407 fn name(&self) -> &'static str {
2408 "Ganymede"
2409 }
2410}
2411impl Display for Ganymede {
2412 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2413 write!(f, "{}", self.name())
2414 }
2415}
2416impl From<Ganymede> for DynOrigin {
2417 fn from(_: Ganymede) -> Self {
2418 DynOrigin::Ganymede
2419 }
2420}
2421impl PointMass for Ganymede {
2422 fn gravitational_parameter(&self) -> GravitationalParameter {
2423 GravitationalParameter::km3_per_s2(9887.832752719638f64)
2424 }
2425}
2426impl MeanRadius for Ganymede {
2427 fn mean_radius(&self) -> Distance {
2428 Distance::kilometers(2631.2f64)
2429 }
2430}
2431impl TriaxialEllipsoid for Ganymede {
2432 fn radii(&self) -> Radii {
2433 (
2434 Distance::kilometers(2631.2f64),
2435 Distance::kilometers(2631.2f64),
2436 Distance::kilometers(2631.2f64),
2437 )
2438 }
2439}
2440impl Spheroid for Ganymede {}
2441const RIGHT_ASCENSION_GANYMEDE: RotationalElement<6usize> = RotationalElement {
2442 typ: RotationalElementType::RightAscension,
2443 c0: 4.680973053848792f64,
2444 c1: -0.00015707963267948965f64,
2445 c2: 0f64,
2446 c: [
2447 0f64,
2448 0f64,
2449 0f64,
2450 -0.0006457718232379018f64,
2451 0.0075223690760955605f64,
2452 0.0015882496193148398f64,
2453 ],
2454 theta0: [
2455 1.2796754075622423f64,
2456 0.42970006184100396f64,
2457 4.9549897464119015f64,
2458 6.2098814785958245f64,
2459 2.092649773141201f64,
2460 4.010766621082969f64,
2461 ],
2462 theta1: [
2463 1596.503281347521f64,
2464 787.7927551311844f64,
2465 84.66068602648895f64,
2466 20.792107379008446f64,
2467 4.574507969477138f64,
2468 1.1222467090323538f64,
2469 ],
2470};
2471const DECLINATION_GANYMEDE: RotationalElement<6usize> = RotationalElement {
2472 typ: RotationalElementType::Declination,
2473 c0: 1.1269590980127384f64,
2474 c1: 0.00005235987755982989f64,
2475 c2: 0f64,
2476 c: [
2477 0f64,
2478 0f64,
2479 0f64,
2480 -0.00027925268031909274f64,
2481 0.003246312408709453f64,
2482 0.0006806784082777885f64,
2483 ],
2484 theta0: [
2485 1.2796754075622423f64,
2486 0.42970006184100396f64,
2487 4.9549897464119015f64,
2488 6.2098814785958245f64,
2489 2.092649773141201f64,
2490 4.010766621082969f64,
2491 ],
2492 theta1: [
2493 1596.503281347521f64,
2494 787.7927551311844f64,
2495 84.66068602648895f64,
2496 20.792107379008446f64,
2497 4.574507969477138f64,
2498 1.1222467090323538f64,
2499 ],
2500};
2501const ROTATION_GANYMEDE: RotationalElement<6usize> = RotationalElement {
2502 typ: RotationalElementType::Rotation,
2503 c0: 0.7690618815987814f64,
2504 c1: 0.8782079330731682f64,
2505 c2: 0f64,
2506 c: [
2507 0f64,
2508 0f64,
2509 0f64,
2510 0.0005759586531581288f64,
2511 -0.006789330790257942f64,
2512 -0.0014311699866353504f64,
2513 ],
2514 theta0: [
2515 1.2796754075622423f64,
2516 0.42970006184100396f64,
2517 4.9549897464119015f64,
2518 6.2098814785958245f64,
2519 2.092649773141201f64,
2520 4.010766621082969f64,
2521 ],
2522 theta1: [
2523 1596.503281347521f64,
2524 787.7927551311844f64,
2525 84.66068602648895f64,
2526 20.792107379008446f64,
2527 4.574507969477138f64,
2528 1.1222467090323538f64,
2529 ],
2530};
2531impl RotationalElements for Ganymede {
2532 fn rotational_elements(&self, t: f64) -> Elements {
2533 (
2534 RIGHT_ASCENSION_GANYMEDE.angle(t),
2535 DECLINATION_GANYMEDE.angle(t),
2536 ROTATION_GANYMEDE.angle(t),
2537 )
2538 }
2539 fn rotational_element_rates(&self, t: f64) -> Elements {
2540 (
2541 RIGHT_ASCENSION_GANYMEDE.angle_dot(t),
2542 DECLINATION_GANYMEDE.angle_dot(t),
2543 ROTATION_GANYMEDE.angle_dot(t),
2544 )
2545 }
2546}
2547#[doc = "Callisto (NAIF ID: 504)."]
2548#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2549#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2550pub struct Callisto;
2551impl Origin for Callisto {
2552 fn id(&self) -> NaifId {
2553 NaifId(504i32)
2554 }
2555 fn name(&self) -> &'static str {
2556 "Callisto"
2557 }
2558}
2559impl Display for Callisto {
2560 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2561 write!(f, "{}", self.name())
2562 }
2563}
2564impl From<Callisto> for DynOrigin {
2565 fn from(_: Callisto) -> Self {
2566 DynOrigin::Callisto
2567 }
2568}
2569impl PointMass for Callisto {
2570 fn gravitational_parameter(&self) -> GravitationalParameter {
2571 GravitationalParameter::km3_per_s2(7179.283402579837f64)
2572 }
2573}
2574impl MeanRadius for Callisto {
2575 fn mean_radius(&self) -> Distance {
2576 Distance::kilometers(2410.3f64)
2577 }
2578}
2579impl TriaxialEllipsoid for Callisto {
2580 fn radii(&self) -> Radii {
2581 (
2582 Distance::kilometers(2410.3f64),
2583 Distance::kilometers(2410.3f64),
2584 Distance::kilometers(2410.3f64),
2585 )
2586 }
2587}
2588impl Spheroid for Callisto {}
2589const RIGHT_ASCENSION_CALLISTO: RotationalElement<8usize> = RotationalElement {
2590 typ: RotationalElementType::RightAscension,
2591 c0: 4.690048765959163f64,
2592 c1: -0.00015707963267948965f64,
2593 c2: 0f64,
2594 c: [
2595 0f64,
2596 0f64,
2597 0f64,
2598 0f64,
2599 -0.001186823891356144f64,
2600 0.010297442586766544f64,
2601 0f64,
2602 0.00017453292519943296f64,
2603 ],
2604 theta0: [
2605 1.2796754075622423f64,
2606 0.42970006184100396f64,
2607 4.9549897464119015f64,
2608 6.2098814785958245f64,
2609 2.092649773141201f64,
2610 4.010766621082969f64,
2611 6.147922290150026f64,
2612 1.9783307071355725f64,
2613 ],
2614 theta1: [
2615 1596.503281347521f64,
2616 787.7927551311844f64,
2617 84.66068602648895f64,
2618 20.792107379008446f64,
2619 4.574507969477138f64,
2620 1.1222467090323538f64,
2621 41.58421475801689f64,
2622 105.9414855960558f64,
2623 ],
2624};
2625const DECLINATION_CALLISTO: RotationalElement<8usize> = RotationalElement {
2626 typ: RotationalElementType::Declination,
2627 c0: 1.1314969540679238f64,
2628 c1: 0.00005235987755982989f64,
2629 c2: 0f64,
2630 c: [
2631 0f64,
2632 0f64,
2633 0f64,
2634 0f64,
2635 -0.0005061454830783556f64,
2636 0.004433136300065597f64,
2637 0f64,
2638 -0.00006981317007977319f64,
2639 ],
2640 theta0: [
2641 1.2796754075622423f64,
2642 0.42970006184100396f64,
2643 4.9549897464119015f64,
2644 6.2098814785958245f64,
2645 2.092649773141201f64,
2646 4.010766621082969f64,
2647 6.147922290150026f64,
2648 1.9783307071355725f64,
2649 ],
2650 theta1: [
2651 1596.503281347521f64,
2652 787.7927551311844f64,
2653 84.66068602648895f64,
2654 20.792107379008446f64,
2655 4.574507969477138f64,
2656 1.1222467090323538f64,
2657 41.58421475801689f64,
2658 105.9414855960558f64,
2659 ],
2660};
2661const ROTATION_CALLISTO: RotationalElement<8usize> = RotationalElement {
2662 typ: RotationalElementType::Rotation,
2663 c0: 4.529303941850484f64,
2664 c1: 0.37648622085811195f64,
2665 c2: 0f64,
2666 c: [
2667 0f64,
2668 0f64,
2669 0f64,
2670 0f64,
2671 0.001064650843716541f64,
2672 -0.009302604913129777f64,
2673 0f64,
2674 -0.00015707963267948965f64,
2675 ],
2676 theta0: [
2677 1.2796754075622423f64,
2678 0.42970006184100396f64,
2679 4.9549897464119015f64,
2680 6.2098814785958245f64,
2681 2.092649773141201f64,
2682 4.010766621082969f64,
2683 6.147922290150026f64,
2684 1.9783307071355725f64,
2685 ],
2686 theta1: [
2687 1596.503281347521f64,
2688 787.7927551311844f64,
2689 84.66068602648895f64,
2690 20.792107379008446f64,
2691 4.574507969477138f64,
2692 1.1222467090323538f64,
2693 41.58421475801689f64,
2694 105.9414855960558f64,
2695 ],
2696};
2697impl RotationalElements for Callisto {
2698 fn rotational_elements(&self, t: f64) -> Elements {
2699 (
2700 RIGHT_ASCENSION_CALLISTO.angle(t),
2701 DECLINATION_CALLISTO.angle(t),
2702 ROTATION_CALLISTO.angle(t),
2703 )
2704 }
2705 fn rotational_element_rates(&self, t: f64) -> Elements {
2706 (
2707 RIGHT_ASCENSION_CALLISTO.angle_dot(t),
2708 DECLINATION_CALLISTO.angle_dot(t),
2709 ROTATION_CALLISTO.angle_dot(t),
2710 )
2711 }
2712}
2713#[doc = "Amalthea (NAIF ID: 505)."]
2714#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2715#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2716pub struct Amalthea;
2717impl Origin for Amalthea {
2718 fn id(&self) -> NaifId {
2719 NaifId(505i32)
2720 }
2721 fn name(&self) -> &'static str {
2722 "Amalthea"
2723 }
2724}
2725impl Display for Amalthea {
2726 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2727 write!(f, "{}", self.name())
2728 }
2729}
2730impl From<Amalthea> for DynOrigin {
2731 fn from(_: Amalthea) -> Self {
2732 DynOrigin::Amalthea
2733 }
2734}
2735impl PointMass for Amalthea {
2736 fn gravitational_parameter(&self) -> GravitationalParameter {
2737 GravitationalParameter::km3_per_s2(0.1645634534798259f64)
2738 }
2739}
2740impl MeanRadius for Amalthea {
2741 fn mean_radius(&self) -> Distance {
2742 Distance::kilometers(83.5f64)
2743 }
2744}
2745impl TriaxialEllipsoid for Amalthea {
2746 fn radii(&self) -> Radii {
2747 (
2748 Distance::kilometers(125f64),
2749 Distance::kilometers(73f64),
2750 Distance::kilometers(64f64),
2751 )
2752 }
2753}
2754const RIGHT_ASCENSION_AMALTHEA: RotationalElement<10usize> = RotationalElement {
2755 typ: RotationalElementType::RightAscension,
2756 c0: 4.678355059970801f64,
2757 c1: -0.00015707963267948965f64,
2758 c2: 0f64,
2759 c: [
2760 -0.014660765716752368f64,
2761 0f64,
2762 0f64,
2763 0f64,
2764 0f64,
2765 0f64,
2766 0f64,
2767 0f64,
2768 0.00017453292519943296f64,
2769 0f64,
2770 ],
2771 theta0: [
2772 1.2796754075622423f64,
2773 0.42970006184100396f64,
2774 4.9549897464119015f64,
2775 6.2098814785958245f64,
2776 2.092649773141201f64,
2777 4.010766621082969f64,
2778 6.147922290150026f64,
2779 1.9783307071355725f64,
2780 2.5593508151244846f64,
2781 0.8594001236820079f64,
2782 ],
2783 theta1: [
2784 1596.503281347521f64,
2785 787.7927551311844f64,
2786 84.66068602648895f64,
2787 20.792107379008446f64,
2788 4.574507969477138f64,
2789 1.1222467090323538f64,
2790 41.58421475801689f64,
2791 105.9414855960558f64,
2792 3193.006562695042f64,
2793 1575.5855102623689f64,
2794 ],
2795};
2796const DECLINATION_AMALTHEA: RotationalElement<10usize> = RotationalElement {
2797 typ: RotationalElementType::Declination,
2798 c0: 1.125562834611143f64,
2799 c1: 0.00005235987755982989f64,
2800 c2: 0f64,
2801 c: [
2802 -0.006283185307179586f64,
2803 0f64,
2804 0f64,
2805 0f64,
2806 0f64,
2807 0f64,
2808 0f64,
2809 0f64,
2810 0f64,
2811 0f64,
2812 ],
2813 theta0: [
2814 1.2796754075622423f64,
2815 0.42970006184100396f64,
2816 4.9549897464119015f64,
2817 6.2098814785958245f64,
2818 2.092649773141201f64,
2819 4.010766621082969f64,
2820 6.147922290150026f64,
2821 1.9783307071355725f64,
2822 2.5593508151244846f64,
2823 0.8594001236820079f64,
2824 ],
2825 theta1: [
2826 1596.503281347521f64,
2827 787.7927551311844f64,
2828 84.66068602648895f64,
2829 20.792107379008446f64,
2830 4.574507969477138f64,
2831 1.1222467090323538f64,
2832 41.58421475801689f64,
2833 105.9414855960558f64,
2834 3193.006562695042f64,
2835 1575.5855102623689f64,
2836 ],
2837};
2838const ROTATION_AMALTHEA: RotationalElement<10usize> = RotationalElement {
2839 typ: RotationalElementType::Rotation,
2840 c0: 4.043404278095263f64,
2841 c1: 12.612298185680531f64,
2842 c2: 0f64,
2843 c: [
2844 0.013264502315156905f64,
2845 0f64,
2846 0f64,
2847 0f64,
2848 0f64,
2849 0f64,
2850 0f64,
2851 0f64,
2852 -0.00017453292519943296f64,
2853 0f64,
2854 ],
2855 theta0: [
2856 1.2796754075622423f64,
2857 0.42970006184100396f64,
2858 4.9549897464119015f64,
2859 6.2098814785958245f64,
2860 2.092649773141201f64,
2861 4.010766621082969f64,
2862 6.147922290150026f64,
2863 1.9783307071355725f64,
2864 2.5593508151244846f64,
2865 0.8594001236820079f64,
2866 ],
2867 theta1: [
2868 1596.503281347521f64,
2869 787.7927551311844f64,
2870 84.66068602648895f64,
2871 20.792107379008446f64,
2872 4.574507969477138f64,
2873 1.1222467090323538f64,
2874 41.58421475801689f64,
2875 105.9414855960558f64,
2876 3193.006562695042f64,
2877 1575.5855102623689f64,
2878 ],
2879};
2880impl RotationalElements for Amalthea {
2881 fn rotational_elements(&self, t: f64) -> Elements {
2882 (
2883 RIGHT_ASCENSION_AMALTHEA.angle(t),
2884 DECLINATION_AMALTHEA.angle(t),
2885 ROTATION_AMALTHEA.angle(t),
2886 )
2887 }
2888 fn rotational_element_rates(&self, t: f64) -> Elements {
2889 (
2890 RIGHT_ASCENSION_AMALTHEA.angle_dot(t),
2891 DECLINATION_AMALTHEA.angle_dot(t),
2892 ROTATION_AMALTHEA.angle_dot(t),
2893 )
2894 }
2895}
2896#[doc = "Himalia (NAIF ID: 506)."]
2897#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2898#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2899pub struct Himalia;
2900impl Origin for Himalia {
2901 fn id(&self) -> NaifId {
2902 NaifId(506i32)
2903 }
2904 fn name(&self) -> &'static str {
2905 "Himalia"
2906 }
2907}
2908impl Display for Himalia {
2909 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2910 write!(f, "{}", self.name())
2911 }
2912}
2913impl From<Himalia> for DynOrigin {
2914 fn from(_: Himalia) -> Self {
2915 DynOrigin::Himalia
2916 }
2917}
2918impl PointMass for Himalia {
2919 fn gravitational_parameter(&self) -> GravitationalParameter {
2920 GravitationalParameter::km3_per_s2(0.1515524299611265f64)
2921 }
2922}
2923impl MeanRadius for Himalia {
2924 fn mean_radius(&self) -> Distance {
2925 Distance::kilometers(85f64)
2926 }
2927}
2928impl TriaxialEllipsoid for Himalia {
2929 fn radii(&self) -> Radii {
2930 (
2931 Distance::kilometers(85f64),
2932 Distance::kilometers(85f64),
2933 Distance::kilometers(85f64),
2934 )
2935 }
2936}
2937impl Spheroid for Himalia {}
2938#[doc = "Elara (NAIF ID: 507)."]
2939#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2940#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2941pub struct Elara;
2942impl Origin for Elara {
2943 fn id(&self) -> NaifId {
2944 NaifId(507i32)
2945 }
2946 fn name(&self) -> &'static str {
2947 "Elara"
2948 }
2949}
2950impl Display for Elara {
2951 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2952 write!(f, "{}", self.name())
2953 }
2954}
2955impl From<Elara> for DynOrigin {
2956 fn from(_: Elara) -> Self {
2957 DynOrigin::Elara
2958 }
2959}
2960impl MeanRadius for Elara {
2961 fn mean_radius(&self) -> Distance {
2962 Distance::kilometers(40f64)
2963 }
2964}
2965impl TriaxialEllipsoid for Elara {
2966 fn radii(&self) -> Radii {
2967 (
2968 Distance::kilometers(40f64),
2969 Distance::kilometers(40f64),
2970 Distance::kilometers(40f64),
2971 )
2972 }
2973}
2974impl Spheroid for Elara {}
2975#[doc = "Pasiphae (NAIF ID: 508)."]
2976#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2977#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2978pub struct Pasiphae;
2979impl Origin for Pasiphae {
2980 fn id(&self) -> NaifId {
2981 NaifId(508i32)
2982 }
2983 fn name(&self) -> &'static str {
2984 "Pasiphae"
2985 }
2986}
2987impl Display for Pasiphae {
2988 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
2989 write!(f, "{}", self.name())
2990 }
2991}
2992impl From<Pasiphae> for DynOrigin {
2993 fn from(_: Pasiphae) -> Self {
2994 DynOrigin::Pasiphae
2995 }
2996}
2997impl MeanRadius for Pasiphae {
2998 fn mean_radius(&self) -> Distance {
2999 Distance::kilometers(18f64)
3000 }
3001}
3002impl TriaxialEllipsoid for Pasiphae {
3003 fn radii(&self) -> Radii {
3004 (
3005 Distance::kilometers(18f64),
3006 Distance::kilometers(18f64),
3007 Distance::kilometers(18f64),
3008 )
3009 }
3010}
3011impl Spheroid for Pasiphae {}
3012#[doc = "Sinope (NAIF ID: 509)."]
3013#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3014#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3015pub struct Sinope;
3016impl Origin for Sinope {
3017 fn id(&self) -> NaifId {
3018 NaifId(509i32)
3019 }
3020 fn name(&self) -> &'static str {
3021 "Sinope"
3022 }
3023}
3024impl Display for Sinope {
3025 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3026 write!(f, "{}", self.name())
3027 }
3028}
3029impl From<Sinope> for DynOrigin {
3030 fn from(_: Sinope) -> Self {
3031 DynOrigin::Sinope
3032 }
3033}
3034impl MeanRadius for Sinope {
3035 fn mean_radius(&self) -> Distance {
3036 Distance::kilometers(14f64)
3037 }
3038}
3039impl TriaxialEllipsoid for Sinope {
3040 fn radii(&self) -> Radii {
3041 (
3042 Distance::kilometers(14f64),
3043 Distance::kilometers(14f64),
3044 Distance::kilometers(14f64),
3045 )
3046 }
3047}
3048impl Spheroid for Sinope {}
3049#[doc = "Lysithea (NAIF ID: 510)."]
3050#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3051#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3052pub struct Lysithea;
3053impl Origin for Lysithea {
3054 fn id(&self) -> NaifId {
3055 NaifId(510i32)
3056 }
3057 fn name(&self) -> &'static str {
3058 "Lysithea"
3059 }
3060}
3061impl Display for Lysithea {
3062 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3063 write!(f, "{}", self.name())
3064 }
3065}
3066impl From<Lysithea> for DynOrigin {
3067 fn from(_: Lysithea) -> Self {
3068 DynOrigin::Lysithea
3069 }
3070}
3071impl MeanRadius for Lysithea {
3072 fn mean_radius(&self) -> Distance {
3073 Distance::kilometers(12f64)
3074 }
3075}
3076impl TriaxialEllipsoid for Lysithea {
3077 fn radii(&self) -> Radii {
3078 (
3079 Distance::kilometers(12f64),
3080 Distance::kilometers(12f64),
3081 Distance::kilometers(12f64),
3082 )
3083 }
3084}
3085impl Spheroid for Lysithea {}
3086#[doc = "Carme (NAIF ID: 511)."]
3087#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3088#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3089pub struct Carme;
3090impl Origin for Carme {
3091 fn id(&self) -> NaifId {
3092 NaifId(511i32)
3093 }
3094 fn name(&self) -> &'static str {
3095 "Carme"
3096 }
3097}
3098impl Display for Carme {
3099 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3100 write!(f, "{}", self.name())
3101 }
3102}
3103impl From<Carme> for DynOrigin {
3104 fn from(_: Carme) -> Self {
3105 DynOrigin::Carme
3106 }
3107}
3108impl MeanRadius for Carme {
3109 fn mean_radius(&self) -> Distance {
3110 Distance::kilometers(15f64)
3111 }
3112}
3113impl TriaxialEllipsoid for Carme {
3114 fn radii(&self) -> Radii {
3115 (
3116 Distance::kilometers(15f64),
3117 Distance::kilometers(15f64),
3118 Distance::kilometers(15f64),
3119 )
3120 }
3121}
3122impl Spheroid for Carme {}
3123#[doc = "Ananke (NAIF ID: 512)."]
3124#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3125#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3126pub struct Ananke;
3127impl Origin for Ananke {
3128 fn id(&self) -> NaifId {
3129 NaifId(512i32)
3130 }
3131 fn name(&self) -> &'static str {
3132 "Ananke"
3133 }
3134}
3135impl Display for Ananke {
3136 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3137 write!(f, "{}", self.name())
3138 }
3139}
3140impl From<Ananke> for DynOrigin {
3141 fn from(_: Ananke) -> Self {
3142 DynOrigin::Ananke
3143 }
3144}
3145impl MeanRadius for Ananke {
3146 fn mean_radius(&self) -> Distance {
3147 Distance::kilometers(10f64)
3148 }
3149}
3150impl TriaxialEllipsoid for Ananke {
3151 fn radii(&self) -> Radii {
3152 (
3153 Distance::kilometers(10f64),
3154 Distance::kilometers(10f64),
3155 Distance::kilometers(10f64),
3156 )
3157 }
3158}
3159impl Spheroid for Ananke {}
3160#[doc = "Leda (NAIF ID: 513)."]
3161#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3162#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3163pub struct Leda;
3164impl Origin for Leda {
3165 fn id(&self) -> NaifId {
3166 NaifId(513i32)
3167 }
3168 fn name(&self) -> &'static str {
3169 "Leda"
3170 }
3171}
3172impl Display for Leda {
3173 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3174 write!(f, "{}", self.name())
3175 }
3176}
3177impl From<Leda> for DynOrigin {
3178 fn from(_: Leda) -> Self {
3179 DynOrigin::Leda
3180 }
3181}
3182impl MeanRadius for Leda {
3183 fn mean_radius(&self) -> Distance {
3184 Distance::kilometers(5f64)
3185 }
3186}
3187impl TriaxialEllipsoid for Leda {
3188 fn radii(&self) -> Radii {
3189 (
3190 Distance::kilometers(5f64),
3191 Distance::kilometers(5f64),
3192 Distance::kilometers(5f64),
3193 )
3194 }
3195}
3196impl Spheroid for Leda {}
3197#[doc = "Thebe (NAIF ID: 514)."]
3198#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3199#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3200pub struct Thebe;
3201impl Origin for Thebe {
3202 fn id(&self) -> NaifId {
3203 NaifId(514i32)
3204 }
3205 fn name(&self) -> &'static str {
3206 "Thebe"
3207 }
3208}
3209impl Display for Thebe {
3210 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3211 write!(f, "{}", self.name())
3212 }
3213}
3214impl From<Thebe> for DynOrigin {
3215 fn from(_: Thebe) -> Self {
3216 DynOrigin::Thebe
3217 }
3218}
3219impl PointMass for Thebe {
3220 fn gravitational_parameter(&self) -> GravitationalParameter {
3221 GravitationalParameter::km3_per_s2(0.030148f64)
3222 }
3223}
3224impl MeanRadius for Thebe {
3225 fn mean_radius(&self) -> Distance {
3226 Distance::kilometers(49.3f64)
3227 }
3228}
3229impl TriaxialEllipsoid for Thebe {
3230 fn radii(&self) -> Radii {
3231 (
3232 Distance::kilometers(58f64),
3233 Distance::kilometers(49f64),
3234 Distance::kilometers(42f64),
3235 )
3236 }
3237}
3238const RIGHT_ASCENSION_THEBE: RotationalElement<10usize> = RotationalElement {
3239 typ: RotationalElementType::RightAscension,
3240 c0: 4.678355059970801f64,
3241 c1: -0.00015707963267948965f64,
3242 c2: 0f64,
3243 c: [
3244 0f64,
3245 -0.03682644721708035f64,
3246 0f64,
3247 0f64,
3248 0f64,
3249 0f64,
3250 0f64,
3251 0f64,
3252 0f64,
3253 0.0006981317007977319f64,
3254 ],
3255 theta0: [
3256 1.2796754075622423f64,
3257 0.42970006184100396f64,
3258 4.9549897464119015f64,
3259 6.2098814785958245f64,
3260 2.092649773141201f64,
3261 4.010766621082969f64,
3262 6.147922290150026f64,
3263 1.9783307071355725f64,
3264 2.5593508151244846f64,
3265 0.8594001236820079f64,
3266 ],
3267 theta1: [
3268 1596.503281347521f64,
3269 787.7927551311844f64,
3270 84.66068602648895f64,
3271 20.792107379008446f64,
3272 4.574507969477138f64,
3273 1.1222467090323538f64,
3274 41.58421475801689f64,
3275 105.9414855960558f64,
3276 3193.006562695042f64,
3277 1575.5855102623689f64,
3278 ],
3279};
3280const DECLINATION_THEBE: RotationalElement<10usize> = RotationalElement {
3281 typ: RotationalElementType::Declination,
3282 c0: 1.125562834611143f64,
3283 c1: 0.00005235987755982989f64,
3284 c2: 0f64,
3285 c: [
3286 0f64,
3287 -0.0158824961931484f64,
3288 0f64,
3289 0f64,
3290 0f64,
3291 0f64,
3292 0f64,
3293 0f64,
3294 0f64,
3295 0.00017453292519943296f64,
3296 ],
3297 theta0: [
3298 1.2796754075622423f64,
3299 0.42970006184100396f64,
3300 4.9549897464119015f64,
3301 6.2098814785958245f64,
3302 2.092649773141201f64,
3303 4.010766621082969f64,
3304 6.147922290150026f64,
3305 1.9783307071355725f64,
3306 2.5593508151244846f64,
3307 0.8594001236820079f64,
3308 ],
3309 theta1: [
3310 1596.503281347521f64,
3311 787.7927551311844f64,
3312 84.66068602648895f64,
3313 20.792107379008446f64,
3314 4.574507969477138f64,
3315 1.1222467090323538f64,
3316 41.58421475801689f64,
3317 105.9414855960558f64,
3318 3193.006562695042f64,
3319 1575.5855102623689f64,
3320 ],
3321};
3322const ROTATION_THEBE: RotationalElement<10usize> = RotationalElement {
3323 typ: RotationalElementType::Rotation,
3324 c0: 0.1494001839707146f64,
3325 c1: 9.31482937374367f64,
3326 c2: 0f64,
3327 c: [
3328 0f64,
3329 0.033335788713091695f64,
3330 0f64,
3331 0f64,
3332 0f64,
3333 0f64,
3334 0f64,
3335 0f64,
3336 0f64,
3337 -0.0006981317007977319f64,
3338 ],
3339 theta0: [
3340 1.2796754075622423f64,
3341 0.42970006184100396f64,
3342 4.9549897464119015f64,
3343 6.2098814785958245f64,
3344 2.092649773141201f64,
3345 4.010766621082969f64,
3346 6.147922290150026f64,
3347 1.9783307071355725f64,
3348 2.5593508151244846f64,
3349 0.8594001236820079f64,
3350 ],
3351 theta1: [
3352 1596.503281347521f64,
3353 787.7927551311844f64,
3354 84.66068602648895f64,
3355 20.792107379008446f64,
3356 4.574507969477138f64,
3357 1.1222467090323538f64,
3358 41.58421475801689f64,
3359 105.9414855960558f64,
3360 3193.006562695042f64,
3361 1575.5855102623689f64,
3362 ],
3363};
3364impl RotationalElements for Thebe {
3365 fn rotational_elements(&self, t: f64) -> Elements {
3366 (
3367 RIGHT_ASCENSION_THEBE.angle(t),
3368 DECLINATION_THEBE.angle(t),
3369 ROTATION_THEBE.angle(t),
3370 )
3371 }
3372 fn rotational_element_rates(&self, t: f64) -> Elements {
3373 (
3374 RIGHT_ASCENSION_THEBE.angle_dot(t),
3375 DECLINATION_THEBE.angle_dot(t),
3376 ROTATION_THEBE.angle_dot(t),
3377 )
3378 }
3379}
3380#[doc = "Adrastea (NAIF ID: 515)."]
3381#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3382#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3383pub struct Adrastea;
3384impl Origin for Adrastea {
3385 fn id(&self) -> NaifId {
3386 NaifId(515i32)
3387 }
3388 fn name(&self) -> &'static str {
3389 "Adrastea"
3390 }
3391}
3392impl Display for Adrastea {
3393 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3394 write!(f, "{}", self.name())
3395 }
3396}
3397impl From<Adrastea> for DynOrigin {
3398 fn from(_: Adrastea) -> Self {
3399 DynOrigin::Adrastea
3400 }
3401}
3402impl PointMass for Adrastea {
3403 fn gravitational_parameter(&self) -> GravitationalParameter {
3404 GravitationalParameter::km3_per_s2(0.000139f64)
3405 }
3406}
3407impl MeanRadius for Adrastea {
3408 fn mean_radius(&self) -> Distance {
3409 Distance::kilometers(8.2f64)
3410 }
3411}
3412impl TriaxialEllipsoid for Adrastea {
3413 fn radii(&self) -> Radii {
3414 (
3415 Distance::kilometers(10f64),
3416 Distance::kilometers(8f64),
3417 Distance::kilometers(7f64),
3418 )
3419 }
3420}
3421const RIGHT_ASCENSION_ADRASTEA: RotationalElement<0usize> = RotationalElement {
3422 typ: RotationalElementType::RightAscension,
3423 c0: 4.678355059970801f64,
3424 c1: -0.00015707963267948965f64,
3425 c2: 0f64,
3426 c: [],
3427 theta0: [],
3428 theta1: [],
3429};
3430const DECLINATION_ADRASTEA: RotationalElement<0usize> = RotationalElement {
3431 typ: RotationalElementType::Declination,
3432 c0: 1.125562834611143f64,
3433 c1: 0.00005235987755982989f64,
3434 c2: 0f64,
3435 c: [],
3436 theta0: [],
3437 theta1: [],
3438};
3439const ROTATION_ADRASTEA: RotationalElement<0usize> = RotationalElement {
3440 typ: RotationalElementType::Rotation,
3441 c0: 0.5810201079889122f64,
3442 c1: 21.066100687650238f64,
3443 c2: 0f64,
3444 c: [],
3445 theta0: [],
3446 theta1: [],
3447};
3448impl RotationalElements for Adrastea {
3449 fn rotational_elements(&self, t: f64) -> Elements {
3450 (
3451 RIGHT_ASCENSION_ADRASTEA.angle(t),
3452 DECLINATION_ADRASTEA.angle(t),
3453 ROTATION_ADRASTEA.angle(t),
3454 )
3455 }
3456 fn rotational_element_rates(&self, t: f64) -> Elements {
3457 (
3458 RIGHT_ASCENSION_ADRASTEA.angle_dot(t),
3459 DECLINATION_ADRASTEA.angle_dot(t),
3460 ROTATION_ADRASTEA.angle_dot(t),
3461 )
3462 }
3463}
3464#[doc = "Metis (NAIF ID: 516)."]
3465#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3466#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3467pub struct Metis;
3468impl Origin for Metis {
3469 fn id(&self) -> NaifId {
3470 NaifId(516i32)
3471 }
3472 fn name(&self) -> &'static str {
3473 "Metis"
3474 }
3475}
3476impl Display for Metis {
3477 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3478 write!(f, "{}", self.name())
3479 }
3480}
3481impl From<Metis> for DynOrigin {
3482 fn from(_: Metis) -> Self {
3483 DynOrigin::Metis
3484 }
3485}
3486impl PointMass for Metis {
3487 fn gravitational_parameter(&self) -> GravitationalParameter {
3488 GravitationalParameter::km3_per_s2(0.002501f64)
3489 }
3490}
3491impl MeanRadius for Metis {
3492 fn mean_radius(&self) -> Distance {
3493 Distance::kilometers(21.5f64)
3494 }
3495}
3496impl TriaxialEllipsoid for Metis {
3497 fn radii(&self) -> Radii {
3498 (
3499 Distance::kilometers(30f64),
3500 Distance::kilometers(20f64),
3501 Distance::kilometers(17f64),
3502 )
3503 }
3504}
3505const RIGHT_ASCENSION_METIS: RotationalElement<0usize> = RotationalElement {
3506 typ: RotationalElementType::RightAscension,
3507 c0: 4.678355059970801f64,
3508 c1: -0.00015707963267948965f64,
3509 c2: 0f64,
3510 c: [],
3511 theta0: [],
3512 theta1: [],
3513};
3514const DECLINATION_METIS: RotationalElement<0usize> = RotationalElement {
3515 typ: RotationalElementType::Declination,
3516 c0: 1.125562834611143f64,
3517 c1: 0.00005235987755982989f64,
3518 c2: 0f64,
3519 c: [],
3520 theta0: [],
3521 theta1: [],
3522};
3523const ROTATION_METIS: RotationalElement<0usize> = RotationalElement {
3524 typ: RotationalElementType::Rotation,
3525 c0: 6.040410008227175f64,
3526 c1: 21.3149160457997f64,
3527 c2: 0f64,
3528 c: [],
3529 theta0: [],
3530 theta1: [],
3531};
3532impl RotationalElements for Metis {
3533 fn rotational_elements(&self, t: f64) -> Elements {
3534 (
3535 RIGHT_ASCENSION_METIS.angle(t),
3536 DECLINATION_METIS.angle(t),
3537 ROTATION_METIS.angle(t),
3538 )
3539 }
3540 fn rotational_element_rates(&self, t: f64) -> Elements {
3541 (
3542 RIGHT_ASCENSION_METIS.angle_dot(t),
3543 DECLINATION_METIS.angle_dot(t),
3544 ROTATION_METIS.angle_dot(t),
3545 )
3546 }
3547}
3548#[doc = "Callirrhoe (NAIF ID: 517)."]
3549#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3550#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3551pub struct Callirrhoe;
3552impl Origin for Callirrhoe {
3553 fn id(&self) -> NaifId {
3554 NaifId(517i32)
3555 }
3556 fn name(&self) -> &'static str {
3557 "Callirrhoe"
3558 }
3559}
3560impl Display for Callirrhoe {
3561 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3562 write!(f, "{}", self.name())
3563 }
3564}
3565impl From<Callirrhoe> for DynOrigin {
3566 fn from(_: Callirrhoe) -> Self {
3567 DynOrigin::Callirrhoe
3568 }
3569}
3570#[doc = "Themisto (NAIF ID: 518)."]
3571#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3572#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3573pub struct Themisto;
3574impl Origin for Themisto {
3575 fn id(&self) -> NaifId {
3576 NaifId(518i32)
3577 }
3578 fn name(&self) -> &'static str {
3579 "Themisto"
3580 }
3581}
3582impl Display for Themisto {
3583 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3584 write!(f, "{}", self.name())
3585 }
3586}
3587impl From<Themisto> for DynOrigin {
3588 fn from(_: Themisto) -> Self {
3589 DynOrigin::Themisto
3590 }
3591}
3592#[doc = "Magaclite (NAIF ID: 519)."]
3593#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3594#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3595pub struct Magaclite;
3596impl Origin for Magaclite {
3597 fn id(&self) -> NaifId {
3598 NaifId(519i32)
3599 }
3600 fn name(&self) -> &'static str {
3601 "Magaclite"
3602 }
3603}
3604impl Display for Magaclite {
3605 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3606 write!(f, "{}", self.name())
3607 }
3608}
3609impl From<Magaclite> for DynOrigin {
3610 fn from(_: Magaclite) -> Self {
3611 DynOrigin::Magaclite
3612 }
3613}
3614#[doc = "Taygete (NAIF ID: 520)."]
3615#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3616#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3617pub struct Taygete;
3618impl Origin for Taygete {
3619 fn id(&self) -> NaifId {
3620 NaifId(520i32)
3621 }
3622 fn name(&self) -> &'static str {
3623 "Taygete"
3624 }
3625}
3626impl Display for Taygete {
3627 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3628 write!(f, "{}", self.name())
3629 }
3630}
3631impl From<Taygete> for DynOrigin {
3632 fn from(_: Taygete) -> Self {
3633 DynOrigin::Taygete
3634 }
3635}
3636#[doc = "Chaldene (NAIF ID: 521)."]
3637#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3638#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3639pub struct Chaldene;
3640impl Origin for Chaldene {
3641 fn id(&self) -> NaifId {
3642 NaifId(521i32)
3643 }
3644 fn name(&self) -> &'static str {
3645 "Chaldene"
3646 }
3647}
3648impl Display for Chaldene {
3649 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3650 write!(f, "{}", self.name())
3651 }
3652}
3653impl From<Chaldene> for DynOrigin {
3654 fn from(_: Chaldene) -> Self {
3655 DynOrigin::Chaldene
3656 }
3657}
3658#[doc = "Harpalyke (NAIF ID: 522)."]
3659#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3660#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3661pub struct Harpalyke;
3662impl Origin for Harpalyke {
3663 fn id(&self) -> NaifId {
3664 NaifId(522i32)
3665 }
3666 fn name(&self) -> &'static str {
3667 "Harpalyke"
3668 }
3669}
3670impl Display for Harpalyke {
3671 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3672 write!(f, "{}", self.name())
3673 }
3674}
3675impl From<Harpalyke> for DynOrigin {
3676 fn from(_: Harpalyke) -> Self {
3677 DynOrigin::Harpalyke
3678 }
3679}
3680#[doc = "Kalyke (NAIF ID: 523)."]
3681#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3682#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3683pub struct Kalyke;
3684impl Origin for Kalyke {
3685 fn id(&self) -> NaifId {
3686 NaifId(523i32)
3687 }
3688 fn name(&self) -> &'static str {
3689 "Kalyke"
3690 }
3691}
3692impl Display for Kalyke {
3693 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3694 write!(f, "{}", self.name())
3695 }
3696}
3697impl From<Kalyke> for DynOrigin {
3698 fn from(_: Kalyke) -> Self {
3699 DynOrigin::Kalyke
3700 }
3701}
3702#[doc = "Iocaste (NAIF ID: 524)."]
3703#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3704#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3705pub struct Iocaste;
3706impl Origin for Iocaste {
3707 fn id(&self) -> NaifId {
3708 NaifId(524i32)
3709 }
3710 fn name(&self) -> &'static str {
3711 "Iocaste"
3712 }
3713}
3714impl Display for Iocaste {
3715 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3716 write!(f, "{}", self.name())
3717 }
3718}
3719impl From<Iocaste> for DynOrigin {
3720 fn from(_: Iocaste) -> Self {
3721 DynOrigin::Iocaste
3722 }
3723}
3724#[doc = "Erinome (NAIF ID: 525)."]
3725#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3726#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3727pub struct Erinome;
3728impl Origin for Erinome {
3729 fn id(&self) -> NaifId {
3730 NaifId(525i32)
3731 }
3732 fn name(&self) -> &'static str {
3733 "Erinome"
3734 }
3735}
3736impl Display for Erinome {
3737 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3738 write!(f, "{}", self.name())
3739 }
3740}
3741impl From<Erinome> for DynOrigin {
3742 fn from(_: Erinome) -> Self {
3743 DynOrigin::Erinome
3744 }
3745}
3746#[doc = "Isonoe (NAIF ID: 526)."]
3747#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3748#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3749pub struct Isonoe;
3750impl Origin for Isonoe {
3751 fn id(&self) -> NaifId {
3752 NaifId(526i32)
3753 }
3754 fn name(&self) -> &'static str {
3755 "Isonoe"
3756 }
3757}
3758impl Display for Isonoe {
3759 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3760 write!(f, "{}", self.name())
3761 }
3762}
3763impl From<Isonoe> for DynOrigin {
3764 fn from(_: Isonoe) -> Self {
3765 DynOrigin::Isonoe
3766 }
3767}
3768#[doc = "Praxidike (NAIF ID: 527)."]
3769#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3770#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3771pub struct Praxidike;
3772impl Origin for Praxidike {
3773 fn id(&self) -> NaifId {
3774 NaifId(527i32)
3775 }
3776 fn name(&self) -> &'static str {
3777 "Praxidike"
3778 }
3779}
3780impl Display for Praxidike {
3781 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3782 write!(f, "{}", self.name())
3783 }
3784}
3785impl From<Praxidike> for DynOrigin {
3786 fn from(_: Praxidike) -> Self {
3787 DynOrigin::Praxidike
3788 }
3789}
3790#[doc = "Autonoe (NAIF ID: 528)."]
3791#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3792#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3793pub struct Autonoe;
3794impl Origin for Autonoe {
3795 fn id(&self) -> NaifId {
3796 NaifId(528i32)
3797 }
3798 fn name(&self) -> &'static str {
3799 "Autonoe"
3800 }
3801}
3802impl Display for Autonoe {
3803 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3804 write!(f, "{}", self.name())
3805 }
3806}
3807impl From<Autonoe> for DynOrigin {
3808 fn from(_: Autonoe) -> Self {
3809 DynOrigin::Autonoe
3810 }
3811}
3812#[doc = "Thyone (NAIF ID: 529)."]
3813#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3814#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3815pub struct Thyone;
3816impl Origin for Thyone {
3817 fn id(&self) -> NaifId {
3818 NaifId(529i32)
3819 }
3820 fn name(&self) -> &'static str {
3821 "Thyone"
3822 }
3823}
3824impl Display for Thyone {
3825 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3826 write!(f, "{}", self.name())
3827 }
3828}
3829impl From<Thyone> for DynOrigin {
3830 fn from(_: Thyone) -> Self {
3831 DynOrigin::Thyone
3832 }
3833}
3834#[doc = "Hermippe (NAIF ID: 530)."]
3835#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3836#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3837pub struct Hermippe;
3838impl Origin for Hermippe {
3839 fn id(&self) -> NaifId {
3840 NaifId(530i32)
3841 }
3842 fn name(&self) -> &'static str {
3843 "Hermippe"
3844 }
3845}
3846impl Display for Hermippe {
3847 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3848 write!(f, "{}", self.name())
3849 }
3850}
3851impl From<Hermippe> for DynOrigin {
3852 fn from(_: Hermippe) -> Self {
3853 DynOrigin::Hermippe
3854 }
3855}
3856#[doc = "Aitne (NAIF ID: 531)."]
3857#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3858#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3859pub struct Aitne;
3860impl Origin for Aitne {
3861 fn id(&self) -> NaifId {
3862 NaifId(531i32)
3863 }
3864 fn name(&self) -> &'static str {
3865 "Aitne"
3866 }
3867}
3868impl Display for Aitne {
3869 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3870 write!(f, "{}", self.name())
3871 }
3872}
3873impl From<Aitne> for DynOrigin {
3874 fn from(_: Aitne) -> Self {
3875 DynOrigin::Aitne
3876 }
3877}
3878#[doc = "Eurydome (NAIF ID: 532)."]
3879#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3880#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3881pub struct Eurydome;
3882impl Origin for Eurydome {
3883 fn id(&self) -> NaifId {
3884 NaifId(532i32)
3885 }
3886 fn name(&self) -> &'static str {
3887 "Eurydome"
3888 }
3889}
3890impl Display for Eurydome {
3891 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3892 write!(f, "{}", self.name())
3893 }
3894}
3895impl From<Eurydome> for DynOrigin {
3896 fn from(_: Eurydome) -> Self {
3897 DynOrigin::Eurydome
3898 }
3899}
3900#[doc = "Euanthe (NAIF ID: 533)."]
3901#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3902#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3903pub struct Euanthe;
3904impl Origin for Euanthe {
3905 fn id(&self) -> NaifId {
3906 NaifId(533i32)
3907 }
3908 fn name(&self) -> &'static str {
3909 "Euanthe"
3910 }
3911}
3912impl Display for Euanthe {
3913 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3914 write!(f, "{}", self.name())
3915 }
3916}
3917impl From<Euanthe> for DynOrigin {
3918 fn from(_: Euanthe) -> Self {
3919 DynOrigin::Euanthe
3920 }
3921}
3922#[doc = "Euporie (NAIF ID: 534)."]
3923#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3924#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3925pub struct Euporie;
3926impl Origin for Euporie {
3927 fn id(&self) -> NaifId {
3928 NaifId(534i32)
3929 }
3930 fn name(&self) -> &'static str {
3931 "Euporie"
3932 }
3933}
3934impl Display for Euporie {
3935 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3936 write!(f, "{}", self.name())
3937 }
3938}
3939impl From<Euporie> for DynOrigin {
3940 fn from(_: Euporie) -> Self {
3941 DynOrigin::Euporie
3942 }
3943}
3944#[doc = "Orthosie (NAIF ID: 535)."]
3945#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3946#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3947pub struct Orthosie;
3948impl Origin for Orthosie {
3949 fn id(&self) -> NaifId {
3950 NaifId(535i32)
3951 }
3952 fn name(&self) -> &'static str {
3953 "Orthosie"
3954 }
3955}
3956impl Display for Orthosie {
3957 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3958 write!(f, "{}", self.name())
3959 }
3960}
3961impl From<Orthosie> for DynOrigin {
3962 fn from(_: Orthosie) -> Self {
3963 DynOrigin::Orthosie
3964 }
3965}
3966#[doc = "Sponde (NAIF ID: 536)."]
3967#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3968#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3969pub struct Sponde;
3970impl Origin for Sponde {
3971 fn id(&self) -> NaifId {
3972 NaifId(536i32)
3973 }
3974 fn name(&self) -> &'static str {
3975 "Sponde"
3976 }
3977}
3978impl Display for Sponde {
3979 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
3980 write!(f, "{}", self.name())
3981 }
3982}
3983impl From<Sponde> for DynOrigin {
3984 fn from(_: Sponde) -> Self {
3985 DynOrigin::Sponde
3986 }
3987}
3988#[doc = "Kale (NAIF ID: 537)."]
3989#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3990#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3991pub struct Kale;
3992impl Origin for Kale {
3993 fn id(&self) -> NaifId {
3994 NaifId(537i32)
3995 }
3996 fn name(&self) -> &'static str {
3997 "Kale"
3998 }
3999}
4000impl Display for Kale {
4001 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4002 write!(f, "{}", self.name())
4003 }
4004}
4005impl From<Kale> for DynOrigin {
4006 fn from(_: Kale) -> Self {
4007 DynOrigin::Kale
4008 }
4009}
4010#[doc = "Pasithee (NAIF ID: 538)."]
4011#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4012#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4013pub struct Pasithee;
4014impl Origin for Pasithee {
4015 fn id(&self) -> NaifId {
4016 NaifId(538i32)
4017 }
4018 fn name(&self) -> &'static str {
4019 "Pasithee"
4020 }
4021}
4022impl Display for Pasithee {
4023 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4024 write!(f, "{}", self.name())
4025 }
4026}
4027impl From<Pasithee> for DynOrigin {
4028 fn from(_: Pasithee) -> Self {
4029 DynOrigin::Pasithee
4030 }
4031}
4032#[doc = "Hegemone (NAIF ID: 539)."]
4033#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4034#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4035pub struct Hegemone;
4036impl Origin for Hegemone {
4037 fn id(&self) -> NaifId {
4038 NaifId(539i32)
4039 }
4040 fn name(&self) -> &'static str {
4041 "Hegemone"
4042 }
4043}
4044impl Display for Hegemone {
4045 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4046 write!(f, "{}", self.name())
4047 }
4048}
4049impl From<Hegemone> for DynOrigin {
4050 fn from(_: Hegemone) -> Self {
4051 DynOrigin::Hegemone
4052 }
4053}
4054#[doc = "Mneme (NAIF ID: 540)."]
4055#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4056#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4057pub struct Mneme;
4058impl Origin for Mneme {
4059 fn id(&self) -> NaifId {
4060 NaifId(540i32)
4061 }
4062 fn name(&self) -> &'static str {
4063 "Mneme"
4064 }
4065}
4066impl Display for Mneme {
4067 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4068 write!(f, "{}", self.name())
4069 }
4070}
4071impl From<Mneme> for DynOrigin {
4072 fn from(_: Mneme) -> Self {
4073 DynOrigin::Mneme
4074 }
4075}
4076#[doc = "Aoede (NAIF ID: 541)."]
4077#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4078#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4079pub struct Aoede;
4080impl Origin for Aoede {
4081 fn id(&self) -> NaifId {
4082 NaifId(541i32)
4083 }
4084 fn name(&self) -> &'static str {
4085 "Aoede"
4086 }
4087}
4088impl Display for Aoede {
4089 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4090 write!(f, "{}", self.name())
4091 }
4092}
4093impl From<Aoede> for DynOrigin {
4094 fn from(_: Aoede) -> Self {
4095 DynOrigin::Aoede
4096 }
4097}
4098#[doc = "Thelxinoe (NAIF ID: 542)."]
4099#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4100#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4101pub struct Thelxinoe;
4102impl Origin for Thelxinoe {
4103 fn id(&self) -> NaifId {
4104 NaifId(542i32)
4105 }
4106 fn name(&self) -> &'static str {
4107 "Thelxinoe"
4108 }
4109}
4110impl Display for Thelxinoe {
4111 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4112 write!(f, "{}", self.name())
4113 }
4114}
4115impl From<Thelxinoe> for DynOrigin {
4116 fn from(_: Thelxinoe) -> Self {
4117 DynOrigin::Thelxinoe
4118 }
4119}
4120#[doc = "Arche (NAIF ID: 543)."]
4121#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4122#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4123pub struct Arche;
4124impl Origin for Arche {
4125 fn id(&self) -> NaifId {
4126 NaifId(543i32)
4127 }
4128 fn name(&self) -> &'static str {
4129 "Arche"
4130 }
4131}
4132impl Display for Arche {
4133 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4134 write!(f, "{}", self.name())
4135 }
4136}
4137impl From<Arche> for DynOrigin {
4138 fn from(_: Arche) -> Self {
4139 DynOrigin::Arche
4140 }
4141}
4142#[doc = "Kallichore (NAIF ID: 544)."]
4143#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4144#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4145pub struct Kallichore;
4146impl Origin for Kallichore {
4147 fn id(&self) -> NaifId {
4148 NaifId(544i32)
4149 }
4150 fn name(&self) -> &'static str {
4151 "Kallichore"
4152 }
4153}
4154impl Display for Kallichore {
4155 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4156 write!(f, "{}", self.name())
4157 }
4158}
4159impl From<Kallichore> for DynOrigin {
4160 fn from(_: Kallichore) -> Self {
4161 DynOrigin::Kallichore
4162 }
4163}
4164#[doc = "Helike (NAIF ID: 545)."]
4165#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4166#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4167pub struct Helike;
4168impl Origin for Helike {
4169 fn id(&self) -> NaifId {
4170 NaifId(545i32)
4171 }
4172 fn name(&self) -> &'static str {
4173 "Helike"
4174 }
4175}
4176impl Display for Helike {
4177 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4178 write!(f, "{}", self.name())
4179 }
4180}
4181impl From<Helike> for DynOrigin {
4182 fn from(_: Helike) -> Self {
4183 DynOrigin::Helike
4184 }
4185}
4186#[doc = "Carpo (NAIF ID: 546)."]
4187#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4188#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4189pub struct Carpo;
4190impl Origin for Carpo {
4191 fn id(&self) -> NaifId {
4192 NaifId(546i32)
4193 }
4194 fn name(&self) -> &'static str {
4195 "Carpo"
4196 }
4197}
4198impl Display for Carpo {
4199 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4200 write!(f, "{}", self.name())
4201 }
4202}
4203impl From<Carpo> for DynOrigin {
4204 fn from(_: Carpo) -> Self {
4205 DynOrigin::Carpo
4206 }
4207}
4208#[doc = "Eukelade (NAIF ID: 547)."]
4209#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4210#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4211pub struct Eukelade;
4212impl Origin for Eukelade {
4213 fn id(&self) -> NaifId {
4214 NaifId(547i32)
4215 }
4216 fn name(&self) -> &'static str {
4217 "Eukelade"
4218 }
4219}
4220impl Display for Eukelade {
4221 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4222 write!(f, "{}", self.name())
4223 }
4224}
4225impl From<Eukelade> for DynOrigin {
4226 fn from(_: Eukelade) -> Self {
4227 DynOrigin::Eukelade
4228 }
4229}
4230#[doc = "Cyllene (NAIF ID: 548)."]
4231#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4232#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4233pub struct Cyllene;
4234impl Origin for Cyllene {
4235 fn id(&self) -> NaifId {
4236 NaifId(548i32)
4237 }
4238 fn name(&self) -> &'static str {
4239 "Cyllene"
4240 }
4241}
4242impl Display for Cyllene {
4243 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4244 write!(f, "{}", self.name())
4245 }
4246}
4247impl From<Cyllene> for DynOrigin {
4248 fn from(_: Cyllene) -> Self {
4249 DynOrigin::Cyllene
4250 }
4251}
4252#[doc = "Kore (NAIF ID: 549)."]
4253#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4254#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4255pub struct Kore;
4256impl Origin for Kore {
4257 fn id(&self) -> NaifId {
4258 NaifId(549i32)
4259 }
4260 fn name(&self) -> &'static str {
4261 "Kore"
4262 }
4263}
4264impl Display for Kore {
4265 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4266 write!(f, "{}", self.name())
4267 }
4268}
4269impl From<Kore> for DynOrigin {
4270 fn from(_: Kore) -> Self {
4271 DynOrigin::Kore
4272 }
4273}
4274#[doc = "Herse (NAIF ID: 550)."]
4275#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4276#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4277pub struct Herse;
4278impl Origin for Herse {
4279 fn id(&self) -> NaifId {
4280 NaifId(550i32)
4281 }
4282 fn name(&self) -> &'static str {
4283 "Herse"
4284 }
4285}
4286impl Display for Herse {
4287 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4288 write!(f, "{}", self.name())
4289 }
4290}
4291impl From<Herse> for DynOrigin {
4292 fn from(_: Herse) -> Self {
4293 DynOrigin::Herse
4294 }
4295}
4296#[doc = "Dia (NAIF ID: 553)."]
4297#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4298#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4299pub struct Dia;
4300impl Origin for Dia {
4301 fn id(&self) -> NaifId {
4302 NaifId(553i32)
4303 }
4304 fn name(&self) -> &'static str {
4305 "Dia"
4306 }
4307}
4308impl Display for Dia {
4309 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4310 write!(f, "{}", self.name())
4311 }
4312}
4313impl From<Dia> for DynOrigin {
4314 fn from(_: Dia) -> Self {
4315 DynOrigin::Dia
4316 }
4317}
4318#[doc = "Mimas (NAIF ID: 601)."]
4319#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4320#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4321pub struct Mimas;
4322impl Origin for Mimas {
4323 fn id(&self) -> NaifId {
4324 NaifId(601i32)
4325 }
4326 fn name(&self) -> &'static str {
4327 "Mimas"
4328 }
4329}
4330impl Display for Mimas {
4331 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4332 write!(f, "{}", self.name())
4333 }
4334}
4335impl From<Mimas> for DynOrigin {
4336 fn from(_: Mimas) -> Self {
4337 DynOrigin::Mimas
4338 }
4339}
4340impl PointMass for Mimas {
4341 fn gravitational_parameter(&self) -> GravitationalParameter {
4342 GravitationalParameter::km3_per_s2(2.503488768152587f64)
4343 }
4344}
4345impl MeanRadius for Mimas {
4346 fn mean_radius(&self) -> Distance {
4347 Distance::kilometers(198.2f64)
4348 }
4349}
4350impl TriaxialEllipsoid for Mimas {
4351 fn radii(&self) -> Radii {
4352 (
4353 Distance::kilometers(207.8f64),
4354 Distance::kilometers(196.7f64),
4355 Distance::kilometers(190.6f64),
4356 )
4357 }
4358}
4359const RIGHT_ASCENSION_MIMAS: RotationalElement<8usize> = RotationalElement {
4360 typ: RotationalElementType::RightAscension,
4361 c0: 0.7096508738608943f64,
4362 c1: -0.0006283185307179586f64,
4363 c2: 0f64,
4364 c: [
4365 0f64,
4366 0f64,
4367 0.2366666465704311f64,
4368 0f64,
4369 0f64,
4370 0f64,
4371 0f64,
4372 0f64,
4373 ],
4374 theta0: [
4375 6.166597313146365f64,
4376 0.5012585611727715f64,
4377 3.0962140930379407f64,
4378 5.235987755982989f64,
4379 5.523094417936056f64,
4380 6.0248765778844255f64,
4381 12.33319462629273f64,
4382 1.002517122345543f64,
4383 ],
4384 theta1: [
4385 1321.331180819591f64,
4386 1321.331180819591f64,
4387 -637.14117008679f64,
4388 -126.11574641985825f64,
4389 8.834856673595295f64,
4390 -17.73778118801837f64,
4391 2642.662361639182f64,
4392 2642.662361639182f64,
4393 ],
4394};
4395const DECLINATION_MIMAS: RotationalElement<8usize> = RotationalElement {
4396 typ: RotationalElementType::Declination,
4397 c0: 1.457698991265664f64,
4398 c1: -0.00006981317007977319f64,
4399 c2: 0f64,
4400 c: [
4401 0f64,
4402 0f64,
4403 -0.026703537555513242f64,
4404 0f64,
4405 0f64,
4406 0f64,
4407 0f64,
4408 0f64,
4409 ],
4410 theta0: [
4411 6.166597313146365f64,
4412 0.5012585611727715f64,
4413 3.0962140930379407f64,
4414 5.235987755982989f64,
4415 5.523094417936056f64,
4416 6.0248765778844255f64,
4417 12.33319462629273f64,
4418 1.002517122345543f64,
4419 ],
4420 theta1: [
4421 1321.331180819591f64,
4422 1321.331180819591f64,
4423 -637.14117008679f64,
4424 -126.11574641985825f64,
4425 8.834856673595295f64,
4426 -17.73778118801837f64,
4427 2642.662361639182f64,
4428 2642.662361639182f64,
4429 ],
4430};
4431const ROTATION_MIMAS: RotationalElement<8usize> = RotationalElement {
4432 typ: RotationalElementType::Rotation,
4433 c0: 5.819974923700291f64,
4434 c1: 6.667062709440567f64,
4435 c2: 0f64,
4436 c: [
4437 0f64,
4438 0f64,
4439 -0.23527038316883564f64,
4440 0f64,
4441 -0.7827801695194568f64,
4442 0f64,
4443 0f64,
4444 0f64,
4445 ],
4446 theta0: [
4447 6.166597313146365f64,
4448 0.5012585611727715f64,
4449 3.0962140930379407f64,
4450 5.235987755982989f64,
4451 5.523094417936056f64,
4452 6.0248765778844255f64,
4453 12.33319462629273f64,
4454 1.002517122345543f64,
4455 ],
4456 theta1: [
4457 1321.331180819591f64,
4458 1321.331180819591f64,
4459 -637.14117008679f64,
4460 -126.11574641985825f64,
4461 8.834856673595295f64,
4462 -17.73778118801837f64,
4463 2642.662361639182f64,
4464 2642.662361639182f64,
4465 ],
4466};
4467impl RotationalElements for Mimas {
4468 fn rotational_elements(&self, t: f64) -> Elements {
4469 (
4470 RIGHT_ASCENSION_MIMAS.angle(t),
4471 DECLINATION_MIMAS.angle(t),
4472 ROTATION_MIMAS.angle(t),
4473 )
4474 }
4475 fn rotational_element_rates(&self, t: f64) -> Elements {
4476 (
4477 RIGHT_ASCENSION_MIMAS.angle_dot(t),
4478 DECLINATION_MIMAS.angle_dot(t),
4479 ROTATION_MIMAS.angle_dot(t),
4480 )
4481 }
4482}
4483#[doc = "Enceladus (NAIF ID: 602)."]
4484#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4485#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4486pub struct Enceladus;
4487impl Origin for Enceladus {
4488 fn id(&self) -> NaifId {
4489 NaifId(602i32)
4490 }
4491 fn name(&self) -> &'static str {
4492 "Enceladus"
4493 }
4494}
4495impl Display for Enceladus {
4496 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4497 write!(f, "{}", self.name())
4498 }
4499}
4500impl From<Enceladus> for DynOrigin {
4501 fn from(_: Enceladus) -> Self {
4502 DynOrigin::Enceladus
4503 }
4504}
4505impl PointMass for Enceladus {
4506 fn gravitational_parameter(&self) -> GravitationalParameter {
4507 GravitationalParameter::km3_per_s2(7.210366688598896f64)
4508 }
4509}
4510impl MeanRadius for Enceladus {
4511 fn mean_radius(&self) -> Distance {
4512 Distance::kilometers(252.1f64)
4513 }
4514}
4515impl TriaxialEllipsoid for Enceladus {
4516 fn radii(&self) -> Radii {
4517 (
4518 Distance::kilometers(256.6f64),
4519 Distance::kilometers(251.4f64),
4520 Distance::kilometers(248.3f64),
4521 )
4522 }
4523}
4524const RIGHT_ASCENSION_ENCELADUS: RotationalElement<0usize> = RotationalElement {
4525 typ: RotationalElementType::RightAscension,
4526 c0: 0.7096508738608943f64,
4527 c1: -0.0006283185307179586f64,
4528 c2: 0f64,
4529 c: [],
4530 theta0: [],
4531 theta1: [],
4532};
4533const DECLINATION_ENCELADUS: RotationalElement<0usize> = RotationalElement {
4534 typ: RotationalElementType::Declination,
4535 c0: 1.457698991265664f64,
4536 c1: -0.00006981317007977319f64,
4537 c2: 0f64,
4538 c: [],
4539 theta0: [],
4540 theta1: [],
4541};
4542const ROTATION_ENCELADUS: RotationalElement<0usize> = RotationalElement {
4543 typ: RotationalElementType::Rotation,
4544 c0: 0.11030480872604163f64,
4545 c1: 4.585536698039173f64,
4546 c2: 0f64,
4547 c: [],
4548 theta0: [],
4549 theta1: [],
4550};
4551impl RotationalElements for Enceladus {
4552 fn rotational_elements(&self, t: f64) -> Elements {
4553 (
4554 RIGHT_ASCENSION_ENCELADUS.angle(t),
4555 DECLINATION_ENCELADUS.angle(t),
4556 ROTATION_ENCELADUS.angle(t),
4557 )
4558 }
4559 fn rotational_element_rates(&self, t: f64) -> Elements {
4560 (
4561 RIGHT_ASCENSION_ENCELADUS.angle_dot(t),
4562 DECLINATION_ENCELADUS.angle_dot(t),
4563 ROTATION_ENCELADUS.angle_dot(t),
4564 )
4565 }
4566}
4567#[doc = "Tethys (NAIF ID: 603)."]
4568#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4569#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4570pub struct Tethys;
4571impl Origin for Tethys {
4572 fn id(&self) -> NaifId {
4573 NaifId(603i32)
4574 }
4575 fn name(&self) -> &'static str {
4576 "Tethys"
4577 }
4578}
4579impl Display for Tethys {
4580 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4581 write!(f, "{}", self.name())
4582 }
4583}
4584impl From<Tethys> for DynOrigin {
4585 fn from(_: Tethys) -> Self {
4586 DynOrigin::Tethys
4587 }
4588}
4589impl PointMass for Tethys {
4590 fn gravitational_parameter(&self) -> GravitationalParameter {
4591 GravitationalParameter::km3_per_s2(41.21352885489587f64)
4592 }
4593}
4594impl MeanRadius for Tethys {
4595 fn mean_radius(&self) -> Distance {
4596 Distance::kilometers(531f64)
4597 }
4598}
4599impl TriaxialEllipsoid for Tethys {
4600 fn radii(&self) -> Radii {
4601 (
4602 Distance::kilometers(538.4f64),
4603 Distance::kilometers(528.3f64),
4604 Distance::kilometers(526.3f64),
4605 )
4606 }
4607}
4608const RIGHT_ASCENSION_TETHYS: RotationalElement<8usize> = RotationalElement {
4609 typ: RotationalElementType::RightAscension,
4610 c0: 0.7096508738608943f64,
4611 c1: -0.0006283185307179586f64,
4612 c2: 0f64,
4613 c: [
4614 0f64,
4615 0f64,
4616 0f64,
4617 0.16859880574265224f64,
4618 0f64,
4619 0f64,
4620 0f64,
4621 0f64,
4622 ],
4623 theta0: [
4624 6.166597313146365f64,
4625 0.5012585611727715f64,
4626 3.0962140930379407f64,
4627 5.235987755982989f64,
4628 5.523094417936056f64,
4629 6.0248765778844255f64,
4630 12.33319462629273f64,
4631 1.002517122345543f64,
4632 ],
4633 theta1: [
4634 1321.331180819591f64,
4635 1321.331180819591f64,
4636 -637.14117008679f64,
4637 -126.11574641985825f64,
4638 8.834856673595295f64,
4639 -17.73778118801837f64,
4640 2642.662361639182f64,
4641 2642.662361639182f64,
4642 ],
4643};
4644const DECLINATION_TETHYS: RotationalElement<8usize> = RotationalElement {
4645 typ: RotationalElementType::Declination,
4646 c0: 1.457698991265664f64,
4647 c1: -0.00006981317007977319f64,
4648 c2: 0f64,
4649 c: [
4650 0f64,
4651 0f64,
4652 0f64,
4653 -0.019024088846738195f64,
4654 0f64,
4655 0f64,
4656 0f64,
4657 0f64,
4658 ],
4659 theta0: [
4660 6.166597313146365f64,
4661 0.5012585611727715f64,
4662 3.0962140930379407f64,
4663 5.235987755982989f64,
4664 5.523094417936056f64,
4665 6.0248765778844255f64,
4666 12.33319462629273f64,
4667 1.002517122345543f64,
4668 ],
4669 theta1: [
4670 1321.331180819591f64,
4671 1321.331180819591f64,
4672 -637.14117008679f64,
4673 -126.11574641985825f64,
4674 8.834856673595295f64,
4675 -17.73778118801837f64,
4676 2642.662361639182f64,
4677 2642.662361639182f64,
4678 ],
4679};
4680const ROTATION_TETHYS: RotationalElement<8usize> = RotationalElement {
4681 typ: RotationalElementType::Rotation,
4682 c0: 0.1562069680534925f64,
4683 c1: 3.328306379991881f64,
4684 c2: 0f64,
4685 c: [
4686 0f64,
4687 0f64,
4688 0f64,
4689 -0.16755160819145562f64,
4690 0.03892084231947355f64,
4691 0f64,
4692 0f64,
4693 0f64,
4694 ],
4695 theta0: [
4696 6.166597313146365f64,
4697 0.5012585611727715f64,
4698 3.0962140930379407f64,
4699 5.235987755982989f64,
4700 5.523094417936056f64,
4701 6.0248765778844255f64,
4702 12.33319462629273f64,
4703 1.002517122345543f64,
4704 ],
4705 theta1: [
4706 1321.331180819591f64,
4707 1321.331180819591f64,
4708 -637.14117008679f64,
4709 -126.11574641985825f64,
4710 8.834856673595295f64,
4711 -17.73778118801837f64,
4712 2642.662361639182f64,
4713 2642.662361639182f64,
4714 ],
4715};
4716impl RotationalElements for Tethys {
4717 fn rotational_elements(&self, t: f64) -> Elements {
4718 (
4719 RIGHT_ASCENSION_TETHYS.angle(t),
4720 DECLINATION_TETHYS.angle(t),
4721 ROTATION_TETHYS.angle(t),
4722 )
4723 }
4724 fn rotational_element_rates(&self, t: f64) -> Elements {
4725 (
4726 RIGHT_ASCENSION_TETHYS.angle_dot(t),
4727 DECLINATION_TETHYS.angle_dot(t),
4728 ROTATION_TETHYS.angle_dot(t),
4729 )
4730 }
4731}
4732#[doc = "Dione (NAIF ID: 604)."]
4733#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4734#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4735pub struct Dione;
4736impl Origin for Dione {
4737 fn id(&self) -> NaifId {
4738 NaifId(604i32)
4739 }
4740 fn name(&self) -> &'static str {
4741 "Dione"
4742 }
4743}
4744impl Display for Dione {
4745 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4746 write!(f, "{}", self.name())
4747 }
4748}
4749impl From<Dione> for DynOrigin {
4750 fn from(_: Dione) -> Self {
4751 DynOrigin::Dione
4752 }
4753}
4754impl PointMass for Dione {
4755 fn gravitational_parameter(&self) -> GravitationalParameter {
4756 GravitationalParameter::km3_per_s2(73.11607172482067f64)
4757 }
4758}
4759impl MeanRadius for Dione {
4760 fn mean_radius(&self) -> Distance {
4761 Distance::kilometers(561.4f64)
4762 }
4763}
4764impl TriaxialEllipsoid for Dione {
4765 fn radii(&self) -> Radii {
4766 (
4767 Distance::kilometers(563.4f64),
4768 Distance::kilometers(561.3f64),
4769 Distance::kilometers(559.6f64),
4770 )
4771 }
4772}
4773const RIGHT_ASCENSION_DIONE: RotationalElement<0usize> = RotationalElement {
4774 typ: RotationalElementType::RightAscension,
4775 c0: 0.7096508738608943f64,
4776 c1: -0.0006283185307179586f64,
4777 c2: 0f64,
4778 c: [],
4779 theta0: [],
4780 theta1: [],
4781};
4782const DECLINATION_DIONE: RotationalElement<0usize> = RotationalElement {
4783 typ: RotationalElementType::Declination,
4784 c0: 1.457698991265664f64,
4785 c1: -0.00006981317007977319f64,
4786 c2: 0f64,
4787 c: [],
4788 theta0: [],
4789 theta1: [],
4790};
4791const ROTATION_DIONE: RotationalElement<0usize> = RotationalElement {
4792 typ: RotationalElementType::Rotation,
4793 c0: 6.241297405131723f64,
4794 c1: 2.295717637805533f64,
4795 c2: 0f64,
4796 c: [],
4797 theta0: [],
4798 theta1: [],
4799};
4800impl RotationalElements for Dione {
4801 fn rotational_elements(&self, t: f64) -> Elements {
4802 (
4803 RIGHT_ASCENSION_DIONE.angle(t),
4804 DECLINATION_DIONE.angle(t),
4805 ROTATION_DIONE.angle(t),
4806 )
4807 }
4808 fn rotational_element_rates(&self, t: f64) -> Elements {
4809 (
4810 RIGHT_ASCENSION_DIONE.angle_dot(t),
4811 DECLINATION_DIONE.angle_dot(t),
4812 ROTATION_DIONE.angle_dot(t),
4813 )
4814 }
4815}
4816#[doc = "Rhea (NAIF ID: 605)."]
4817#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4818#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4819pub struct Rhea;
4820impl Origin for Rhea {
4821 fn id(&self) -> NaifId {
4822 NaifId(605i32)
4823 }
4824 fn name(&self) -> &'static str {
4825 "Rhea"
4826 }
4827}
4828impl Display for Rhea {
4829 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4830 write!(f, "{}", self.name())
4831 }
4832}
4833impl From<Rhea> for DynOrigin {
4834 fn from(_: Rhea) -> Self {
4835 DynOrigin::Rhea
4836 }
4837}
4838impl PointMass for Rhea {
4839 fn gravitational_parameter(&self) -> GravitationalParameter {
4840 GravitationalParameter::km3_per_s2(153.9417519146563f64)
4841 }
4842}
4843impl MeanRadius for Rhea {
4844 fn mean_radius(&self) -> Distance {
4845 Distance::kilometers(763.5f64)
4846 }
4847}
4848impl TriaxialEllipsoid for Rhea {
4849 fn radii(&self) -> Radii {
4850 (
4851 Distance::kilometers(765f64),
4852 Distance::kilometers(763.1f64),
4853 Distance::kilometers(762.4f64),
4854 )
4855 }
4856}
4857const RIGHT_ASCENSION_RHEA: RotationalElement<8usize> = RotationalElement {
4858 typ: RotationalElementType::RightAscension,
4859 c0: 0.7047639519553103f64,
4860 c1: -0.0006283185307179586f64,
4861 c2: 0f64,
4862 c: [
4863 0f64,
4864 0f64,
4865 0f64,
4866 0f64,
4867 0f64,
4868 0.054105206811824215f64,
4869 0f64,
4870 0f64,
4871 ],
4872 theta0: [
4873 6.166597313146365f64,
4874 0.5012585611727715f64,
4875 3.0962140930379407f64,
4876 5.235987755982989f64,
4877 5.523094417936056f64,
4878 6.0248765778844255f64,
4879 12.33319462629273f64,
4880 1.002517122345543f64,
4881 ],
4882 theta1: [
4883 1321.331180819591f64,
4884 1321.331180819591f64,
4885 -637.14117008679f64,
4886 -126.11574641985825f64,
4887 8.834856673595295f64,
4888 -17.73778118801837f64,
4889 2642.662361639182f64,
4890 2642.662361639182f64,
4891 ],
4892};
4893const DECLINATION_RHEA: RotationalElement<8usize> = RotationalElement {
4894 typ: RotationalElementType::Declination,
4895 c0: 1.4582225900412622f64,
4896 c1: -0.00006981317007977319f64,
4897 c2: 0f64,
4898 c: [
4899 0f64,
4900 0f64,
4901 0f64,
4902 0f64,
4903 0f64,
4904 -0.006108652381980153f64,
4905 0f64,
4906 0f64,
4907 ],
4908 theta0: [
4909 6.166597313146365f64,
4910 0.5012585611727715f64,
4911 3.0962140930379407f64,
4912 5.235987755982989f64,
4913 5.523094417936056f64,
4914 6.0248765778844255f64,
4915 12.33319462629273f64,
4916 1.002517122345543f64,
4917 ],
4918 theta1: [
4919 1321.331180819591f64,
4920 1321.331180819591f64,
4921 -637.14117008679f64,
4922 -126.11574641985825f64,
4923 8.834856673595295f64,
4924 -17.73778118801837f64,
4925 2642.662361639182f64,
4926 2642.662361639182f64,
4927 ],
4928};
4929const ROTATION_RHEA: RotationalElement<8usize> = RotationalElement {
4930 typ: RotationalElementType::Rotation,
4931 c0: 4.104316268989865f64,
4932 c1: 1.3908537151816638f64,
4933 c2: 0f64,
4934 c: [
4935 0f64,
4936 0f64,
4937 0f64,
4938 0f64,
4939 0f64,
4940 -0.05375614096142535f64,
4941 0f64,
4942 0f64,
4943 ],
4944 theta0: [
4945 6.166597313146365f64,
4946 0.5012585611727715f64,
4947 3.0962140930379407f64,
4948 5.235987755982989f64,
4949 5.523094417936056f64,
4950 6.0248765778844255f64,
4951 12.33319462629273f64,
4952 1.002517122345543f64,
4953 ],
4954 theta1: [
4955 1321.331180819591f64,
4956 1321.331180819591f64,
4957 -637.14117008679f64,
4958 -126.11574641985825f64,
4959 8.834856673595295f64,
4960 -17.73778118801837f64,
4961 2642.662361639182f64,
4962 2642.662361639182f64,
4963 ],
4964};
4965impl RotationalElements for Rhea {
4966 fn rotational_elements(&self, t: f64) -> Elements {
4967 (
4968 RIGHT_ASCENSION_RHEA.angle(t),
4969 DECLINATION_RHEA.angle(t),
4970 ROTATION_RHEA.angle(t),
4971 )
4972 }
4973 fn rotational_element_rates(&self, t: f64) -> Elements {
4974 (
4975 RIGHT_ASCENSION_RHEA.angle_dot(t),
4976 DECLINATION_RHEA.angle_dot(t),
4977 ROTATION_RHEA.angle_dot(t),
4978 )
4979 }
4980}
4981#[doc = "Titan (NAIF ID: 606)."]
4982#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4983#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4984pub struct Titan;
4985impl Origin for Titan {
4986 fn id(&self) -> NaifId {
4987 NaifId(606i32)
4988 }
4989 fn name(&self) -> &'static str {
4990 "Titan"
4991 }
4992}
4993impl Display for Titan {
4994 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
4995 write!(f, "{}", self.name())
4996 }
4997}
4998impl From<Titan> for DynOrigin {
4999 fn from(_: Titan) -> Self {
5000 DynOrigin::Titan
5001 }
5002}
5003impl PointMass for Titan {
5004 fn gravitational_parameter(&self) -> GravitationalParameter {
5005 GravitationalParameter::km3_per_s2(8978.137095521046f64)
5006 }
5007}
5008impl MeanRadius for Titan {
5009 fn mean_radius(&self) -> Distance {
5010 Distance::kilometers(2575f64)
5011 }
5012}
5013impl TriaxialEllipsoid for Titan {
5014 fn radii(&self) -> Radii {
5015 (
5016 Distance::kilometers(2575.15f64),
5017 Distance::kilometers(2574.78f64),
5018 Distance::kilometers(2574.47f64),
5019 )
5020 }
5021}
5022const RIGHT_ASCENSION_TITAN: RotationalElement<8usize> = RotationalElement {
5023 typ: RotationalElementType::RightAscension,
5024 c0: 0.6891031125771652f64,
5025 c1: 0f64,
5026 c2: 0f64,
5027 c: [0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64],
5028 theta0: [
5029 6.166597313146365f64,
5030 0.5012585611727715f64,
5031 3.0962140930379407f64,
5032 5.235987755982989f64,
5033 5.523094417936056f64,
5034 6.0248765778844255f64,
5035 12.33319462629273f64,
5036 1.002517122345543f64,
5037 ],
5038 theta1: [
5039 1321.331180819591f64,
5040 1321.331180819591f64,
5041 -637.14117008679f64,
5042 -126.11574641985825f64,
5043 8.834856673595295f64,
5044 -17.73778118801837f64,
5045 2642.662361639182f64,
5046 2642.662361639182f64,
5047 ],
5048};
5049const DECLINATION_TITAN: RotationalElement<8usize> = RotationalElement {
5050 typ: RotationalElementType::Declination,
5051 c0: 1.456091543024577f64,
5052 c1: 0f64,
5053 c2: 0f64,
5054 c: [0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64],
5055 theta0: [
5056 6.166597313146365f64,
5057 0.5012585611727715f64,
5058 3.0962140930379407f64,
5059 5.235987755982989f64,
5060 5.523094417936056f64,
5061 6.0248765778844255f64,
5062 12.33319462629273f64,
5063 1.002517122345543f64,
5064 ],
5065 theta1: [
5066 1321.331180819591f64,
5067 1321.331180819591f64,
5068 -637.14117008679f64,
5069 -126.11574641985825f64,
5070 8.834856673595295f64,
5071 -17.73778118801837f64,
5072 2642.662361639182f64,
5073 2642.662361639182f64,
5074 ],
5075};
5076const ROTATION_TITAN: RotationalElement<8usize> = RotationalElement {
5077 typ: RotationalElementType::Rotation,
5078 c0: 3.2565313114798795f64,
5079 c1: 0.39404258030637335f64,
5080 c2: 0f64,
5081 c: [0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64, 0f64],
5082 theta0: [
5083 6.166597313146365f64,
5084 0.5012585611727715f64,
5085 3.0962140930379407f64,
5086 5.235987755982989f64,
5087 5.523094417936056f64,
5088 6.0248765778844255f64,
5089 12.33319462629273f64,
5090 1.002517122345543f64,
5091 ],
5092 theta1: [
5093 1321.331180819591f64,
5094 1321.331180819591f64,
5095 -637.14117008679f64,
5096 -126.11574641985825f64,
5097 8.834856673595295f64,
5098 -17.73778118801837f64,
5099 2642.662361639182f64,
5100 2642.662361639182f64,
5101 ],
5102};
5103impl RotationalElements for Titan {
5104 fn rotational_elements(&self, t: f64) -> Elements {
5105 (
5106 RIGHT_ASCENSION_TITAN.angle(t),
5107 DECLINATION_TITAN.angle(t),
5108 ROTATION_TITAN.angle(t),
5109 )
5110 }
5111 fn rotational_element_rates(&self, t: f64) -> Elements {
5112 (
5113 RIGHT_ASCENSION_TITAN.angle_dot(t),
5114 DECLINATION_TITAN.angle_dot(t),
5115 ROTATION_TITAN.angle_dot(t),
5116 )
5117 }
5118}
5119#[doc = "Hyperion (NAIF ID: 607)."]
5120#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5121#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5122pub struct Hyperion;
5123impl Origin for Hyperion {
5124 fn id(&self) -> NaifId {
5125 NaifId(607i32)
5126 }
5127 fn name(&self) -> &'static str {
5128 "Hyperion"
5129 }
5130}
5131impl Display for Hyperion {
5132 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5133 write!(f, "{}", self.name())
5134 }
5135}
5136impl From<Hyperion> for DynOrigin {
5137 fn from(_: Hyperion) -> Self {
5138 DynOrigin::Hyperion
5139 }
5140}
5141impl PointMass for Hyperion {
5142 fn gravitational_parameter(&self) -> GravitationalParameter {
5143 GravitationalParameter::km3_per_s2(0.3704913747932265f64)
5144 }
5145}
5146impl MeanRadius for Hyperion {
5147 fn mean_radius(&self) -> Distance {
5148 Distance::kilometers(135f64)
5149 }
5150}
5151impl TriaxialEllipsoid for Hyperion {
5152 fn radii(&self) -> Radii {
5153 (
5154 Distance::kilometers(180.1f64),
5155 Distance::kilometers(133f64),
5156 Distance::kilometers(102.7f64),
5157 )
5158 }
5159}
5160#[doc = "Iapetus (NAIF ID: 608)."]
5161#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5162#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5163pub struct Iapetus;
5164impl Origin for Iapetus {
5165 fn id(&self) -> NaifId {
5166 NaifId(608i32)
5167 }
5168 fn name(&self) -> &'static str {
5169 "Iapetus"
5170 }
5171}
5172impl Display for Iapetus {
5173 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5174 write!(f, "{}", self.name())
5175 }
5176}
5177impl From<Iapetus> for DynOrigin {
5178 fn from(_: Iapetus) -> Self {
5179 DynOrigin::Iapetus
5180 }
5181}
5182impl PointMass for Iapetus {
5183 fn gravitational_parameter(&self) -> GravitationalParameter {
5184 GravitationalParameter::km3_per_s2(120.5151060137642f64)
5185 }
5186}
5187impl MeanRadius for Iapetus {
5188 fn mean_radius(&self) -> Distance {
5189 Distance::kilometers(734.3f64)
5190 }
5191}
5192impl TriaxialEllipsoid for Iapetus {
5193 fn radii(&self) -> Radii {
5194 (
5195 Distance::kilometers(745.7f64),
5196 Distance::kilometers(745.7f64),
5197 Distance::kilometers(712.1f64),
5198 )
5199 }
5200}
5201impl Spheroid for Iapetus {}
5202const RIGHT_ASCENSION_IAPETUS: RotationalElement<0usize> = RotationalElement {
5203 typ: RotationalElementType::RightAscension,
5204 c0: 5.552939548145159f64,
5205 c1: -0.06892305216125608f64,
5206 c2: 0f64,
5207 c: [],
5208 theta0: [],
5209 theta1: [],
5210};
5211const DECLINATION_IAPETUS: RotationalElement<0usize> = RotationalElement {
5212 typ: RotationalElementType::Declination,
5213 c0: 1.3095205377713455f64,
5214 c1: -0.019949113350295186f64,
5215 c2: 0f64,
5216 c: [],
5217 theta0: [],
5218 theta1: [],
5219};
5220const ROTATION_IAPETUS: RotationalElement<0usize> = RotationalElement {
5221 typ: RotationalElementType::Rotation,
5222 c0: 6.199409503083858f64,
5223 c1: 0.07920229445458282f64,
5224 c2: 0f64,
5225 c: [],
5226 theta0: [],
5227 theta1: [],
5228};
5229impl RotationalElements for Iapetus {
5230 fn rotational_elements(&self, t: f64) -> Elements {
5231 (
5232 RIGHT_ASCENSION_IAPETUS.angle(t),
5233 DECLINATION_IAPETUS.angle(t),
5234 ROTATION_IAPETUS.angle(t),
5235 )
5236 }
5237 fn rotational_element_rates(&self, t: f64) -> Elements {
5238 (
5239 RIGHT_ASCENSION_IAPETUS.angle_dot(t),
5240 DECLINATION_IAPETUS.angle_dot(t),
5241 ROTATION_IAPETUS.angle_dot(t),
5242 )
5243 }
5244}
5245#[doc = "Phoebe (NAIF ID: 609)."]
5246#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5247#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5248pub struct Phoebe;
5249impl Origin for Phoebe {
5250 fn id(&self) -> NaifId {
5251 NaifId(609i32)
5252 }
5253 fn name(&self) -> &'static str {
5254 "Phoebe"
5255 }
5256}
5257impl Display for Phoebe {
5258 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5259 write!(f, "{}", self.name())
5260 }
5261}
5262impl From<Phoebe> for DynOrigin {
5263 fn from(_: Phoebe) -> Self {
5264 DynOrigin::Phoebe
5265 }
5266}
5267impl PointMass for Phoebe {
5268 fn gravitational_parameter(&self) -> GravitationalParameter {
5269 GravitationalParameter::km3_per_s2(0.5547860052791678f64)
5270 }
5271}
5272impl MeanRadius for Phoebe {
5273 fn mean_radius(&self) -> Distance {
5274 Distance::kilometers(106.5f64)
5275 }
5276}
5277impl TriaxialEllipsoid for Phoebe {
5278 fn radii(&self) -> Radii {
5279 (
5280 Distance::kilometers(109.4f64),
5281 Distance::kilometers(108.5f64),
5282 Distance::kilometers(101.8f64),
5283 )
5284 }
5285}
5286const RIGHT_ASCENSION_PHOEBE: RotationalElement<0usize> = RotationalElement {
5287 typ: RotationalElementType::RightAscension,
5288 c0: 6.229080100367762f64,
5289 c1: 0f64,
5290 c2: 0f64,
5291 c: [],
5292 theta0: [],
5293 theta1: [],
5294};
5295const DECLINATION_PHOEBE: RotationalElement<0usize> = RotationalElement {
5296 typ: RotationalElementType::Declination,
5297 c0: 1.3578661580515883f64,
5298 c1: 0f64,
5299 c2: 0f64,
5300 c: [],
5301 theta0: [],
5302 theta1: [],
5303};
5304const ROTATION_PHOEBE: RotationalElement<0usize> = RotationalElement {
5305 typ: RotationalElementType::Rotation,
5306 c0: 3.116808978211474f64,
5307 c1: 16.26016798998745f64,
5308 c2: 0f64,
5309 c: [],
5310 theta0: [],
5311 theta1: [],
5312};
5313impl RotationalElements for Phoebe {
5314 fn rotational_elements(&self, t: f64) -> Elements {
5315 (
5316 RIGHT_ASCENSION_PHOEBE.angle(t),
5317 DECLINATION_PHOEBE.angle(t),
5318 ROTATION_PHOEBE.angle(t),
5319 )
5320 }
5321 fn rotational_element_rates(&self, t: f64) -> Elements {
5322 (
5323 RIGHT_ASCENSION_PHOEBE.angle_dot(t),
5324 DECLINATION_PHOEBE.angle_dot(t),
5325 ROTATION_PHOEBE.angle_dot(t),
5326 )
5327 }
5328}
5329#[doc = "Janus (NAIF ID: 610)."]
5330#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5331#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5332pub struct Janus;
5333impl Origin for Janus {
5334 fn id(&self) -> NaifId {
5335 NaifId(610i32)
5336 }
5337 fn name(&self) -> &'static str {
5338 "Janus"
5339 }
5340}
5341impl Display for Janus {
5342 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5343 write!(f, "{}", self.name())
5344 }
5345}
5346impl From<Janus> for DynOrigin {
5347 fn from(_: Janus) -> Self {
5348 DynOrigin::Janus
5349 }
5350}
5351impl PointMass for Janus {
5352 fn gravitational_parameter(&self) -> GravitationalParameter {
5353 GravitationalParameter::km3_per_s2(0.1265765099012197f64)
5354 }
5355}
5356impl MeanRadius for Janus {
5357 fn mean_radius(&self) -> Distance {
5358 Distance::kilometers(89.2f64)
5359 }
5360}
5361impl TriaxialEllipsoid for Janus {
5362 fn radii(&self) -> Radii {
5363 (
5364 Distance::kilometers(101.7f64),
5365 Distance::kilometers(93f64),
5366 Distance::kilometers(76.3f64),
5367 )
5368 }
5369}
5370const RIGHT_ASCENSION_JANUS: RotationalElement<8usize> = RotationalElement {
5371 typ: RotationalElementType::RightAscension,
5372 c0: 0.7082546104592989f64,
5373 c1: -0.0006283185307179586f64,
5374 c2: 0f64,
5375 c: [
5376 0f64,
5377 -0.028326693759867967f64,
5378 0f64,
5379 0f64,
5380 0f64,
5381 0f64,
5382 0f64,
5383 0.0004014257279586958f64,
5384 ],
5385 theta0: [
5386 6.166597313146365f64,
5387 0.5012585611727715f64,
5388 3.0962140930379407f64,
5389 5.235987755982989f64,
5390 5.523094417936056f64,
5391 6.0248765778844255f64,
5392 12.33319462629273f64,
5393 1.002517122345543f64,
5394 ],
5395 theta1: [
5396 1321.331180819591f64,
5397 1321.331180819591f64,
5398 -637.14117008679f64,
5399 -126.11574641985825f64,
5400 8.834856673595295f64,
5401 -17.73778118801837f64,
5402 2642.662361639182f64,
5403 2642.662361639182f64,
5404 ],
5405};
5406const DECLINATION_JANUS: RotationalElement<8usize> = RotationalElement {
5407 typ: RotationalElementType::Declination,
5408 c0: 1.457698991265664f64,
5409 c1: -0.00006981317007977319f64,
5410 c2: 0f64,
5411 c: [
5412 0f64,
5413 -0.003193952531149623f64,
5414 0f64,
5415 0f64,
5416 0f64,
5417 0f64,
5418 0f64,
5419 0.000017453292519943296f64,
5420 ],
5421 theta0: [
5422 6.166597313146365f64,
5423 0.5012585611727715f64,
5424 3.0962140930379407f64,
5425 5.235987755982989f64,
5426 5.523094417936056f64,
5427 6.0248765778844255f64,
5428 12.33319462629273f64,
5429 1.002517122345543f64,
5430 ],
5431 theta1: [
5432 1321.331180819591f64,
5433 1321.331180819591f64,
5434 -637.14117008679f64,
5435 -126.11574641985825f64,
5436 8.834856673595295f64,
5437 -17.73778118801837f64,
5438 2642.662361639182f64,
5439 2642.662361639182f64,
5440 ],
5441};
5442const ROTATION_JANUS: RotationalElement<8usize> = RotationalElement {
5443 typ: RotationalElementType::Rotation,
5444 c0: 1.0267771989482641f64,
5445 c1: 9.044924285944507f64,
5446 c2: 0f64,
5447 c: [
5448 0f64,
5449 0.028152160834668535f64,
5450 0f64,
5451 0f64,
5452 0f64,
5453 0f64,
5454 0f64,
5455 -0.0004014257279586958f64,
5456 ],
5457 theta0: [
5458 6.166597313146365f64,
5459 0.5012585611727715f64,
5460 3.0962140930379407f64,
5461 5.235987755982989f64,
5462 5.523094417936056f64,
5463 6.0248765778844255f64,
5464 12.33319462629273f64,
5465 1.002517122345543f64,
5466 ],
5467 theta1: [
5468 1321.331180819591f64,
5469 1321.331180819591f64,
5470 -637.14117008679f64,
5471 -126.11574641985825f64,
5472 8.834856673595295f64,
5473 -17.73778118801837f64,
5474 2642.662361639182f64,
5475 2642.662361639182f64,
5476 ],
5477};
5478impl RotationalElements for Janus {
5479 fn rotational_elements(&self, t: f64) -> Elements {
5480 (
5481 RIGHT_ASCENSION_JANUS.angle(t),
5482 DECLINATION_JANUS.angle(t),
5483 ROTATION_JANUS.angle(t),
5484 )
5485 }
5486 fn rotational_element_rates(&self, t: f64) -> Elements {
5487 (
5488 RIGHT_ASCENSION_JANUS.angle_dot(t),
5489 DECLINATION_JANUS.angle_dot(t),
5490 ROTATION_JANUS.angle_dot(t),
5491 )
5492 }
5493}
5494#[doc = "Epimetheus (NAIF ID: 611)."]
5495#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5496#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5497pub struct Epimetheus;
5498impl Origin for Epimetheus {
5499 fn id(&self) -> NaifId {
5500 NaifId(611i32)
5501 }
5502 fn name(&self) -> &'static str {
5503 "Epimetheus"
5504 }
5505}
5506impl Display for Epimetheus {
5507 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5508 write!(f, "{}", self.name())
5509 }
5510}
5511impl From<Epimetheus> for DynOrigin {
5512 fn from(_: Epimetheus) -> Self {
5513 DynOrigin::Epimetheus
5514 }
5515}
5516impl PointMass for Epimetheus {
5517 fn gravitational_parameter(&self) -> GravitationalParameter {
5518 GravitationalParameter::km3_per_s2(0.03512333288208074f64)
5519 }
5520}
5521impl MeanRadius for Epimetheus {
5522 fn mean_radius(&self) -> Distance {
5523 Distance::kilometers(58.2f64)
5524 }
5525}
5526impl TriaxialEllipsoid for Epimetheus {
5527 fn radii(&self) -> Radii {
5528 (
5529 Distance::kilometers(64.9f64),
5530 Distance::kilometers(57.3f64),
5531 Distance::kilometers(53f64),
5532 )
5533 }
5534}
5535const RIGHT_ASCENSION_EPIMETHEUS: RotationalElement<8usize> = RotationalElement {
5536 typ: RotationalElementType::RightAscension,
5537 c0: 0.7082546104592989f64,
5538 c1: -0.0006283185307179586f64,
5539 c2: 0f64,
5540 c: [
5541 -0.05503023131538121f64,
5542 0f64,
5543 0f64,
5544 0f64,
5545 0f64,
5546 0f64,
5547 0.0015009831567151233f64,
5548 0f64,
5549 ],
5550 theta0: [
5551 6.166597313146365f64,
5552 0.5012585611727715f64,
5553 3.0962140930379407f64,
5554 5.235987755982989f64,
5555 5.523094417936056f64,
5556 6.0248765778844255f64,
5557 12.33319462629273f64,
5558 1.002517122345543f64,
5559 ],
5560 theta1: [
5561 1321.331180819591f64,
5562 1321.331180819591f64,
5563 -637.14117008679f64,
5564 -126.11574641985825f64,
5565 8.834856673595295f64,
5566 -17.73778118801837f64,
5567 2642.662361639182f64,
5568 2642.662361639182f64,
5569 ],
5570};
5571const DECLINATION_EPIMETHEUS: RotationalElement<8usize> = RotationalElement {
5572 typ: RotationalElementType::Declination,
5573 c0: 1.457698991265664f64,
5574 c1: -0.00006981317007977319f64,
5575 c2: 0f64,
5576 c: [
5577 -0.006213372137099813f64,
5578 0f64,
5579 0f64,
5580 0f64,
5581 0f64,
5582 0f64,
5583 0.00008726646259971648f64,
5584 0f64,
5585 ],
5586 theta0: [
5587 6.166597313146365f64,
5588 0.5012585611727715f64,
5589 3.0962140930379407f64,
5590 5.235987755982989f64,
5591 5.523094417936056f64,
5592 6.0248765778844255f64,
5593 12.33319462629273f64,
5594 1.002517122345543f64,
5595 ],
5596 theta1: [
5597 1321.331180819591f64,
5598 1321.331180819591f64,
5599 -637.14117008679f64,
5600 -126.11574641985825f64,
5601 8.834856673595295f64,
5602 -17.73778118801837f64,
5603 2642.662361639182f64,
5604 2642.662361639182f64,
5605 ],
5606};
5607const ROTATION_EPIMETHEUS: RotationalElement<8usize> = RotationalElement {
5608 typ: RotationalElementType::Rotation,
5609 c0: 5.128999072835736f64,
5610 c1: 9.049370273103856f64,
5611 c2: 0f64,
5612 c: [
5613 0.05468116546498235f64,
5614 0f64,
5615 0f64,
5616 0f64,
5617 0f64,
5618 0f64,
5619 -0.0015009831567151233f64,
5620 0f64,
5621 ],
5622 theta0: [
5623 6.166597313146365f64,
5624 0.5012585611727715f64,
5625 3.0962140930379407f64,
5626 5.235987755982989f64,
5627 5.523094417936056f64,
5628 6.0248765778844255f64,
5629 12.33319462629273f64,
5630 1.002517122345543f64,
5631 ],
5632 theta1: [
5633 1321.331180819591f64,
5634 1321.331180819591f64,
5635 -637.14117008679f64,
5636 -126.11574641985825f64,
5637 8.834856673595295f64,
5638 -17.73778118801837f64,
5639 2642.662361639182f64,
5640 2642.662361639182f64,
5641 ],
5642};
5643impl RotationalElements for Epimetheus {
5644 fn rotational_elements(&self, t: f64) -> Elements {
5645 (
5646 RIGHT_ASCENSION_EPIMETHEUS.angle(t),
5647 DECLINATION_EPIMETHEUS.angle(t),
5648 ROTATION_EPIMETHEUS.angle(t),
5649 )
5650 }
5651 fn rotational_element_rates(&self, t: f64) -> Elements {
5652 (
5653 RIGHT_ASCENSION_EPIMETHEUS.angle_dot(t),
5654 DECLINATION_EPIMETHEUS.angle_dot(t),
5655 ROTATION_EPIMETHEUS.angle_dot(t),
5656 )
5657 }
5658}
5659#[doc = "Helene (NAIF ID: 612)."]
5660#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5661#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5662pub struct Helene;
5663impl Origin for Helene {
5664 fn id(&self) -> NaifId {
5665 NaifId(612i32)
5666 }
5667 fn name(&self) -> &'static str {
5668 "Helene"
5669 }
5670}
5671impl Display for Helene {
5672 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5673 write!(f, "{}", self.name())
5674 }
5675}
5676impl From<Helene> for DynOrigin {
5677 fn from(_: Helene) -> Self {
5678 DynOrigin::Helene
5679 }
5680}
5681impl PointMass for Helene {
5682 fn gravitational_parameter(&self) -> GravitationalParameter {
5683 GravitationalParameter::km3_per_s2(0.0004757419551776972f64)
5684 }
5685}
5686impl MeanRadius for Helene {
5687 fn mean_radius(&self) -> Distance {
5688 Distance::kilometers(18f64)
5689 }
5690}
5691impl TriaxialEllipsoid for Helene {
5692 fn radii(&self) -> Radii {
5693 (
5694 Distance::kilometers(22.5f64),
5695 Distance::kilometers(19.6f64),
5696 Distance::kilometers(13.3f64),
5697 )
5698 }
5699}
5700const RIGHT_ASCENSION_HELENE: RotationalElement<0usize> = RotationalElement {
5701 typ: RotationalElementType::RightAscension,
5702 c0: 0.7129669994396837f64,
5703 c1: -0.0006283185307179586f64,
5704 c2: 0f64,
5705 c: [],
5706 theta0: [],
5707 theta1: [],
5708};
5709const DECLINATION_HELENE: RotationalElement<0usize> = RotationalElement {
5710 typ: RotationalElementType::Declination,
5711 c0: 1.4545573986120743f64,
5712 c1: -0.00006981317007977319f64,
5713 c2: 0f64,
5714 c: [],
5715 theta0: [],
5716 theta1: [],
5717};
5718const ROTATION_HELENE: RotationalElement<0usize> = RotationalElement {
5719 typ: RotationalElementType::Rotation,
5720 c0: 4.278151062488501f64,
5721 c1: 2.297157080652823f64,
5722 c2: 0f64,
5723 c: [],
5724 theta0: [],
5725 theta1: [],
5726};
5727impl RotationalElements for Helene {
5728 fn rotational_elements(&self, t: f64) -> Elements {
5729 (
5730 RIGHT_ASCENSION_HELENE.angle(t),
5731 DECLINATION_HELENE.angle(t),
5732 ROTATION_HELENE.angle(t),
5733 )
5734 }
5735 fn rotational_element_rates(&self, t: f64) -> Elements {
5736 (
5737 RIGHT_ASCENSION_HELENE.angle_dot(t),
5738 DECLINATION_HELENE.angle_dot(t),
5739 ROTATION_HELENE.angle_dot(t),
5740 )
5741 }
5742}
5743#[doc = "Telesto (NAIF ID: 613)."]
5744#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5745#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5746pub struct Telesto;
5747impl Origin for Telesto {
5748 fn id(&self) -> NaifId {
5749 NaifId(613i32)
5750 }
5751 fn name(&self) -> &'static str {
5752 "Telesto"
5753 }
5754}
5755impl Display for Telesto {
5756 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5757 write!(f, "{}", self.name())
5758 }
5759}
5760impl From<Telesto> for DynOrigin {
5761 fn from(_: Telesto) -> Self {
5762 DynOrigin::Telesto
5763 }
5764}
5765impl MeanRadius for Telesto {
5766 fn mean_radius(&self) -> Distance {
5767 Distance::kilometers(12.4f64)
5768 }
5769}
5770impl TriaxialEllipsoid for Telesto {
5771 fn radii(&self) -> Radii {
5772 (
5773 Distance::kilometers(16.3f64),
5774 Distance::kilometers(11.8f64),
5775 Distance::kilometers(9.8f64),
5776 )
5777 }
5778}
5779const RIGHT_ASCENSION_TELESTO: RotationalElement<0usize> = RotationalElement {
5780 typ: RotationalElementType::RightAscension,
5781 c0: 0.8815658051823358f64,
5782 c1: -0.0006283185307179586f64,
5783 c2: 0f64,
5784 c: [],
5785 theta0: [],
5786 theta1: [],
5787};
5788const DECLINATION_TELESTO: RotationalElement<0usize> = RotationalElement {
5789 typ: RotationalElementType::Declination,
5790 c0: 1.4671237692264334f64,
5791 c1: -0.00006981317007977319f64,
5792 c2: 0f64,
5793 c: [],
5794 theta0: [],
5795 theta1: [],
5796};
5797const ROTATION_TELESTO: RotationalElement<0usize> = RotationalElement {
5798 typ: RotationalElementType::Rotation,
5799 c0: 0.9927432785343747f64,
5800 c1: 3.328306811088206f64,
5801 c2: 0f64,
5802 c: [],
5803 theta0: [],
5804 theta1: [],
5805};
5806impl RotationalElements for Telesto {
5807 fn rotational_elements(&self, t: f64) -> Elements {
5808 (
5809 RIGHT_ASCENSION_TELESTO.angle(t),
5810 DECLINATION_TELESTO.angle(t),
5811 ROTATION_TELESTO.angle(t),
5812 )
5813 }
5814 fn rotational_element_rates(&self, t: f64) -> Elements {
5815 (
5816 RIGHT_ASCENSION_TELESTO.angle_dot(t),
5817 DECLINATION_TELESTO.angle_dot(t),
5818 ROTATION_TELESTO.angle_dot(t),
5819 )
5820 }
5821}
5822#[doc = "Calypso (NAIF ID: 614)."]
5823#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5824#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5825pub struct Calypso;
5826impl Origin for Calypso {
5827 fn id(&self) -> NaifId {
5828 NaifId(614i32)
5829 }
5830 fn name(&self) -> &'static str {
5831 "Calypso"
5832 }
5833}
5834impl Display for Calypso {
5835 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5836 write!(f, "{}", self.name())
5837 }
5838}
5839impl From<Calypso> for DynOrigin {
5840 fn from(_: Calypso) -> Self {
5841 DynOrigin::Calypso
5842 }
5843}
5844impl MeanRadius for Calypso {
5845 fn mean_radius(&self) -> Distance {
5846 Distance::kilometers(9.6f64)
5847 }
5848}
5849impl TriaxialEllipsoid for Calypso {
5850 fn radii(&self) -> Radii {
5851 (
5852 Distance::kilometers(15.3f64),
5853 Distance::kilometers(9.3f64),
5854 Distance::kilometers(6.3f64),
5855 )
5856 }
5857}
5858const RIGHT_ASCENSION_CALYPSO: RotationalElement<0usize> = RotationalElement {
5859 typ: RotationalElementType::RightAscension,
5860 c0: 0.6354743806511354f64,
5861 c1: -0.0006283185307179586f64,
5862 c2: 0f64,
5863 c: [],
5864 theta0: [],
5865 theta1: [],
5866};
5867const DECLINATION_CALYPSO: RotationalElement<0usize> = RotationalElement {
5868 typ: RotationalElementType::Declination,
5869 c0: 1.4842279958959779f64,
5870 c1: -0.00006981317007977319f64,
5871 c2: 0f64,
5872 c: [],
5873 theta0: [],
5874 theta1: [],
5875};
5876const ROTATION_CALYPSO: RotationalElement<0usize> = RotationalElement {
5877 typ: RotationalElementType::Rotation,
5878 c0: 2.679254934736495f64,
5879 c1: 3.327893239613983f64,
5880 c2: 0f64,
5881 c: [],
5882 theta0: [],
5883 theta1: [],
5884};
5885impl RotationalElements for Calypso {
5886 fn rotational_elements(&self, t: f64) -> Elements {
5887 (
5888 RIGHT_ASCENSION_CALYPSO.angle(t),
5889 DECLINATION_CALYPSO.angle(t),
5890 ROTATION_CALYPSO.angle(t),
5891 )
5892 }
5893 fn rotational_element_rates(&self, t: f64) -> Elements {
5894 (
5895 RIGHT_ASCENSION_CALYPSO.angle_dot(t),
5896 DECLINATION_CALYPSO.angle_dot(t),
5897 ROTATION_CALYPSO.angle_dot(t),
5898 )
5899 }
5900}
5901#[doc = "Atlas (NAIF ID: 615)."]
5902#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5903#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5904pub struct Atlas;
5905impl Origin for Atlas {
5906 fn id(&self) -> NaifId {
5907 NaifId(615i32)
5908 }
5909 fn name(&self) -> &'static str {
5910 "Atlas"
5911 }
5912}
5913impl Display for Atlas {
5914 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5915 write!(f, "{}", self.name())
5916 }
5917}
5918impl From<Atlas> for DynOrigin {
5919 fn from(_: Atlas) -> Self {
5920 DynOrigin::Atlas
5921 }
5922}
5923impl PointMass for Atlas {
5924 fn gravitational_parameter(&self) -> GravitationalParameter {
5925 GravitationalParameter::km3_per_s2(0.0003718871247516475f64)
5926 }
5927}
5928impl MeanRadius for Atlas {
5929 fn mean_radius(&self) -> Distance {
5930 Distance::kilometers(15.1f64)
5931 }
5932}
5933impl TriaxialEllipsoid for Atlas {
5934 fn radii(&self) -> Radii {
5935 (
5936 Distance::kilometers(20.5f64),
5937 Distance::kilometers(17.8f64),
5938 Distance::kilometers(9.4f64),
5939 )
5940 }
5941}
5942const RIGHT_ASCENSION_ATLAS: RotationalElement<0usize> = RotationalElement {
5943 typ: RotationalElementType::RightAscension,
5944 c0: 0.7082546104592989f64,
5945 c1: -0.0006283185307179586f64,
5946 c2: 0f64,
5947 c: [],
5948 theta0: [],
5949 theta1: [],
5950};
5951const DECLINATION_ATLAS: RotationalElement<0usize> = RotationalElement {
5952 typ: RotationalElementType::Declination,
5953 c0: 1.4578735241908636f64,
5954 c1: -0.00006981317007977319f64,
5955 c2: 0f64,
5956 c: [],
5957 theta0: [],
5958 theta1: [],
5959};
5960const ROTATION_ATLAS: RotationalElement<0usize> = RotationalElement {
5961 typ: RotationalElementType::Rotation,
5962 c0: 2.4064599726497815f64,
5963 c1: 10.442409634437194f64,
5964 c2: 0f64,
5965 c: [],
5966 theta0: [],
5967 theta1: [],
5968};
5969impl RotationalElements for Atlas {
5970 fn rotational_elements(&self, t: f64) -> Elements {
5971 (
5972 RIGHT_ASCENSION_ATLAS.angle(t),
5973 DECLINATION_ATLAS.angle(t),
5974 ROTATION_ATLAS.angle(t),
5975 )
5976 }
5977 fn rotational_element_rates(&self, t: f64) -> Elements {
5978 (
5979 RIGHT_ASCENSION_ATLAS.angle_dot(t),
5980 DECLINATION_ATLAS.angle_dot(t),
5981 ROTATION_ATLAS.angle_dot(t),
5982 )
5983 }
5984}
5985#[doc = "Prometheus (NAIF ID: 616)."]
5986#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5987#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5988pub struct Prometheus;
5989impl Origin for Prometheus {
5990 fn id(&self) -> NaifId {
5991 NaifId(616i32)
5992 }
5993 fn name(&self) -> &'static str {
5994 "Prometheus"
5995 }
5996}
5997impl Display for Prometheus {
5998 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5999 write!(f, "{}", self.name())
6000 }
6001}
6002impl From<Prometheus> for DynOrigin {
6003 fn from(_: Prometheus) -> Self {
6004 DynOrigin::Prometheus
6005 }
6006}
6007impl PointMass for Prometheus {
6008 fn gravitational_parameter(&self) -> GravitationalParameter {
6009 GravitationalParameter::km3_per_s2(0.0107520800100761f64)
6010 }
6011}
6012impl MeanRadius for Prometheus {
6013 fn mean_radius(&self) -> Distance {
6014 Distance::kilometers(43.1f64)
6015 }
6016}
6017impl TriaxialEllipsoid for Prometheus {
6018 fn radii(&self) -> Radii {
6019 (
6020 Distance::kilometers(68.2f64),
6021 Distance::kilometers(41.6f64),
6022 Distance::kilometers(28.2f64),
6023 )
6024 }
6025}
6026const RIGHT_ASCENSION_PROMETHEUS: RotationalElement<0usize> = RotationalElement {
6027 typ: RotationalElementType::RightAscension,
6028 c0: 0.7082546104592989f64,
6029 c1: -0.0006283185307179586f64,
6030 c2: 0f64,
6031 c: [],
6032 theta0: [],
6033 theta1: [],
6034};
6035const DECLINATION_PROMETHEUS: RotationalElement<0usize> = RotationalElement {
6036 typ: RotationalElementType::Declination,
6037 c0: 1.4578735241908636f64,
6038 c1: -0.00006981317007977319f64,
6039 c2: 0f64,
6040 c: [],
6041 theta0: [],
6042 theta1: [],
6043};
6044const ROTATION_PROMETHEUS: RotationalElement<0usize> = RotationalElement {
6045 typ: RotationalElementType::Rotation,
6046 c0: 5.1686180468560075f64,
6047 c1: 10.250126710744977f64,
6048 c2: 0f64,
6049 c: [],
6050 theta0: [],
6051 theta1: [],
6052};
6053impl RotationalElements for Prometheus {
6054 fn rotational_elements(&self, t: f64) -> Elements {
6055 (
6056 RIGHT_ASCENSION_PROMETHEUS.angle(t),
6057 DECLINATION_PROMETHEUS.angle(t),
6058 ROTATION_PROMETHEUS.angle(t),
6059 )
6060 }
6061 fn rotational_element_rates(&self, t: f64) -> Elements {
6062 (
6063 RIGHT_ASCENSION_PROMETHEUS.angle_dot(t),
6064 DECLINATION_PROMETHEUS.angle_dot(t),
6065 ROTATION_PROMETHEUS.angle_dot(t),
6066 )
6067 }
6068}
6069#[doc = "Pandora (NAIF ID: 617)."]
6070#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6071#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6072pub struct Pandora;
6073impl Origin for Pandora {
6074 fn id(&self) -> NaifId {
6075 NaifId(617i32)
6076 }
6077 fn name(&self) -> &'static str {
6078 "Pandora"
6079 }
6080}
6081impl Display for Pandora {
6082 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6083 write!(f, "{}", self.name())
6084 }
6085}
6086impl From<Pandora> for DynOrigin {
6087 fn from(_: Pandora) -> Self {
6088 DynOrigin::Pandora
6089 }
6090}
6091impl PointMass for Pandora {
6092 fn gravitational_parameter(&self) -> GravitationalParameter {
6093 GravitationalParameter::km3_per_s2(0.009290325122028795f64)
6094 }
6095}
6096impl MeanRadius for Pandora {
6097 fn mean_radius(&self) -> Distance {
6098 Distance::kilometers(40.6f64)
6099 }
6100}
6101impl TriaxialEllipsoid for Pandora {
6102 fn radii(&self) -> Radii {
6103 (
6104 Distance::kilometers(52.2f64),
6105 Distance::kilometers(40.8f64),
6106 Distance::kilometers(31.5f64),
6107 )
6108 }
6109}
6110const RIGHT_ASCENSION_PANDORA: RotationalElement<0usize> = RotationalElement {
6111 typ: RotationalElementType::RightAscension,
6112 c0: 0.7082546104592989f64,
6113 c1: -0.0006283185307179586f64,
6114 c2: 0f64,
6115 c: [],
6116 theta0: [],
6117 theta1: [],
6118};
6119const DECLINATION_PANDORA: RotationalElement<0usize> = RotationalElement {
6120 typ: RotationalElementType::Declination,
6121 c0: 1.4578735241908636f64,
6122 c1: -0.00006981317007977319f64,
6123 c2: 0f64,
6124 c: [],
6125 theta0: [],
6126 theta1: [],
6127};
6128const ROTATION_PANDORA: RotationalElement<0usize> = RotationalElement {
6129 typ: RotationalElementType::Rotation,
6130 c0: 2.8434904173491615f64,
6131 c1: 9.997055714535051f64,
6132 c2: 0f64,
6133 c: [],
6134 theta0: [],
6135 theta1: [],
6136};
6137impl RotationalElements for Pandora {
6138 fn rotational_elements(&self, t: f64) -> Elements {
6139 (
6140 RIGHT_ASCENSION_PANDORA.angle(t),
6141 DECLINATION_PANDORA.angle(t),
6142 ROTATION_PANDORA.angle(t),
6143 )
6144 }
6145 fn rotational_element_rates(&self, t: f64) -> Elements {
6146 (
6147 RIGHT_ASCENSION_PANDORA.angle_dot(t),
6148 DECLINATION_PANDORA.angle_dot(t),
6149 ROTATION_PANDORA.angle_dot(t),
6150 )
6151 }
6152}
6153#[doc = "Pan (NAIF ID: 618)."]
6154#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6155#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6156pub struct Pan;
6157impl Origin for Pan {
6158 fn id(&self) -> NaifId {
6159 NaifId(618i32)
6160 }
6161 fn name(&self) -> &'static str {
6162 "Pan"
6163 }
6164}
6165impl Display for Pan {
6166 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6167 write!(f, "{}", self.name())
6168 }
6169}
6170impl From<Pan> for DynOrigin {
6171 fn from(_: Pan) -> Self {
6172 DynOrigin::Pan
6173 }
6174}
6175impl MeanRadius for Pan {
6176 fn mean_radius(&self) -> Distance {
6177 Distance::kilometers(14f64)
6178 }
6179}
6180impl TriaxialEllipsoid for Pan {
6181 fn radii(&self) -> Radii {
6182 (
6183 Distance::kilometers(17.2f64),
6184 Distance::kilometers(15.4f64),
6185 Distance::kilometers(10.4f64),
6186 )
6187 }
6188}
6189const RIGHT_ASCENSION_PAN: RotationalElement<0usize> = RotationalElement {
6190 typ: RotationalElementType::RightAscension,
6191 c0: 0.7086036763096978f64,
6192 c1: -0.0006283185307179586f64,
6193 c2: 0f64,
6194 c: [],
6195 theta0: [],
6196 theta1: [],
6197};
6198const DECLINATION_PAN: RotationalElement<0usize> = RotationalElement {
6199 typ: RotationalElementType::Declination,
6200 c0: 1.457349925415265f64,
6201 c1: -0.00006981317007977319f64,
6202 c2: 0f64,
6203 c: [],
6204 theta0: [],
6205 theta1: [],
6206};
6207const ROTATION_PAN: RotationalElement<0usize> = RotationalElement {
6208 typ: RotationalElementType::Rotation,
6209 c0: 0.8517206749732328f64,
6210 c1: 10.92652906235538f64,
6211 c2: 0f64,
6212 c: [],
6213 theta0: [],
6214 theta1: [],
6215};
6216impl RotationalElements for Pan {
6217 fn rotational_elements(&self, t: f64) -> Elements {
6218 (
6219 RIGHT_ASCENSION_PAN.angle(t),
6220 DECLINATION_PAN.angle(t),
6221 ROTATION_PAN.angle(t),
6222 )
6223 }
6224 fn rotational_element_rates(&self, t: f64) -> Elements {
6225 (
6226 RIGHT_ASCENSION_PAN.angle_dot(t),
6227 DECLINATION_PAN.angle_dot(t),
6228 ROTATION_PAN.angle_dot(t),
6229 )
6230 }
6231}
6232#[doc = "Ymir (NAIF ID: 619)."]
6233#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6234#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6235pub struct Ymir;
6236impl Origin for Ymir {
6237 fn id(&self) -> NaifId {
6238 NaifId(619i32)
6239 }
6240 fn name(&self) -> &'static str {
6241 "Ymir"
6242 }
6243}
6244impl Display for Ymir {
6245 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6246 write!(f, "{}", self.name())
6247 }
6248}
6249impl From<Ymir> for DynOrigin {
6250 fn from(_: Ymir) -> Self {
6251 DynOrigin::Ymir
6252 }
6253}
6254#[doc = "Paaliaq (NAIF ID: 620)."]
6255#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6256#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6257pub struct Paaliaq;
6258impl Origin for Paaliaq {
6259 fn id(&self) -> NaifId {
6260 NaifId(620i32)
6261 }
6262 fn name(&self) -> &'static str {
6263 "Paaliaq"
6264 }
6265}
6266impl Display for Paaliaq {
6267 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6268 write!(f, "{}", self.name())
6269 }
6270}
6271impl From<Paaliaq> for DynOrigin {
6272 fn from(_: Paaliaq) -> Self {
6273 DynOrigin::Paaliaq
6274 }
6275}
6276#[doc = "Tarvos (NAIF ID: 621)."]
6277#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6278#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6279pub struct Tarvos;
6280impl Origin for Tarvos {
6281 fn id(&self) -> NaifId {
6282 NaifId(621i32)
6283 }
6284 fn name(&self) -> &'static str {
6285 "Tarvos"
6286 }
6287}
6288impl Display for Tarvos {
6289 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6290 write!(f, "{}", self.name())
6291 }
6292}
6293impl From<Tarvos> for DynOrigin {
6294 fn from(_: Tarvos) -> Self {
6295 DynOrigin::Tarvos
6296 }
6297}
6298#[doc = "Ijiraq (NAIF ID: 622)."]
6299#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6300#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6301pub struct Ijiraq;
6302impl Origin for Ijiraq {
6303 fn id(&self) -> NaifId {
6304 NaifId(622i32)
6305 }
6306 fn name(&self) -> &'static str {
6307 "Ijiraq"
6308 }
6309}
6310impl Display for Ijiraq {
6311 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6312 write!(f, "{}", self.name())
6313 }
6314}
6315impl From<Ijiraq> for DynOrigin {
6316 fn from(_: Ijiraq) -> Self {
6317 DynOrigin::Ijiraq
6318 }
6319}
6320#[doc = "Suttungr (NAIF ID: 623)."]
6321#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6322#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6323pub struct Suttungr;
6324impl Origin for Suttungr {
6325 fn id(&self) -> NaifId {
6326 NaifId(623i32)
6327 }
6328 fn name(&self) -> &'static str {
6329 "Suttungr"
6330 }
6331}
6332impl Display for Suttungr {
6333 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6334 write!(f, "{}", self.name())
6335 }
6336}
6337impl From<Suttungr> for DynOrigin {
6338 fn from(_: Suttungr) -> Self {
6339 DynOrigin::Suttungr
6340 }
6341}
6342#[doc = "Kiviuq (NAIF ID: 624)."]
6343#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6344#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6345pub struct Kiviuq;
6346impl Origin for Kiviuq {
6347 fn id(&self) -> NaifId {
6348 NaifId(624i32)
6349 }
6350 fn name(&self) -> &'static str {
6351 "Kiviuq"
6352 }
6353}
6354impl Display for Kiviuq {
6355 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6356 write!(f, "{}", self.name())
6357 }
6358}
6359impl From<Kiviuq> for DynOrigin {
6360 fn from(_: Kiviuq) -> Self {
6361 DynOrigin::Kiviuq
6362 }
6363}
6364#[doc = "Mundilfari (NAIF ID: 625)."]
6365#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6366#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6367pub struct Mundilfari;
6368impl Origin for Mundilfari {
6369 fn id(&self) -> NaifId {
6370 NaifId(625i32)
6371 }
6372 fn name(&self) -> &'static str {
6373 "Mundilfari"
6374 }
6375}
6376impl Display for Mundilfari {
6377 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6378 write!(f, "{}", self.name())
6379 }
6380}
6381impl From<Mundilfari> for DynOrigin {
6382 fn from(_: Mundilfari) -> Self {
6383 DynOrigin::Mundilfari
6384 }
6385}
6386#[doc = "Albiorix (NAIF ID: 626)."]
6387#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6388#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6389pub struct Albiorix;
6390impl Origin for Albiorix {
6391 fn id(&self) -> NaifId {
6392 NaifId(626i32)
6393 }
6394 fn name(&self) -> &'static str {
6395 "Albiorix"
6396 }
6397}
6398impl Display for Albiorix {
6399 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6400 write!(f, "{}", self.name())
6401 }
6402}
6403impl From<Albiorix> for DynOrigin {
6404 fn from(_: Albiorix) -> Self {
6405 DynOrigin::Albiorix
6406 }
6407}
6408#[doc = "Skathi (NAIF ID: 627)."]
6409#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6410#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6411pub struct Skathi;
6412impl Origin for Skathi {
6413 fn id(&self) -> NaifId {
6414 NaifId(627i32)
6415 }
6416 fn name(&self) -> &'static str {
6417 "Skathi"
6418 }
6419}
6420impl Display for Skathi {
6421 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6422 write!(f, "{}", self.name())
6423 }
6424}
6425impl From<Skathi> for DynOrigin {
6426 fn from(_: Skathi) -> Self {
6427 DynOrigin::Skathi
6428 }
6429}
6430#[doc = "Erriapus (NAIF ID: 628)."]
6431#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6432#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6433pub struct Erriapus;
6434impl Origin for Erriapus {
6435 fn id(&self) -> NaifId {
6436 NaifId(628i32)
6437 }
6438 fn name(&self) -> &'static str {
6439 "Erriapus"
6440 }
6441}
6442impl Display for Erriapus {
6443 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6444 write!(f, "{}", self.name())
6445 }
6446}
6447impl From<Erriapus> for DynOrigin {
6448 fn from(_: Erriapus) -> Self {
6449 DynOrigin::Erriapus
6450 }
6451}
6452#[doc = "Siarnaq (NAIF ID: 629)."]
6453#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6454#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6455pub struct Siarnaq;
6456impl Origin for Siarnaq {
6457 fn id(&self) -> NaifId {
6458 NaifId(629i32)
6459 }
6460 fn name(&self) -> &'static str {
6461 "Siarnaq"
6462 }
6463}
6464impl Display for Siarnaq {
6465 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6466 write!(f, "{}", self.name())
6467 }
6468}
6469impl From<Siarnaq> for DynOrigin {
6470 fn from(_: Siarnaq) -> Self {
6471 DynOrigin::Siarnaq
6472 }
6473}
6474#[doc = "Thrymr (NAIF ID: 630)."]
6475#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6476#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6477pub struct Thrymr;
6478impl Origin for Thrymr {
6479 fn id(&self) -> NaifId {
6480 NaifId(630i32)
6481 }
6482 fn name(&self) -> &'static str {
6483 "Thrymr"
6484 }
6485}
6486impl Display for Thrymr {
6487 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6488 write!(f, "{}", self.name())
6489 }
6490}
6491impl From<Thrymr> for DynOrigin {
6492 fn from(_: Thrymr) -> Self {
6493 DynOrigin::Thrymr
6494 }
6495}
6496#[doc = "Narvi (NAIF ID: 631)."]
6497#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6498#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6499pub struct Narvi;
6500impl Origin for Narvi {
6501 fn id(&self) -> NaifId {
6502 NaifId(631i32)
6503 }
6504 fn name(&self) -> &'static str {
6505 "Narvi"
6506 }
6507}
6508impl Display for Narvi {
6509 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6510 write!(f, "{}", self.name())
6511 }
6512}
6513impl From<Narvi> for DynOrigin {
6514 fn from(_: Narvi) -> Self {
6515 DynOrigin::Narvi
6516 }
6517}
6518#[doc = "Methone (NAIF ID: 632)."]
6519#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6520#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6521pub struct Methone;
6522impl Origin for Methone {
6523 fn id(&self) -> NaifId {
6524 NaifId(632i32)
6525 }
6526 fn name(&self) -> &'static str {
6527 "Methone"
6528 }
6529}
6530impl Display for Methone {
6531 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6532 write!(f, "{}", self.name())
6533 }
6534}
6535impl From<Methone> for DynOrigin {
6536 fn from(_: Methone) -> Self {
6537 DynOrigin::Methone
6538 }
6539}
6540impl MeanRadius for Methone {
6541 fn mean_radius(&self) -> Distance {
6542 Distance::kilometers(1.45f64)
6543 }
6544}
6545impl TriaxialEllipsoid for Methone {
6546 fn radii(&self) -> Radii {
6547 (
6548 Distance::kilometers(1.94f64),
6549 Distance::kilometers(1.29f64),
6550 Distance::kilometers(1.21f64),
6551 )
6552 }
6553}
6554#[doc = "Pallene (NAIF ID: 633)."]
6555#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6556#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6557pub struct Pallene;
6558impl Origin for Pallene {
6559 fn id(&self) -> NaifId {
6560 NaifId(633i32)
6561 }
6562 fn name(&self) -> &'static str {
6563 "Pallene"
6564 }
6565}
6566impl Display for Pallene {
6567 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6568 write!(f, "{}", self.name())
6569 }
6570}
6571impl From<Pallene> for DynOrigin {
6572 fn from(_: Pallene) -> Self {
6573 DynOrigin::Pallene
6574 }
6575}
6576impl MeanRadius for Pallene {
6577 fn mean_radius(&self) -> Distance {
6578 Distance::kilometers(2.23f64)
6579 }
6580}
6581impl TriaxialEllipsoid for Pallene {
6582 fn radii(&self) -> Radii {
6583 (
6584 Distance::kilometers(2.88f64),
6585 Distance::kilometers(2.08f64),
6586 Distance::kilometers(1.8f64),
6587 )
6588 }
6589}
6590#[doc = "Polydeuces (NAIF ID: 634)."]
6591#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6592#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6593pub struct Polydeuces;
6594impl Origin for Polydeuces {
6595 fn id(&self) -> NaifId {
6596 NaifId(634i32)
6597 }
6598 fn name(&self) -> &'static str {
6599 "Polydeuces"
6600 }
6601}
6602impl Display for Polydeuces {
6603 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6604 write!(f, "{}", self.name())
6605 }
6606}
6607impl From<Polydeuces> for DynOrigin {
6608 fn from(_: Polydeuces) -> Self {
6609 DynOrigin::Polydeuces
6610 }
6611}
6612impl MeanRadius for Polydeuces {
6613 fn mean_radius(&self) -> Distance {
6614 Distance::kilometers(1.3f64)
6615 }
6616}
6617impl TriaxialEllipsoid for Polydeuces {
6618 fn radii(&self) -> Radii {
6619 (
6620 Distance::kilometers(1.5f64),
6621 Distance::kilometers(1.2f64),
6622 Distance::kilometers(1f64),
6623 )
6624 }
6625}
6626#[doc = "Daphnis (NAIF ID: 635)."]
6627#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6628#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6629pub struct Daphnis;
6630impl Origin for Daphnis {
6631 fn id(&self) -> NaifId {
6632 NaifId(635i32)
6633 }
6634 fn name(&self) -> &'static str {
6635 "Daphnis"
6636 }
6637}
6638impl Display for Daphnis {
6639 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6640 write!(f, "{}", self.name())
6641 }
6642}
6643impl From<Daphnis> for DynOrigin {
6644 fn from(_: Daphnis) -> Self {
6645 DynOrigin::Daphnis
6646 }
6647}
6648impl MeanRadius for Daphnis {
6649 fn mean_radius(&self) -> Distance {
6650 Distance::kilometers(3.8f64)
6651 }
6652}
6653impl TriaxialEllipsoid for Daphnis {
6654 fn radii(&self) -> Radii {
6655 (
6656 Distance::kilometers(4.6f64),
6657 Distance::kilometers(4.5f64),
6658 Distance::kilometers(2.8f64),
6659 )
6660 }
6661}
6662#[doc = "Aegir (NAIF ID: 636)."]
6663#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6664#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6665pub struct Aegir;
6666impl Origin for Aegir {
6667 fn id(&self) -> NaifId {
6668 NaifId(636i32)
6669 }
6670 fn name(&self) -> &'static str {
6671 "Aegir"
6672 }
6673}
6674impl Display for Aegir {
6675 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6676 write!(f, "{}", self.name())
6677 }
6678}
6679impl From<Aegir> for DynOrigin {
6680 fn from(_: Aegir) -> Self {
6681 DynOrigin::Aegir
6682 }
6683}
6684#[doc = "Bebhionn (NAIF ID: 637)."]
6685#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6686#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6687pub struct Bebhionn;
6688impl Origin for Bebhionn {
6689 fn id(&self) -> NaifId {
6690 NaifId(637i32)
6691 }
6692 fn name(&self) -> &'static str {
6693 "Bebhionn"
6694 }
6695}
6696impl Display for Bebhionn {
6697 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6698 write!(f, "{}", self.name())
6699 }
6700}
6701impl From<Bebhionn> for DynOrigin {
6702 fn from(_: Bebhionn) -> Self {
6703 DynOrigin::Bebhionn
6704 }
6705}
6706#[doc = "Bergelmir (NAIF ID: 638)."]
6707#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6708#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6709pub struct Bergelmir;
6710impl Origin for Bergelmir {
6711 fn id(&self) -> NaifId {
6712 NaifId(638i32)
6713 }
6714 fn name(&self) -> &'static str {
6715 "Bergelmir"
6716 }
6717}
6718impl Display for Bergelmir {
6719 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6720 write!(f, "{}", self.name())
6721 }
6722}
6723impl From<Bergelmir> for DynOrigin {
6724 fn from(_: Bergelmir) -> Self {
6725 DynOrigin::Bergelmir
6726 }
6727}
6728#[doc = "Bestla (NAIF ID: 639)."]
6729#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6730#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6731pub struct Bestla;
6732impl Origin for Bestla {
6733 fn id(&self) -> NaifId {
6734 NaifId(639i32)
6735 }
6736 fn name(&self) -> &'static str {
6737 "Bestla"
6738 }
6739}
6740impl Display for Bestla {
6741 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6742 write!(f, "{}", self.name())
6743 }
6744}
6745impl From<Bestla> for DynOrigin {
6746 fn from(_: Bestla) -> Self {
6747 DynOrigin::Bestla
6748 }
6749}
6750#[doc = "Farbauti (NAIF ID: 640)."]
6751#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6752#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6753pub struct Farbauti;
6754impl Origin for Farbauti {
6755 fn id(&self) -> NaifId {
6756 NaifId(640i32)
6757 }
6758 fn name(&self) -> &'static str {
6759 "Farbauti"
6760 }
6761}
6762impl Display for Farbauti {
6763 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6764 write!(f, "{}", self.name())
6765 }
6766}
6767impl From<Farbauti> for DynOrigin {
6768 fn from(_: Farbauti) -> Self {
6769 DynOrigin::Farbauti
6770 }
6771}
6772#[doc = "Fenrir (NAIF ID: 641)."]
6773#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6774#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6775pub struct Fenrir;
6776impl Origin for Fenrir {
6777 fn id(&self) -> NaifId {
6778 NaifId(641i32)
6779 }
6780 fn name(&self) -> &'static str {
6781 "Fenrir"
6782 }
6783}
6784impl Display for Fenrir {
6785 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6786 write!(f, "{}", self.name())
6787 }
6788}
6789impl From<Fenrir> for DynOrigin {
6790 fn from(_: Fenrir) -> Self {
6791 DynOrigin::Fenrir
6792 }
6793}
6794#[doc = "Fornjot (NAIF ID: 642)."]
6795#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6796#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6797pub struct Fornjot;
6798impl Origin for Fornjot {
6799 fn id(&self) -> NaifId {
6800 NaifId(642i32)
6801 }
6802 fn name(&self) -> &'static str {
6803 "Fornjot"
6804 }
6805}
6806impl Display for Fornjot {
6807 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6808 write!(f, "{}", self.name())
6809 }
6810}
6811impl From<Fornjot> for DynOrigin {
6812 fn from(_: Fornjot) -> Self {
6813 DynOrigin::Fornjot
6814 }
6815}
6816#[doc = "Hati (NAIF ID: 643)."]
6817#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6818#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6819pub struct Hati;
6820impl Origin for Hati {
6821 fn id(&self) -> NaifId {
6822 NaifId(643i32)
6823 }
6824 fn name(&self) -> &'static str {
6825 "Hati"
6826 }
6827}
6828impl Display for Hati {
6829 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6830 write!(f, "{}", self.name())
6831 }
6832}
6833impl From<Hati> for DynOrigin {
6834 fn from(_: Hati) -> Self {
6835 DynOrigin::Hati
6836 }
6837}
6838#[doc = "Hyrrokkin (NAIF ID: 644)."]
6839#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6840#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6841pub struct Hyrrokkin;
6842impl Origin for Hyrrokkin {
6843 fn id(&self) -> NaifId {
6844 NaifId(644i32)
6845 }
6846 fn name(&self) -> &'static str {
6847 "Hyrrokkin"
6848 }
6849}
6850impl Display for Hyrrokkin {
6851 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6852 write!(f, "{}", self.name())
6853 }
6854}
6855impl From<Hyrrokkin> for DynOrigin {
6856 fn from(_: Hyrrokkin) -> Self {
6857 DynOrigin::Hyrrokkin
6858 }
6859}
6860#[doc = "Kari (NAIF ID: 645)."]
6861#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6862#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6863pub struct Kari;
6864impl Origin for Kari {
6865 fn id(&self) -> NaifId {
6866 NaifId(645i32)
6867 }
6868 fn name(&self) -> &'static str {
6869 "Kari"
6870 }
6871}
6872impl Display for Kari {
6873 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6874 write!(f, "{}", self.name())
6875 }
6876}
6877impl From<Kari> for DynOrigin {
6878 fn from(_: Kari) -> Self {
6879 DynOrigin::Kari
6880 }
6881}
6882#[doc = "Loge (NAIF ID: 646)."]
6883#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6884#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6885pub struct Loge;
6886impl Origin for Loge {
6887 fn id(&self) -> NaifId {
6888 NaifId(646i32)
6889 }
6890 fn name(&self) -> &'static str {
6891 "Loge"
6892 }
6893}
6894impl Display for Loge {
6895 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6896 write!(f, "{}", self.name())
6897 }
6898}
6899impl From<Loge> for DynOrigin {
6900 fn from(_: Loge) -> Self {
6901 DynOrigin::Loge
6902 }
6903}
6904#[doc = "Skoll (NAIF ID: 647)."]
6905#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6906#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6907pub struct Skoll;
6908impl Origin for Skoll {
6909 fn id(&self) -> NaifId {
6910 NaifId(647i32)
6911 }
6912 fn name(&self) -> &'static str {
6913 "Skoll"
6914 }
6915}
6916impl Display for Skoll {
6917 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6918 write!(f, "{}", self.name())
6919 }
6920}
6921impl From<Skoll> for DynOrigin {
6922 fn from(_: Skoll) -> Self {
6923 DynOrigin::Skoll
6924 }
6925}
6926#[doc = "Surtur (NAIF ID: 648)."]
6927#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6928#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6929pub struct Surtur;
6930impl Origin for Surtur {
6931 fn id(&self) -> NaifId {
6932 NaifId(648i32)
6933 }
6934 fn name(&self) -> &'static str {
6935 "Surtur"
6936 }
6937}
6938impl Display for Surtur {
6939 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6940 write!(f, "{}", self.name())
6941 }
6942}
6943impl From<Surtur> for DynOrigin {
6944 fn from(_: Surtur) -> Self {
6945 DynOrigin::Surtur
6946 }
6947}
6948#[doc = "Anthe (NAIF ID: 649)."]
6949#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6950#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6951pub struct Anthe;
6952impl Origin for Anthe {
6953 fn id(&self) -> NaifId {
6954 NaifId(649i32)
6955 }
6956 fn name(&self) -> &'static str {
6957 "Anthe"
6958 }
6959}
6960impl Display for Anthe {
6961 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6962 write!(f, "{}", self.name())
6963 }
6964}
6965impl From<Anthe> for DynOrigin {
6966 fn from(_: Anthe) -> Self {
6967 DynOrigin::Anthe
6968 }
6969}
6970impl MeanRadius for Anthe {
6971 fn mean_radius(&self) -> Distance {
6972 Distance::kilometers(0.5f64)
6973 }
6974}
6975impl TriaxialEllipsoid for Anthe {
6976 fn radii(&self) -> Radii {
6977 (
6978 Distance::kilometers(0.5f64),
6979 Distance::kilometers(0.5f64),
6980 Distance::kilometers(0.5f64),
6981 )
6982 }
6983}
6984impl Spheroid for Anthe {}
6985#[doc = "Jarnsaxa (NAIF ID: 650)."]
6986#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6987#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6988pub struct Jarnsaxa;
6989impl Origin for Jarnsaxa {
6990 fn id(&self) -> NaifId {
6991 NaifId(650i32)
6992 }
6993 fn name(&self) -> &'static str {
6994 "Jarnsaxa"
6995 }
6996}
6997impl Display for Jarnsaxa {
6998 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
6999 write!(f, "{}", self.name())
7000 }
7001}
7002impl From<Jarnsaxa> for DynOrigin {
7003 fn from(_: Jarnsaxa) -> Self {
7004 DynOrigin::Jarnsaxa
7005 }
7006}
7007#[doc = "Greip (NAIF ID: 651)."]
7008#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7009#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7010pub struct Greip;
7011impl Origin for Greip {
7012 fn id(&self) -> NaifId {
7013 NaifId(651i32)
7014 }
7015 fn name(&self) -> &'static str {
7016 "Greip"
7017 }
7018}
7019impl Display for Greip {
7020 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7021 write!(f, "{}", self.name())
7022 }
7023}
7024impl From<Greip> for DynOrigin {
7025 fn from(_: Greip) -> Self {
7026 DynOrigin::Greip
7027 }
7028}
7029#[doc = "Tarqeq (NAIF ID: 652)."]
7030#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7031#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7032pub struct Tarqeq;
7033impl Origin for Tarqeq {
7034 fn id(&self) -> NaifId {
7035 NaifId(652i32)
7036 }
7037 fn name(&self) -> &'static str {
7038 "Tarqeq"
7039 }
7040}
7041impl Display for Tarqeq {
7042 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7043 write!(f, "{}", self.name())
7044 }
7045}
7046impl From<Tarqeq> for DynOrigin {
7047 fn from(_: Tarqeq) -> Self {
7048 DynOrigin::Tarqeq
7049 }
7050}
7051#[doc = "Aegaeon (NAIF ID: 653)."]
7052#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7053#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7054pub struct Aegaeon;
7055impl Origin for Aegaeon {
7056 fn id(&self) -> NaifId {
7057 NaifId(653i32)
7058 }
7059 fn name(&self) -> &'static str {
7060 "Aegaeon"
7061 }
7062}
7063impl Display for Aegaeon {
7064 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7065 write!(f, "{}", self.name())
7066 }
7067}
7068impl From<Aegaeon> for DynOrigin {
7069 fn from(_: Aegaeon) -> Self {
7070 DynOrigin::Aegaeon
7071 }
7072}
7073impl MeanRadius for Aegaeon {
7074 fn mean_radius(&self) -> Distance {
7075 Distance::kilometers(0.33f64)
7076 }
7077}
7078impl TriaxialEllipsoid for Aegaeon {
7079 fn radii(&self) -> Radii {
7080 (
7081 Distance::kilometers(0.7f64),
7082 Distance::kilometers(0.25f64),
7083 Distance::kilometers(0.2f64),
7084 )
7085 }
7086}
7087#[doc = "Ariel (NAIF ID: 701)."]
7088#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7089#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7090pub struct Ariel;
7091impl Origin for Ariel {
7092 fn id(&self) -> NaifId {
7093 NaifId(701i32)
7094 }
7095 fn name(&self) -> &'static str {
7096 "Ariel"
7097 }
7098}
7099impl Display for Ariel {
7100 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7101 write!(f, "{}", self.name())
7102 }
7103}
7104impl From<Ariel> for DynOrigin {
7105 fn from(_: Ariel) -> Self {
7106 DynOrigin::Ariel
7107 }
7108}
7109impl PointMass for Ariel {
7110 fn gravitational_parameter(&self) -> GravitationalParameter {
7111 GravitationalParameter::km3_per_s2(83.46344431770477f64)
7112 }
7113}
7114impl MeanRadius for Ariel {
7115 fn mean_radius(&self) -> Distance {
7116 Distance::kilometers(578.9f64)
7117 }
7118}
7119impl TriaxialEllipsoid for Ariel {
7120 fn radii(&self) -> Radii {
7121 (
7122 Distance::kilometers(581.1f64),
7123 Distance::kilometers(577.9f64),
7124 Distance::kilometers(577.7f64),
7125 )
7126 }
7127}
7128const RIGHT_ASCENSION_ARIEL: RotationalElement<13usize> = RotationalElement {
7129 typ: RotationalElementType::RightAscension,
7130 c0: 4.493001093409003f64,
7131 c1: 0f64,
7132 c2: 0f64,
7133 c: [
7134 0f64,
7135 0f64,
7136 0f64,
7137 0f64,
7138 0f64,
7139 0f64,
7140 0f64,
7141 0f64,
7142 0f64,
7143 0f64,
7144 0f64,
7145 0f64,
7146 0.005061454830783556f64,
7147 ],
7148 theta0: [
7149 2.0202186091834364f64,
7150 2.4729570171507653f64,
7151 2.356718088967943f64,
7152 1.0780898789568973f64,
7153 4.351454891072263f64,
7154 0.7655014099247129f64,
7155 1.3554226970987964f64,
7156 2.746450110938277f64,
7157 1.776919711455427f64,
7158 2.419724474964938f64,
7159 1.784250094313803f64,
7160 5.522396286235258f64,
7161 5.3059754589879615f64,
7162 ],
7163 theta1: [
7164 959.7891933286942f64,
7165 731.077582955928f64,
7166 522.3307938967249f64,
7167 449.1358738582876f64,
7168 427.10754977009157f64,
7169 388.83160660922994f64,
7170 354.1171823199879f64,
7171 290.6454915444109f64,
7172 224.66977689099764f64,
7173 140.70512817020406f64,
7174 -35.32930378471962f64,
7175 49.9855316454168f64,
7176 -0.9065240134858548f64,
7177 ],
7178};
7179const DECLINATION_ARIEL: RotationalElement<13usize> = RotationalElement {
7180 typ: RotationalElementType::Declination,
7181 c0: -0.26354471705114374f64,
7182 c1: 0f64,
7183 c2: 0f64,
7184 c: [
7185 0f64,
7186 0f64,
7187 0f64,
7188 0f64,
7189 0f64,
7190 0f64,
7191 0f64,
7192 0f64,
7193 0f64,
7194 0f64,
7195 0f64,
7196 0f64,
7197 0.004886921905584123f64,
7198 ],
7199 theta0: [
7200 2.0202186091834364f64,
7201 2.4729570171507653f64,
7202 2.356718088967943f64,
7203 1.0780898789568973f64,
7204 4.351454891072263f64,
7205 0.7655014099247129f64,
7206 1.3554226970987964f64,
7207 2.746450110938277f64,
7208 1.776919711455427f64,
7209 2.419724474964938f64,
7210 1.784250094313803f64,
7211 5.522396286235258f64,
7212 5.3059754589879615f64,
7213 ],
7214 theta1: [
7215 959.7891933286942f64,
7216 731.077582955928f64,
7217 522.3307938967249f64,
7218 449.1358738582876f64,
7219 427.10754977009157f64,
7220 388.83160660922994f64,
7221 354.1171823199879f64,
7222 290.6454915444109f64,
7223 224.66977689099764f64,
7224 140.70512817020406f64,
7225 -35.32930378471962f64,
7226 49.9855316454168f64,
7227 -0.9065240134858548f64,
7228 ],
7229};
7230const ROTATION_ARIEL: RotationalElement<13usize> = RotationalElement {
7231 typ: RotationalElementType::Rotation,
7232 c0: 2.7265533574655416f64,
7233 c1: -2.492952697630833f64,
7234 c2: 0f64,
7235 c: [
7236 0f64,
7237 0f64,
7238 0f64,
7239 0f64,
7240 0f64,
7241 0f64,
7242 0f64,
7243 0f64,
7244 0f64,
7245 0f64,
7246 0f64,
7247 0.0008726646259971648f64,
7248 0.0013962634015954637f64,
7249 ],
7250 theta0: [
7251 2.0202186091834364f64,
7252 2.4729570171507653f64,
7253 2.356718088967943f64,
7254 1.0780898789568973f64,
7255 4.351454891072263f64,
7256 0.7655014099247129f64,
7257 1.3554226970987964f64,
7258 2.746450110938277f64,
7259 1.776919711455427f64,
7260 2.419724474964938f64,
7261 1.784250094313803f64,
7262 5.522396286235258f64,
7263 5.3059754589879615f64,
7264 ],
7265 theta1: [
7266 959.7891933286942f64,
7267 731.077582955928f64,
7268 522.3307938967249f64,
7269 449.1358738582876f64,
7270 427.10754977009157f64,
7271 388.83160660922994f64,
7272 354.1171823199879f64,
7273 290.6454915444109f64,
7274 224.66977689099764f64,
7275 140.70512817020406f64,
7276 -35.32930378471962f64,
7277 49.9855316454168f64,
7278 -0.9065240134858548f64,
7279 ],
7280};
7281impl RotationalElements for Ariel {
7282 fn rotational_elements(&self, t: f64) -> Elements {
7283 (
7284 RIGHT_ASCENSION_ARIEL.angle(t),
7285 DECLINATION_ARIEL.angle(t),
7286 ROTATION_ARIEL.angle(t),
7287 )
7288 }
7289 fn rotational_element_rates(&self, t: f64) -> Elements {
7290 (
7291 RIGHT_ASCENSION_ARIEL.angle_dot(t),
7292 DECLINATION_ARIEL.angle_dot(t),
7293 ROTATION_ARIEL.angle_dot(t),
7294 )
7295 }
7296}
7297#[doc = "Umbriel (NAIF ID: 702)."]
7298#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7299#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7300pub struct Umbriel;
7301impl Origin for Umbriel {
7302 fn id(&self) -> NaifId {
7303 NaifId(702i32)
7304 }
7305 fn name(&self) -> &'static str {
7306 "Umbriel"
7307 }
7308}
7309impl Display for Umbriel {
7310 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7311 write!(f, "{}", self.name())
7312 }
7313}
7314impl From<Umbriel> for DynOrigin {
7315 fn from(_: Umbriel) -> Self {
7316 DynOrigin::Umbriel
7317 }
7318}
7319impl PointMass for Umbriel {
7320 fn gravitational_parameter(&self) -> GravitationalParameter {
7321 GravitationalParameter::km3_per_s2(85.09338094489388f64)
7322 }
7323}
7324impl MeanRadius for Umbriel {
7325 fn mean_radius(&self) -> Distance {
7326 Distance::kilometers(584.7f64)
7327 }
7328}
7329impl TriaxialEllipsoid for Umbriel {
7330 fn radii(&self) -> Radii {
7331 (
7332 Distance::kilometers(584.7f64),
7333 Distance::kilometers(584.7f64),
7334 Distance::kilometers(584.7f64),
7335 )
7336 }
7337}
7338impl Spheroid for Umbriel {}
7339const RIGHT_ASCENSION_UMBRIEL: RotationalElement<14usize> = RotationalElement {
7340 typ: RotationalElementType::RightAscension,
7341 c0: 4.493001093409003f64,
7342 c1: 0f64,
7343 c2: 0f64,
7344 c: [
7345 0f64,
7346 0f64,
7347 0f64,
7348 0f64,
7349 0f64,
7350 0f64,
7351 0f64,
7352 0f64,
7353 0f64,
7354 0f64,
7355 0f64,
7356 0f64,
7357 0f64,
7358 0.003665191429188092f64,
7359 ],
7360 theta0: [
7361 2.0202186091834364f64,
7362 2.4729570171507653f64,
7363 2.356718088967943f64,
7364 1.0780898789568973f64,
7365 4.351454891072263f64,
7366 0.7655014099247129f64,
7367 1.3554226970987964f64,
7368 2.746450110938277f64,
7369 1.776919711455427f64,
7370 2.419724474964938f64,
7371 1.784250094313803f64,
7372 5.522396286235258f64,
7373 5.3059754589879615f64,
7374 5.388005933831694f64,
7375 ],
7376 theta1: [
7377 959.7891933286942f64,
7378 731.077582955928f64,
7379 522.3307938967249f64,
7380 449.1358738582876f64,
7381 427.10754977009157f64,
7382 388.83160660922994f64,
7383 354.1171823199879f64,
7384 290.6454915444109f64,
7385 224.66977689099764f64,
7386 140.70512817020406f64,
7387 -35.32930378471962f64,
7388 49.9855316454168f64,
7389 -0.9065240134858548f64,
7390 -1.626123264083117f64,
7391 ],
7392};
7393const DECLINATION_UMBRIEL: RotationalElement<14usize> = RotationalElement {
7394 typ: RotationalElementType::Declination,
7395 c0: -0.26354471705114374f64,
7396 c1: 0f64,
7397 c2: 0f64,
7398 c: [
7399 0f64,
7400 0f64,
7401 0f64,
7402 0f64,
7403 0f64,
7404 0f64,
7405 0f64,
7406 0f64,
7407 0f64,
7408 0f64,
7409 0f64,
7410 0f64,
7411 0f64,
7412 0.003490658503988659f64,
7413 ],
7414 theta0: [
7415 2.0202186091834364f64,
7416 2.4729570171507653f64,
7417 2.356718088967943f64,
7418 1.0780898789568973f64,
7419 4.351454891072263f64,
7420 0.7655014099247129f64,
7421 1.3554226970987964f64,
7422 2.746450110938277f64,
7423 1.776919711455427f64,
7424 2.419724474964938f64,
7425 1.784250094313803f64,
7426 5.522396286235258f64,
7427 5.3059754589879615f64,
7428 5.388005933831694f64,
7429 ],
7430 theta1: [
7431 959.7891933286942f64,
7432 731.077582955928f64,
7433 522.3307938967249f64,
7434 449.1358738582876f64,
7435 427.10754977009157f64,
7436 388.83160660922994f64,
7437 354.1171823199879f64,
7438 290.6454915444109f64,
7439 224.66977689099764f64,
7440 140.70512817020406f64,
7441 -35.32930378471962f64,
7442 49.9855316454168f64,
7443 -0.9065240134858548f64,
7444 -1.626123264083117f64,
7445 ],
7446};
7447const ROTATION_UMBRIEL: RotationalElement<14usize> = RotationalElement {
7448 typ: RotationalElementType::Rotation,
7449 c0: 1.885828256779873f64,
7450 c1: -1.5161481881953498f64,
7451 c2: 0f64,
7452 c: [
7453 0f64,
7454 0f64,
7455 0f64,
7456 0f64,
7457 0f64,
7458 0f64,
7459 0f64,
7460 0f64,
7461 0f64,
7462 0f64,
7463 0f64,
7464 -0.0015707963267948964f64,
7465 0f64,
7466 0.0010471975511965976f64,
7467 ],
7468 theta0: [
7469 2.0202186091834364f64,
7470 2.4729570171507653f64,
7471 2.356718088967943f64,
7472 1.0780898789568973f64,
7473 4.351454891072263f64,
7474 0.7655014099247129f64,
7475 1.3554226970987964f64,
7476 2.746450110938277f64,
7477 1.776919711455427f64,
7478 2.419724474964938f64,
7479 1.784250094313803f64,
7480 5.522396286235258f64,
7481 5.3059754589879615f64,
7482 5.388005933831694f64,
7483 ],
7484 theta1: [
7485 959.7891933286942f64,
7486 731.077582955928f64,
7487 522.3307938967249f64,
7488 449.1358738582876f64,
7489 427.10754977009157f64,
7490 388.83160660922994f64,
7491 354.1171823199879f64,
7492 290.6454915444109f64,
7493 224.66977689099764f64,
7494 140.70512817020406f64,
7495 -35.32930378471962f64,
7496 49.9855316454168f64,
7497 -0.9065240134858548f64,
7498 -1.626123264083117f64,
7499 ],
7500};
7501impl RotationalElements for Umbriel {
7502 fn rotational_elements(&self, t: f64) -> Elements {
7503 (
7504 RIGHT_ASCENSION_UMBRIEL.angle(t),
7505 DECLINATION_UMBRIEL.angle(t),
7506 ROTATION_UMBRIEL.angle(t),
7507 )
7508 }
7509 fn rotational_element_rates(&self, t: f64) -> Elements {
7510 (
7511 RIGHT_ASCENSION_UMBRIEL.angle_dot(t),
7512 DECLINATION_UMBRIEL.angle_dot(t),
7513 ROTATION_UMBRIEL.angle_dot(t),
7514 )
7515 }
7516}
7517#[doc = "Titania (NAIF ID: 703)."]
7518#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7519#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7520pub struct Titania;
7521impl Origin for Titania {
7522 fn id(&self) -> NaifId {
7523 NaifId(703i32)
7524 }
7525 fn name(&self) -> &'static str {
7526 "Titania"
7527 }
7528}
7529impl Display for Titania {
7530 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7531 write!(f, "{}", self.name())
7532 }
7533}
7534impl From<Titania> for DynOrigin {
7535 fn from(_: Titania) -> Self {
7536 DynOrigin::Titania
7537 }
7538}
7539impl PointMass for Titania {
7540 fn gravitational_parameter(&self) -> GravitationalParameter {
7541 GravitationalParameter::km3_per_s2(226.9437003741248f64)
7542 }
7543}
7544impl MeanRadius for Titania {
7545 fn mean_radius(&self) -> Distance {
7546 Distance::kilometers(788.9f64)
7547 }
7548}
7549impl TriaxialEllipsoid for Titania {
7550 fn radii(&self) -> Radii {
7551 (
7552 Distance::kilometers(788.9f64),
7553 Distance::kilometers(788.9f64),
7554 Distance::kilometers(788.9f64),
7555 )
7556 }
7557}
7558impl Spheroid for Titania {}
7559const RIGHT_ASCENSION_TITANIA: RotationalElement<15usize> = RotationalElement {
7560 typ: RotationalElementType::RightAscension,
7561 c0: 4.493001093409003f64,
7562 c1: 0f64,
7563 c2: 0f64,
7564 c: [
7565 0f64,
7566 0f64,
7567 0f64,
7568 0f64,
7569 0f64,
7570 0f64,
7571 0f64,
7572 0f64,
7573 0f64,
7574 0f64,
7575 0f64,
7576 0f64,
7577 0f64,
7578 0f64,
7579 0.005061454830783556f64,
7580 ],
7581 theta0: [
7582 2.0202186091834364f64,
7583 2.4729570171507653f64,
7584 2.356718088967943f64,
7585 1.0780898789568973f64,
7586 4.351454891072263f64,
7587 0.7655014099247129f64,
7588 1.3554226970987964f64,
7589 2.746450110938277f64,
7590 1.776919711455427f64,
7591 2.419724474964938f64,
7592 1.784250094313803f64,
7593 5.522396286235258f64,
7594 5.3059754589879615f64,
7595 5.388005933831694f64,
7596 5.948431156647074f64,
7597 ],
7598 theta1: [
7599 959.7891933286942f64,
7600 731.077582955928f64,
7601 522.3307938967249f64,
7602 449.1358738582876f64,
7603 427.10754977009157f64,
7604 388.83160660922994f64,
7605 354.1171823199879f64,
7606 290.6454915444109f64,
7607 224.66977689099764f64,
7608 140.70512817020406f64,
7609 -35.32930378471962f64,
7610 49.9855316454168f64,
7611 -0.9065240134858548f64,
7612 -1.626123264083117f64,
7613 -1.314581992602129f64,
7614 ],
7615};
7616const DECLINATION_TITANIA: RotationalElement<15usize> = RotationalElement {
7617 typ: RotationalElementType::Declination,
7618 c0: -0.26354471705114374f64,
7619 c1: 0f64,
7620 c2: 0f64,
7621 c: [
7622 0f64,
7623 0f64,
7624 0f64,
7625 0f64,
7626 0f64,
7627 0f64,
7628 0f64,
7629 0f64,
7630 0f64,
7631 0f64,
7632 0f64,
7633 0f64,
7634 0f64,
7635 0f64,
7636 0.004886921905584123f64,
7637 ],
7638 theta0: [
7639 2.0202186091834364f64,
7640 2.4729570171507653f64,
7641 2.356718088967943f64,
7642 1.0780898789568973f64,
7643 4.351454891072263f64,
7644 0.7655014099247129f64,
7645 1.3554226970987964f64,
7646 2.746450110938277f64,
7647 1.776919711455427f64,
7648 2.419724474964938f64,
7649 1.784250094313803f64,
7650 5.522396286235258f64,
7651 5.3059754589879615f64,
7652 5.388005933831694f64,
7653 5.948431156647074f64,
7654 ],
7655 theta1: [
7656 959.7891933286942f64,
7657 731.077582955928f64,
7658 522.3307938967249f64,
7659 449.1358738582876f64,
7660 427.10754977009157f64,
7661 388.83160660922994f64,
7662 354.1171823199879f64,
7663 290.6454915444109f64,
7664 224.66977689099764f64,
7665 140.70512817020406f64,
7666 -35.32930378471962f64,
7667 49.9855316454168f64,
7668 -0.9065240134858548f64,
7669 -1.626123264083117f64,
7670 -1.314581992602129f64,
7671 ],
7672};
7673const ROTATION_TITANIA: RotationalElement<15usize> = RotationalElement {
7674 typ: RotationalElementType::Rotation,
7675 c0: 1.3568189605003917f64,
7676 c1: -0.7217186318332268f64,
7677 c2: 0f64,
7678 c: [
7679 0f64,
7680 0f64,
7681 0f64,
7682 0f64,
7683 0f64,
7684 0f64,
7685 0f64,
7686 0f64,
7687 0f64,
7688 0f64,
7689 0f64,
7690 0f64,
7691 0f64,
7692 0f64,
7693 0.0013962634015954637f64,
7694 ],
7695 theta0: [
7696 2.0202186091834364f64,
7697 2.4729570171507653f64,
7698 2.356718088967943f64,
7699 1.0780898789568973f64,
7700 4.351454891072263f64,
7701 0.7655014099247129f64,
7702 1.3554226970987964f64,
7703 2.746450110938277f64,
7704 1.776919711455427f64,
7705 2.419724474964938f64,
7706 1.784250094313803f64,
7707 5.522396286235258f64,
7708 5.3059754589879615f64,
7709 5.388005933831694f64,
7710 5.948431156647074f64,
7711 ],
7712 theta1: [
7713 959.7891933286942f64,
7714 731.077582955928f64,
7715 522.3307938967249f64,
7716 449.1358738582876f64,
7717 427.10754977009157f64,
7718 388.83160660922994f64,
7719 354.1171823199879f64,
7720 290.6454915444109f64,
7721 224.66977689099764f64,
7722 140.70512817020406f64,
7723 -35.32930378471962f64,
7724 49.9855316454168f64,
7725 -0.9065240134858548f64,
7726 -1.626123264083117f64,
7727 -1.314581992602129f64,
7728 ],
7729};
7730impl RotationalElements for Titania {
7731 fn rotational_elements(&self, t: f64) -> Elements {
7732 (
7733 RIGHT_ASCENSION_TITANIA.angle(t),
7734 DECLINATION_TITANIA.angle(t),
7735 ROTATION_TITANIA.angle(t),
7736 )
7737 }
7738 fn rotational_element_rates(&self, t: f64) -> Elements {
7739 (
7740 RIGHT_ASCENSION_TITANIA.angle_dot(t),
7741 DECLINATION_TITANIA.angle_dot(t),
7742 ROTATION_TITANIA.angle_dot(t),
7743 )
7744 }
7745}
7746#[doc = "Oberon (NAIF ID: 704)."]
7747#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7748#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7749pub struct Oberon;
7750impl Origin for Oberon {
7751 fn id(&self) -> NaifId {
7752 NaifId(704i32)
7753 }
7754 fn name(&self) -> &'static str {
7755 "Oberon"
7756 }
7757}
7758impl Display for Oberon {
7759 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7760 write!(f, "{}", self.name())
7761 }
7762}
7763impl From<Oberon> for DynOrigin {
7764 fn from(_: Oberon) -> Self {
7765 DynOrigin::Oberon
7766 }
7767}
7768impl PointMass for Oberon {
7769 fn gravitational_parameter(&self) -> GravitationalParameter {
7770 GravitationalParameter::km3_per_s2(205.3234302535623f64)
7771 }
7772}
7773impl MeanRadius for Oberon {
7774 fn mean_radius(&self) -> Distance {
7775 Distance::kilometers(761.4f64)
7776 }
7777}
7778impl TriaxialEllipsoid for Oberon {
7779 fn radii(&self) -> Radii {
7780 (
7781 Distance::kilometers(761.4f64),
7782 Distance::kilometers(761.4f64),
7783 Distance::kilometers(761.4f64),
7784 )
7785 }
7786}
7787impl Spheroid for Oberon {}
7788const RIGHT_ASCENSION_OBERON: RotationalElement<16usize> = RotationalElement {
7789 typ: RotationalElementType::RightAscension,
7790 c0: 4.493001093409003f64,
7791 c1: 0f64,
7792 c2: 0f64,
7793 c: [
7794 0f64,
7795 0f64,
7796 0f64,
7797 0f64,
7798 0f64,
7799 0f64,
7800 0f64,
7801 0f64,
7802 0f64,
7803 0f64,
7804 0f64,
7805 0f64,
7806 0f64,
7807 0f64,
7808 0f64,
7809 0.0027925268031909274f64,
7810 ],
7811 theta0: [
7812 2.0202186091834364f64,
7813 2.4729570171507653f64,
7814 2.356718088967943f64,
7815 1.0780898789568973f64,
7816 4.351454891072263f64,
7817 0.7655014099247129f64,
7818 1.3554226970987964f64,
7819 2.746450110938277f64,
7820 1.776919711455427f64,
7821 2.419724474964938f64,
7822 1.784250094313803f64,
7823 5.522396286235258f64,
7824 5.3059754589879615f64,
7825 5.388005933831694f64,
7826 5.948431156647074f64,
7827 4.522846223618106f64,
7828 ],
7829 theta1: [
7830 959.7891933286942f64,
7831 731.077582955928f64,
7832 522.3307938967249f64,
7833 449.1358738582876f64,
7834 427.10754977009157f64,
7835 388.83160660922994f64,
7836 354.1171823199879f64,
7837 290.6454915444109f64,
7838 224.66977689099764f64,
7839 140.70512817020406f64,
7840 -35.32930378471962f64,
7841 49.9855316454168f64,
7842 -0.9065240134858548f64,
7843 -1.626123264083117f64,
7844 -1.314581992602129f64,
7845 -8.810596596992575f64,
7846 ],
7847};
7848const DECLINATION_OBERON: RotationalElement<16usize> = RotationalElement {
7849 typ: RotationalElementType::Declination,
7850 c0: -0.26354471705114374f64,
7851 c1: 0f64,
7852 c2: 0f64,
7853 c: [
7854 0f64,
7855 0f64,
7856 0f64,
7857 0f64,
7858 0f64,
7859 0f64,
7860 0f64,
7861 0f64,
7862 0f64,
7863 0f64,
7864 0f64,
7865 0f64,
7866 0f64,
7867 0f64,
7868 0f64,
7869 0.0027925268031909274f64,
7870 ],
7871 theta0: [
7872 2.0202186091834364f64,
7873 2.4729570171507653f64,
7874 2.356718088967943f64,
7875 1.0780898789568973f64,
7876 4.351454891072263f64,
7877 0.7655014099247129f64,
7878 1.3554226970987964f64,
7879 2.746450110938277f64,
7880 1.776919711455427f64,
7881 2.419724474964938f64,
7882 1.784250094313803f64,
7883 5.522396286235258f64,
7884 5.3059754589879615f64,
7885 5.388005933831694f64,
7886 5.948431156647074f64,
7887 4.522846223618106f64,
7888 ],
7889 theta1: [
7890 959.7891933286942f64,
7891 731.077582955928f64,
7892 522.3307938967249f64,
7893 449.1358738582876f64,
7894 427.10754977009157f64,
7895 388.83160660922994f64,
7896 354.1171823199879f64,
7897 290.6454915444109f64,
7898 224.66977689099764f64,
7899 140.70512817020406f64,
7900 -35.32930378471962f64,
7901 49.9855316454168f64,
7902 -0.9065240134858548f64,
7903 -1.626123264083117f64,
7904 -1.314581992602129f64,
7905 -8.810596596992575f64,
7906 ],
7907};
7908const ROTATION_OBERON: RotationalElement<16usize> = RotationalElement {
7909 typ: RotationalElementType::Rotation,
7910 c0: 0.1181587903600161f64,
7911 c1: -0.4666921966546346f64,
7912 c2: 0f64,
7913 c: [
7914 0f64,
7915 0f64,
7916 0f64,
7917 0f64,
7918 0f64,
7919 0f64,
7920 0f64,
7921 0f64,
7922 0f64,
7923 0f64,
7924 0f64,
7925 0f64,
7926 0f64,
7927 0f64,
7928 0f64,
7929 0.0006981317007977319f64,
7930 ],
7931 theta0: [
7932 2.0202186091834364f64,
7933 2.4729570171507653f64,
7934 2.356718088967943f64,
7935 1.0780898789568973f64,
7936 4.351454891072263f64,
7937 0.7655014099247129f64,
7938 1.3554226970987964f64,
7939 2.746450110938277f64,
7940 1.776919711455427f64,
7941 2.419724474964938f64,
7942 1.784250094313803f64,
7943 5.522396286235258f64,
7944 5.3059754589879615f64,
7945 5.388005933831694f64,
7946 5.948431156647074f64,
7947 4.522846223618106f64,
7948 ],
7949 theta1: [
7950 959.7891933286942f64,
7951 731.077582955928f64,
7952 522.3307938967249f64,
7953 449.1358738582876f64,
7954 427.10754977009157f64,
7955 388.83160660922994f64,
7956 354.1171823199879f64,
7957 290.6454915444109f64,
7958 224.66977689099764f64,
7959 140.70512817020406f64,
7960 -35.32930378471962f64,
7961 49.9855316454168f64,
7962 -0.9065240134858548f64,
7963 -1.626123264083117f64,
7964 -1.314581992602129f64,
7965 -8.810596596992575f64,
7966 ],
7967};
7968impl RotationalElements for Oberon {
7969 fn rotational_elements(&self, t: f64) -> Elements {
7970 (
7971 RIGHT_ASCENSION_OBERON.angle(t),
7972 DECLINATION_OBERON.angle(t),
7973 ROTATION_OBERON.angle(t),
7974 )
7975 }
7976 fn rotational_element_rates(&self, t: f64) -> Elements {
7977 (
7978 RIGHT_ASCENSION_OBERON.angle_dot(t),
7979 DECLINATION_OBERON.angle_dot(t),
7980 ROTATION_OBERON.angle_dot(t),
7981 )
7982 }
7983}
7984#[doc = "Miranda (NAIF ID: 705)."]
7985#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7986#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7987pub struct Miranda;
7988impl Origin for Miranda {
7989 fn id(&self) -> NaifId {
7990 NaifId(705i32)
7991 }
7992 fn name(&self) -> &'static str {
7993 "Miranda"
7994 }
7995}
7996impl Display for Miranda {
7997 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
7998 write!(f, "{}", self.name())
7999 }
8000}
8001impl From<Miranda> for DynOrigin {
8002 fn from(_: Miranda) -> Self {
8003 DynOrigin::Miranda
8004 }
8005}
8006impl PointMass for Miranda {
8007 fn gravitational_parameter(&self) -> GravitationalParameter {
8008 GravitationalParameter::km3_per_s2(4.3195168992321f64)
8009 }
8010}
8011impl MeanRadius for Miranda {
8012 fn mean_radius(&self) -> Distance {
8013 Distance::kilometers(235.8f64)
8014 }
8015}
8016impl TriaxialEllipsoid for Miranda {
8017 fn radii(&self) -> Radii {
8018 (
8019 Distance::kilometers(240.4f64),
8020 Distance::kilometers(234.2f64),
8021 Distance::kilometers(232.9f64),
8022 )
8023 }
8024}
8025const RIGHT_ASCENSION_MIRANDA: RotationalElement<18usize> = RotationalElement {
8026 typ: RotationalElementType::RightAscension,
8027 c0: 4.493001093409003f64,
8028 c1: 0f64,
8029 c2: 0f64,
8030 c: [
8031 0f64,
8032 0f64,
8033 0f64,
8034 0f64,
8035 0f64,
8036 0f64,
8037 0f64,
8038 0f64,
8039 0f64,
8040 0f64,
8041 0.07696902001294993f64,
8042 0f64,
8043 0f64,
8044 0f64,
8045 0f64,
8046 0f64,
8047 -0.0006981317007977319f64,
8048 0f64,
8049 ],
8050 theta0: [
8051 2.0202186091834364f64,
8052 2.4729570171507653f64,
8053 2.356718088967943f64,
8054 1.0780898789568973f64,
8055 4.351454891072263f64,
8056 0.7655014099247129f64,
8057 1.3554226970987964f64,
8058 2.746450110938277f64,
8059 1.776919711455427f64,
8060 2.419724474964938f64,
8061 1.784250094313803f64,
8062 5.522396286235258f64,
8063 5.3059754589879615f64,
8064 5.388005933831694f64,
8065 5.948431156647074f64,
8066 4.522846223618106f64,
8067 3.568500188627606f64,
8068 11.044792572470516f64,
8069 ],
8070 theta1: [
8071 959.7891933286942f64,
8072 731.077582955928f64,
8073 522.3307938967249f64,
8074 449.1358738582876f64,
8075 427.10754977009157f64,
8076 388.83160660922994f64,
8077 354.1171823199879f64,
8078 290.6454915444109f64,
8079 224.66977689099764f64,
8080 140.70512817020406f64,
8081 -35.32930378471962f64,
8082 49.9855316454168f64,
8083 -0.9065240134858548f64,
8084 -1.626123264083117f64,
8085 -1.314581992602129f64,
8086 -8.810596596992575f64,
8087 -70.65860756943924f64,
8088 99.9710632908336f64,
8089 ],
8090};
8091const DECLINATION_MIRANDA: RotationalElement<18usize> = RotationalElement {
8092 typ: RotationalElementType::Declination,
8093 c0: -0.2631956512007449f64,
8094 c1: 0f64,
8095 c2: 0f64,
8096 c: [
8097 0f64,
8098 0f64,
8099 0f64,
8100 0f64,
8101 0f64,
8102 0f64,
8103 0f64,
8104 0f64,
8105 0f64,
8106 0f64,
8107 0.07417649320975901f64,
8108 0f64,
8109 0f64,
8110 0f64,
8111 0f64,
8112 0f64,
8113 -0.00034906585039886593f64,
8114 0f64,
8115 ],
8116 theta0: [
8117 2.0202186091834364f64,
8118 2.4729570171507653f64,
8119 2.356718088967943f64,
8120 1.0780898789568973f64,
8121 4.351454891072263f64,
8122 0.7655014099247129f64,
8123 1.3554226970987964f64,
8124 2.746450110938277f64,
8125 1.776919711455427f64,
8126 2.419724474964938f64,
8127 1.784250094313803f64,
8128 5.522396286235258f64,
8129 5.3059754589879615f64,
8130 5.388005933831694f64,
8131 5.948431156647074f64,
8132 4.522846223618106f64,
8133 3.568500188627606f64,
8134 11.044792572470516f64,
8135 ],
8136 theta1: [
8137 959.7891933286942f64,
8138 731.077582955928f64,
8139 522.3307938967249f64,
8140 449.1358738582876f64,
8141 427.10754977009157f64,
8142 388.83160660922994f64,
8143 354.1171823199879f64,
8144 290.6454915444109f64,
8145 224.66977689099764f64,
8146 140.70512817020406f64,
8147 -35.32930378471962f64,
8148 49.9855316454168f64,
8149 -0.9065240134858548f64,
8150 -1.626123264083117f64,
8151 -1.314581992602129f64,
8152 -8.810596596992575f64,
8153 -70.65860756943924f64,
8154 99.9710632908336f64,
8155 ],
8156};
8157const ROTATION_MIRANDA: RotationalElement<18usize> = RotationalElement {
8158 typ: RotationalElementType::Rotation,
8159 c0: 0.5358160803622591f64,
8160 c1: -4.445191100713563f64,
8161 c2: 0f64,
8162 c: [
8163 0f64,
8164 0f64,
8165 0f64,
8166 0f64,
8167 0f64,
8168 0f64,
8169 0f64,
8170 0f64,
8171 0f64,
8172 0f64,
8173 0.02007128639793479f64,
8174 -0.022165681500327987f64,
8175 0f64,
8176 0f64,
8177 0f64,
8178 0f64,
8179 -0.0015707963267948964f64,
8180 0.002617993877991494f64,
8181 ],
8182 theta0: [
8183 2.0202186091834364f64,
8184 2.4729570171507653f64,
8185 2.356718088967943f64,
8186 1.0780898789568973f64,
8187 4.351454891072263f64,
8188 0.7655014099247129f64,
8189 1.3554226970987964f64,
8190 2.746450110938277f64,
8191 1.776919711455427f64,
8192 2.419724474964938f64,
8193 1.784250094313803f64,
8194 5.522396286235258f64,
8195 5.3059754589879615f64,
8196 5.388005933831694f64,
8197 5.948431156647074f64,
8198 4.522846223618106f64,
8199 3.568500188627606f64,
8200 11.044792572470516f64,
8201 ],
8202 theta1: [
8203 959.7891933286942f64,
8204 731.077582955928f64,
8205 522.3307938967249f64,
8206 449.1358738582876f64,
8207 427.10754977009157f64,
8208 388.83160660922994f64,
8209 354.1171823199879f64,
8210 290.6454915444109f64,
8211 224.66977689099764f64,
8212 140.70512817020406f64,
8213 -35.32930378471962f64,
8214 49.9855316454168f64,
8215 -0.9065240134858548f64,
8216 -1.626123264083117f64,
8217 -1.314581992602129f64,
8218 -8.810596596992575f64,
8219 -70.65860756943924f64,
8220 99.9710632908336f64,
8221 ],
8222};
8223impl RotationalElements for Miranda {
8224 fn rotational_elements(&self, t: f64) -> Elements {
8225 (
8226 RIGHT_ASCENSION_MIRANDA.angle(t),
8227 DECLINATION_MIRANDA.angle(t),
8228 ROTATION_MIRANDA.angle(t),
8229 )
8230 }
8231 fn rotational_element_rates(&self, t: f64) -> Elements {
8232 (
8233 RIGHT_ASCENSION_MIRANDA.angle_dot(t),
8234 DECLINATION_MIRANDA.angle_dot(t),
8235 ROTATION_MIRANDA.angle_dot(t),
8236 )
8237 }
8238}
8239#[doc = "Cordelia (NAIF ID: 706)."]
8240#[derive(Debug, Copy, Clone, Eq, PartialEq)]
8241#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8242pub struct Cordelia;
8243impl Origin for Cordelia {
8244 fn id(&self) -> NaifId {
8245 NaifId(706i32)
8246 }
8247 fn name(&self) -> &'static str {
8248 "Cordelia"
8249 }
8250}
8251impl Display for Cordelia {
8252 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
8253 write!(f, "{}", self.name())
8254 }
8255}
8256impl From<Cordelia> for DynOrigin {
8257 fn from(_: Cordelia) -> Self {
8258 DynOrigin::Cordelia
8259 }
8260}
8261impl MeanRadius for Cordelia {
8262 fn mean_radius(&self) -> Distance {
8263 Distance::kilometers(13f64)
8264 }
8265}
8266impl TriaxialEllipsoid for Cordelia {
8267 fn radii(&self) -> Radii {
8268 (
8269 Distance::kilometers(13f64),
8270 Distance::kilometers(13f64),
8271 Distance::kilometers(13f64),
8272 )
8273 }
8274}
8275impl Spheroid for Cordelia {}
8276const RIGHT_ASCENSION_CORDELIA: RotationalElement<18usize> = RotationalElement {
8277 typ: RotationalElementType::RightAscension,
8278 c0: 4.49090669830661f64,
8279 c1: 0f64,
8280 c2: 0f64,
8281 c: [
8282 -0.002617993877991494f64,
8283 0f64,
8284 0f64,
8285 0f64,
8286 0f64,
8287 0f64,
8288 0f64,
8289 0f64,
8290 0f64,
8291 0f64,
8292 0f64,
8293 0f64,
8294 0f64,
8295 0f64,
8296 0f64,
8297 0f64,
8298 0f64,
8299 0f64,
8300 ],
8301 theta0: [
8302 2.0202186091834364f64,
8303 2.4729570171507653f64,
8304 2.356718088967943f64,
8305 1.0780898789568973f64,
8306 4.351454891072263f64,
8307 0.7655014099247129f64,
8308 1.3554226970987964f64,
8309 2.746450110938277f64,
8310 1.776919711455427f64,
8311 2.419724474964938f64,
8312 1.784250094313803f64,
8313 5.522396286235258f64,
8314 5.3059754589879615f64,
8315 5.388005933831694f64,
8316 5.948431156647074f64,
8317 4.522846223618106f64,
8318 3.568500188627606f64,
8319 11.044792572470516f64,
8320 ],
8321 theta1: [
8322 959.7891933286942f64,
8323 731.077582955928f64,
8324 522.3307938967249f64,
8325 449.1358738582876f64,
8326 427.10754977009157f64,
8327 388.83160660922994f64,
8328 354.1171823199879f64,
8329 290.6454915444109f64,
8330 224.66977689099764f64,
8331 140.70512817020406f64,
8332 -35.32930378471962f64,
8333 49.9855316454168f64,
8334 -0.9065240134858548f64,
8335 -1.626123264083117f64,
8336 -1.314581992602129f64,
8337 -8.810596596992575f64,
8338 -70.65860756943924f64,
8339 99.9710632908336f64,
8340 ],
8341};
8342const DECLINATION_CORDELIA: RotationalElement<18usize> = RotationalElement {
8343 typ: RotationalElementType::Declination,
8344 c0: -0.2649409804527392f64,
8345 c1: 0f64,
8346 c2: 0f64,
8347 c: [
8348 0.0024434609527920616f64,
8349 0f64,
8350 0f64,
8351 0f64,
8352 0f64,
8353 0f64,
8354 0f64,
8355 0f64,
8356 0f64,
8357 0f64,
8358 0f64,
8359 0f64,
8360 0f64,
8361 0f64,
8362 0f64,
8363 0f64,
8364 0f64,
8365 0f64,
8366 ],
8367 theta0: [
8368 2.0202186091834364f64,
8369 2.4729570171507653f64,
8370 2.356718088967943f64,
8371 1.0780898789568973f64,
8372 4.351454891072263f64,
8373 0.7655014099247129f64,
8374 1.3554226970987964f64,
8375 2.746450110938277f64,
8376 1.776919711455427f64,
8377 2.419724474964938f64,
8378 1.784250094313803f64,
8379 5.522396286235258f64,
8380 5.3059754589879615f64,
8381 5.388005933831694f64,
8382 5.948431156647074f64,
8383 4.522846223618106f64,
8384 3.568500188627606f64,
8385 11.044792572470516f64,
8386 ],
8387 theta1: [
8388 959.7891933286942f64,
8389 731.077582955928f64,
8390 522.3307938967249f64,
8391 449.1358738582876f64,
8392 427.10754977009157f64,
8393 388.83160660922994f64,
8394 354.1171823199879f64,
8395 290.6454915444109f64,
8396 224.66977689099764f64,
8397 140.70512817020406f64,
8398 -35.32930378471962f64,
8399 49.9855316454168f64,
8400 -0.9065240134858548f64,
8401 -1.626123264083117f64,
8402 -1.314581992602129f64,
8403 -8.810596596992575f64,
8404 -70.65860756943924f64,
8405 99.9710632908336f64,
8406 ],
8407};
8408const ROTATION_CORDELIA: RotationalElement<18usize> = RotationalElement {
8409 typ: RotationalElementType::Rotation,
8410 c0: 2.2286109218715593f64,
8411 c1: -18.753921879266084f64,
8412 c2: 0f64,
8413 c: [
8414 -0.0006981317007977319f64,
8415 0f64,
8416 0f64,
8417 0f64,
8418 0f64,
8419 0f64,
8420 0f64,
8421 0f64,
8422 0f64,
8423 0f64,
8424 0f64,
8425 0f64,
8426 0f64,
8427 0f64,
8428 0f64,
8429 0f64,
8430 0f64,
8431 0f64,
8432 ],
8433 theta0: [
8434 2.0202186091834364f64,
8435 2.4729570171507653f64,
8436 2.356718088967943f64,
8437 1.0780898789568973f64,
8438 4.351454891072263f64,
8439 0.7655014099247129f64,
8440 1.3554226970987964f64,
8441 2.746450110938277f64,
8442 1.776919711455427f64,
8443 2.419724474964938f64,
8444 1.784250094313803f64,
8445 5.522396286235258f64,
8446 5.3059754589879615f64,
8447 5.388005933831694f64,
8448 5.948431156647074f64,
8449 4.522846223618106f64,
8450 3.568500188627606f64,
8451 11.044792572470516f64,
8452 ],
8453 theta1: [
8454 959.7891933286942f64,
8455 731.077582955928f64,
8456 522.3307938967249f64,
8457 449.1358738582876f64,
8458 427.10754977009157f64,
8459 388.83160660922994f64,
8460 354.1171823199879f64,
8461 290.6454915444109f64,
8462 224.66977689099764f64,
8463 140.70512817020406f64,
8464 -35.32930378471962f64,
8465 49.9855316454168f64,
8466 -0.9065240134858548f64,
8467 -1.626123264083117f64,
8468 -1.314581992602129f64,
8469 -8.810596596992575f64,
8470 -70.65860756943924f64,
8471 99.9710632908336f64,
8472 ],
8473};
8474impl RotationalElements for Cordelia {
8475 fn rotational_elements(&self, t: f64) -> Elements {
8476 (
8477 RIGHT_ASCENSION_CORDELIA.angle(t),
8478 DECLINATION_CORDELIA.angle(t),
8479 ROTATION_CORDELIA.angle(t),
8480 )
8481 }
8482 fn rotational_element_rates(&self, t: f64) -> Elements {
8483 (
8484 RIGHT_ASCENSION_CORDELIA.angle_dot(t),
8485 DECLINATION_CORDELIA.angle_dot(t),
8486 ROTATION_CORDELIA.angle_dot(t),
8487 )
8488 }
8489}
8490#[doc = "Ophelia (NAIF ID: 707)."]
8491#[derive(Debug, Copy, Clone, Eq, PartialEq)]
8492#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8493pub struct Ophelia;
8494impl Origin for Ophelia {
8495 fn id(&self) -> NaifId {
8496 NaifId(707i32)
8497 }
8498 fn name(&self) -> &'static str {
8499 "Ophelia"
8500 }
8501}
8502impl Display for Ophelia {
8503 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
8504 write!(f, "{}", self.name())
8505 }
8506}
8507impl From<Ophelia> for DynOrigin {
8508 fn from(_: Ophelia) -> Self {
8509 DynOrigin::Ophelia
8510 }
8511}
8512impl MeanRadius for Ophelia {
8513 fn mean_radius(&self) -> Distance {
8514 Distance::kilometers(15f64)
8515 }
8516}
8517impl TriaxialEllipsoid for Ophelia {
8518 fn radii(&self) -> Radii {
8519 (
8520 Distance::kilometers(15f64),
8521 Distance::kilometers(15f64),
8522 Distance::kilometers(15f64),
8523 )
8524 }
8525}
8526impl Spheroid for Ophelia {}
8527const RIGHT_ASCENSION_OPHELIA: RotationalElement<18usize> = RotationalElement {
8528 typ: RotationalElementType::RightAscension,
8529 c0: 4.49090669830661f64,
8530 c1: 0f64,
8531 c2: 0f64,
8532 c: [
8533 0f64,
8534 -0.0015707963267948964f64,
8535 0f64,
8536 0f64,
8537 0f64,
8538 0f64,
8539 0f64,
8540 0f64,
8541 0f64,
8542 0f64,
8543 0f64,
8544 0f64,
8545 0f64,
8546 0f64,
8547 0f64,
8548 0f64,
8549 0f64,
8550 0f64,
8551 ],
8552 theta0: [
8553 2.0202186091834364f64,
8554 2.4729570171507653f64,
8555 2.356718088967943f64,
8556 1.0780898789568973f64,
8557 4.351454891072263f64,
8558 0.7655014099247129f64,
8559 1.3554226970987964f64,
8560 2.746450110938277f64,
8561 1.776919711455427f64,
8562 2.419724474964938f64,
8563 1.784250094313803f64,
8564 5.522396286235258f64,
8565 5.3059754589879615f64,
8566 5.388005933831694f64,
8567 5.948431156647074f64,
8568 4.522846223618106f64,
8569 3.568500188627606f64,
8570 11.044792572470516f64,
8571 ],
8572 theta1: [
8573 959.7891933286942f64,
8574 731.077582955928f64,
8575 522.3307938967249f64,
8576 449.1358738582876f64,
8577 427.10754977009157f64,
8578 388.83160660922994f64,
8579 354.1171823199879f64,
8580 290.6454915444109f64,
8581 224.66977689099764f64,
8582 140.70512817020406f64,
8583 -35.32930378471962f64,
8584 49.9855316454168f64,
8585 -0.9065240134858548f64,
8586 -1.626123264083117f64,
8587 -1.314581992602129f64,
8588 -8.810596596992575f64,
8589 -70.65860756943924f64,
8590 99.9710632908336f64,
8591 ],
8592};
8593const DECLINATION_OPHELIA: RotationalElement<18usize> = RotationalElement {
8594 typ: RotationalElementType::Declination,
8595 c0: -0.2649409804527392f64,
8596 c1: 0f64,
8597 c2: 0f64,
8598 c: [
8599 0f64,
8600 0.0015707963267948964f64,
8601 0f64,
8602 0f64,
8603 0f64,
8604 0f64,
8605 0f64,
8606 0f64,
8607 0f64,
8608 0f64,
8609 0f64,
8610 0f64,
8611 0f64,
8612 0f64,
8613 0f64,
8614 0f64,
8615 0f64,
8616 0f64,
8617 ],
8618 theta0: [
8619 2.0202186091834364f64,
8620 2.4729570171507653f64,
8621 2.356718088967943f64,
8622 1.0780898789568973f64,
8623 4.351454891072263f64,
8624 0.7655014099247129f64,
8625 1.3554226970987964f64,
8626 2.746450110938277f64,
8627 1.776919711455427f64,
8628 2.419724474964938f64,
8629 1.784250094313803f64,
8630 5.522396286235258f64,
8631 5.3059754589879615f64,
8632 5.388005933831694f64,
8633 5.948431156647074f64,
8634 4.522846223618106f64,
8635 3.568500188627606f64,
8636 11.044792572470516f64,
8637 ],
8638 theta1: [
8639 959.7891933286942f64,
8640 731.077582955928f64,
8641 522.3307938967249f64,
8642 449.1358738582876f64,
8643 427.10754977009157f64,
8644 388.83160660922994f64,
8645 354.1171823199879f64,
8646 290.6454915444109f64,
8647 224.66977689099764f64,
8648 140.70512817020406f64,
8649 -35.32930378471962f64,
8650 49.9855316454168f64,
8651 -0.9065240134858548f64,
8652 -1.626123264083117f64,
8653 -1.314581992602129f64,
8654 -8.810596596992575f64,
8655 -70.65860756943924f64,
8656 99.9710632908336f64,
8657 ],
8658};
8659const ROTATION_OPHELIA: RotationalElement<18usize> = RotationalElement {
8660 typ: RotationalElementType::Rotation,
8661 c0: 2.2750366799746087f64,
8662 c1: -16.692447910262292f64,
8663 c2: 0f64,
8664 c: [
8665 0f64,
8666 -0.0005235987755982988f64,
8667 0f64,
8668 0f64,
8669 0f64,
8670 0f64,
8671 0f64,
8672 0f64,
8673 0f64,
8674 0f64,
8675 0f64,
8676 0f64,
8677 0f64,
8678 0f64,
8679 0f64,
8680 0f64,
8681 0f64,
8682 0f64,
8683 ],
8684 theta0: [
8685 2.0202186091834364f64,
8686 2.4729570171507653f64,
8687 2.356718088967943f64,
8688 1.0780898789568973f64,
8689 4.351454891072263f64,
8690 0.7655014099247129f64,
8691 1.3554226970987964f64,
8692 2.746450110938277f64,
8693 1.776919711455427f64,
8694 2.419724474964938f64,
8695 1.784250094313803f64,
8696 5.522396286235258f64,
8697 5.3059754589879615f64,
8698 5.388005933831694f64,
8699 5.948431156647074f64,
8700 4.522846223618106f64,
8701 3.568500188627606f64,
8702 11.044792572470516f64,
8703 ],
8704 theta1: [
8705 959.7891933286942f64,
8706 731.077582955928f64,
8707 522.3307938967249f64,
8708 449.1358738582876f64,
8709 427.10754977009157f64,
8710 388.83160660922994f64,
8711 354.1171823199879f64,
8712 290.6454915444109f64,
8713 224.66977689099764f64,
8714 140.70512817020406f64,
8715 -35.32930378471962f64,
8716 49.9855316454168f64,
8717 -0.9065240134858548f64,
8718 -1.626123264083117f64,
8719 -1.314581992602129f64,
8720 -8.810596596992575f64,
8721 -70.65860756943924f64,
8722 99.9710632908336f64,
8723 ],
8724};
8725impl RotationalElements for Ophelia {
8726 fn rotational_elements(&self, t: f64) -> Elements {
8727 (
8728 RIGHT_ASCENSION_OPHELIA.angle(t),
8729 DECLINATION_OPHELIA.angle(t),
8730 ROTATION_OPHELIA.angle(t),
8731 )
8732 }
8733 fn rotational_element_rates(&self, t: f64) -> Elements {
8734 (
8735 RIGHT_ASCENSION_OPHELIA.angle_dot(t),
8736 DECLINATION_OPHELIA.angle_dot(t),
8737 ROTATION_OPHELIA.angle_dot(t),
8738 )
8739 }
8740}
8741#[doc = "Bianca (NAIF ID: 708)."]
8742#[derive(Debug, Copy, Clone, Eq, PartialEq)]
8743#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8744pub struct Bianca;
8745impl Origin for Bianca {
8746 fn id(&self) -> NaifId {
8747 NaifId(708i32)
8748 }
8749 fn name(&self) -> &'static str {
8750 "Bianca"
8751 }
8752}
8753impl Display for Bianca {
8754 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
8755 write!(f, "{}", self.name())
8756 }
8757}
8758impl From<Bianca> for DynOrigin {
8759 fn from(_: Bianca) -> Self {
8760 DynOrigin::Bianca
8761 }
8762}
8763impl MeanRadius for Bianca {
8764 fn mean_radius(&self) -> Distance {
8765 Distance::kilometers(21f64)
8766 }
8767}
8768impl TriaxialEllipsoid for Bianca {
8769 fn radii(&self) -> Radii {
8770 (
8771 Distance::kilometers(21f64),
8772 Distance::kilometers(21f64),
8773 Distance::kilometers(21f64),
8774 )
8775 }
8776}
8777impl Spheroid for Bianca {}
8778const RIGHT_ASCENSION_BIANCA: RotationalElement<18usize> = RotationalElement {
8779 typ: RotationalElementType::RightAscension,
8780 c0: 4.49090669830661f64,
8781 c1: 0f64,
8782 c2: 0f64,
8783 c: [
8784 0f64,
8785 0f64,
8786 -0.0027925268031909274f64,
8787 0f64,
8788 0f64,
8789 0f64,
8790 0f64,
8791 0f64,
8792 0f64,
8793 0f64,
8794 0f64,
8795 0f64,
8796 0f64,
8797 0f64,
8798 0f64,
8799 0f64,
8800 0f64,
8801 0f64,
8802 ],
8803 theta0: [
8804 2.0202186091834364f64,
8805 2.4729570171507653f64,
8806 2.356718088967943f64,
8807 1.0780898789568973f64,
8808 4.351454891072263f64,
8809 0.7655014099247129f64,
8810 1.3554226970987964f64,
8811 2.746450110938277f64,
8812 1.776919711455427f64,
8813 2.419724474964938f64,
8814 1.784250094313803f64,
8815 5.522396286235258f64,
8816 5.3059754589879615f64,
8817 5.388005933831694f64,
8818 5.948431156647074f64,
8819 4.522846223618106f64,
8820 3.568500188627606f64,
8821 11.044792572470516f64,
8822 ],
8823 theta1: [
8824 959.7891933286942f64,
8825 731.077582955928f64,
8826 522.3307938967249f64,
8827 449.1358738582876f64,
8828 427.10754977009157f64,
8829 388.83160660922994f64,
8830 354.1171823199879f64,
8831 290.6454915444109f64,
8832 224.66977689099764f64,
8833 140.70512817020406f64,
8834 -35.32930378471962f64,
8835 49.9855316454168f64,
8836 -0.9065240134858548f64,
8837 -1.626123264083117f64,
8838 -1.314581992602129f64,
8839 -8.810596596992575f64,
8840 -70.65860756943924f64,
8841 99.9710632908336f64,
8842 ],
8843};
8844const DECLINATION_BIANCA: RotationalElement<18usize> = RotationalElement {
8845 typ: RotationalElementType::Declination,
8846 c0: -0.2649409804527392f64,
8847 c1: 0f64,
8848 c2: 0f64,
8849 c: [
8850 0f64,
8851 0f64,
8852 0.0027925268031909274f64,
8853 0f64,
8854 0f64,
8855 0f64,
8856 0f64,
8857 0f64,
8858 0f64,
8859 0f64,
8860 0f64,
8861 0f64,
8862 0f64,
8863 0f64,
8864 0f64,
8865 0f64,
8866 0f64,
8867 0f64,
8868 ],
8869 theta0: [
8870 2.0202186091834364f64,
8871 2.4729570171507653f64,
8872 2.356718088967943f64,
8873 1.0780898789568973f64,
8874 4.351454891072263f64,
8875 0.7655014099247129f64,
8876 1.3554226970987964f64,
8877 2.746450110938277f64,
8878 1.776919711455427f64,
8879 2.419724474964938f64,
8880 1.784250094313803f64,
8881 5.522396286235258f64,
8882 5.3059754589879615f64,
8883 5.388005933831694f64,
8884 5.948431156647074f64,
8885 4.522846223618106f64,
8886 3.568500188627606f64,
8887 11.044792572470516f64,
8888 ],
8889 theta1: [
8890 959.7891933286942f64,
8891 731.077582955928f64,
8892 522.3307938967249f64,
8893 449.1358738582876f64,
8894 427.10754977009157f64,
8895 388.83160660922994f64,
8896 354.1171823199879f64,
8897 290.6454915444109f64,
8898 224.66977689099764f64,
8899 140.70512817020406f64,
8900 -35.32930378471962f64,
8901 49.9855316454168f64,
8902 -0.9065240134858548f64,
8903 -1.626123264083117f64,
8904 -1.314581992602129f64,
8905 -8.810596596992575f64,
8906 -70.65860756943924f64,
8907 99.9710632908336f64,
8908 ],
8909};
8910const ROTATION_BIANCA: RotationalElement<18usize> = RotationalElement {
8911 typ: RotationalElementType::Rotation,
8912 c0: 1.8406242291532198f64,
8913 c1: -14.458158751655587f64,
8914 c2: 0f64,
8915 c: [
8916 0f64,
8917 0f64,
8918 -0.0006981317007977319f64,
8919 0f64,
8920 0f64,
8921 0f64,
8922 0f64,
8923 0f64,
8924 0f64,
8925 0f64,
8926 0f64,
8927 0f64,
8928 0f64,
8929 0f64,
8930 0f64,
8931 0f64,
8932 0f64,
8933 0f64,
8934 ],
8935 theta0: [
8936 2.0202186091834364f64,
8937 2.4729570171507653f64,
8938 2.356718088967943f64,
8939 1.0780898789568973f64,
8940 4.351454891072263f64,
8941 0.7655014099247129f64,
8942 1.3554226970987964f64,
8943 2.746450110938277f64,
8944 1.776919711455427f64,
8945 2.419724474964938f64,
8946 1.784250094313803f64,
8947 5.522396286235258f64,
8948 5.3059754589879615f64,
8949 5.388005933831694f64,
8950 5.948431156647074f64,
8951 4.522846223618106f64,
8952 3.568500188627606f64,
8953 11.044792572470516f64,
8954 ],
8955 theta1: [
8956 959.7891933286942f64,
8957 731.077582955928f64,
8958 522.3307938967249f64,
8959 449.1358738582876f64,
8960 427.10754977009157f64,
8961 388.83160660922994f64,
8962 354.1171823199879f64,
8963 290.6454915444109f64,
8964 224.66977689099764f64,
8965 140.70512817020406f64,
8966 -35.32930378471962f64,
8967 49.9855316454168f64,
8968 -0.9065240134858548f64,
8969 -1.626123264083117f64,
8970 -1.314581992602129f64,
8971 -8.810596596992575f64,
8972 -70.65860756943924f64,
8973 99.9710632908336f64,
8974 ],
8975};
8976impl RotationalElements for Bianca {
8977 fn rotational_elements(&self, t: f64) -> Elements {
8978 (
8979 RIGHT_ASCENSION_BIANCA.angle(t),
8980 DECLINATION_BIANCA.angle(t),
8981 ROTATION_BIANCA.angle(t),
8982 )
8983 }
8984 fn rotational_element_rates(&self, t: f64) -> Elements {
8985 (
8986 RIGHT_ASCENSION_BIANCA.angle_dot(t),
8987 DECLINATION_BIANCA.angle_dot(t),
8988 ROTATION_BIANCA.angle_dot(t),
8989 )
8990 }
8991}
8992#[doc = "Cressida (NAIF ID: 709)."]
8993#[derive(Debug, Copy, Clone, Eq, PartialEq)]
8994#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8995pub struct Cressida;
8996impl Origin for Cressida {
8997 fn id(&self) -> NaifId {
8998 NaifId(709i32)
8999 }
9000 fn name(&self) -> &'static str {
9001 "Cressida"
9002 }
9003}
9004impl Display for Cressida {
9005 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
9006 write!(f, "{}", self.name())
9007 }
9008}
9009impl From<Cressida> for DynOrigin {
9010 fn from(_: Cressida) -> Self {
9011 DynOrigin::Cressida
9012 }
9013}
9014impl MeanRadius for Cressida {
9015 fn mean_radius(&self) -> Distance {
9016 Distance::kilometers(31f64)
9017 }
9018}
9019impl TriaxialEllipsoid for Cressida {
9020 fn radii(&self) -> Radii {
9021 (
9022 Distance::kilometers(31f64),
9023 Distance::kilometers(31f64),
9024 Distance::kilometers(31f64),
9025 )
9026 }
9027}
9028impl Spheroid for Cressida {}
9029const RIGHT_ASCENSION_CRESSIDA: RotationalElement<18usize> = RotationalElement {
9030 typ: RotationalElementType::RightAscension,
9031 c0: 4.49090669830661f64,
9032 c1: 0f64,
9033 c2: 0f64,
9034 c: [
9035 0f64,
9036 0f64,
9037 0f64,
9038 -0.0006981317007977319f64,
9039 0f64,
9040 0f64,
9041 0f64,
9042 0f64,
9043 0f64,
9044 0f64,
9045 0f64,
9046 0f64,
9047 0f64,
9048 0f64,
9049 0f64,
9050 0f64,
9051 0f64,
9052 0f64,
9053 ],
9054 theta0: [
9055 2.0202186091834364f64,
9056 2.4729570171507653f64,
9057 2.356718088967943f64,
9058 1.0780898789568973f64,
9059 4.351454891072263f64,
9060 0.7655014099247129f64,
9061 1.3554226970987964f64,
9062 2.746450110938277f64,
9063 1.776919711455427f64,
9064 2.419724474964938f64,
9065 1.784250094313803f64,
9066 5.522396286235258f64,
9067 5.3059754589879615f64,
9068 5.388005933831694f64,
9069 5.948431156647074f64,
9070 4.522846223618106f64,
9071 3.568500188627606f64,
9072 11.044792572470516f64,
9073 ],
9074 theta1: [
9075 959.7891933286942f64,
9076 731.077582955928f64,
9077 522.3307938967249f64,
9078 449.1358738582876f64,
9079 427.10754977009157f64,
9080 388.83160660922994f64,
9081 354.1171823199879f64,
9082 290.6454915444109f64,
9083 224.66977689099764f64,
9084 140.70512817020406f64,
9085 -35.32930378471962f64,
9086 49.9855316454168f64,
9087 -0.9065240134858548f64,
9088 -1.626123264083117f64,
9089 -1.314581992602129f64,
9090 -8.810596596992575f64,
9091 -70.65860756943924f64,
9092 99.9710632908336f64,
9093 ],
9094};
9095const DECLINATION_CRESSIDA: RotationalElement<18usize> = RotationalElement {
9096 typ: RotationalElementType::Declination,
9097 c0: -0.2649409804527392f64,
9098 c1: 0f64,
9099 c2: 0f64,
9100 c: [
9101 0f64,
9102 0f64,
9103 0f64,
9104 0.0006981317007977319f64,
9105 0f64,
9106 0f64,
9107 0f64,
9108 0f64,
9109 0f64,
9110 0f64,
9111 0f64,
9112 0f64,
9113 0f64,
9114 0f64,
9115 0f64,
9116 0f64,
9117 0f64,
9118 0f64,
9119 ],
9120 theta0: [
9121 2.0202186091834364f64,
9122 2.4729570171507653f64,
9123 2.356718088967943f64,
9124 1.0780898789568973f64,
9125 4.351454891072263f64,
9126 0.7655014099247129f64,
9127 1.3554226970987964f64,
9128 2.746450110938277f64,
9129 1.776919711455427f64,
9130 2.419724474964938f64,
9131 1.784250094313803f64,
9132 5.522396286235258f64,
9133 5.3059754589879615f64,
9134 5.388005933831694f64,
9135 5.948431156647074f64,
9136 4.522846223618106f64,
9137 3.568500188627606f64,
9138 11.044792572470516f64,
9139 ],
9140 theta1: [
9141 959.7891933286942f64,
9142 731.077582955928f64,
9143 522.3307938967249f64,
9144 449.1358738582876f64,
9145 427.10754977009157f64,
9146 388.83160660922994f64,
9147 354.1171823199879f64,
9148 290.6454915444109f64,
9149 224.66977689099764f64,
9150 140.70512817020406f64,
9151 -35.32930378471962f64,
9152 49.9855316454168f64,
9153 -0.9065240134858548f64,
9154 -1.626123264083117f64,
9155 -1.314581992602129f64,
9156 -8.810596596992575f64,
9157 -70.65860756943924f64,
9158 99.9710632908336f64,
9159 ],
9160};
9161const ROTATION_CRESSIDA: RotationalElement<18usize> = RotationalElement {
9162 typ: RotationalElementType::Rotation,
9163 c0: 1.0325367854798453f64,
9164 c1: -13.553906388910956f64,
9165 c2: 0f64,
9166 c: [
9167 0f64,
9168 0f64,
9169 0f64,
9170 -0.00017453292519943296f64,
9171 0f64,
9172 0f64,
9173 0f64,
9174 0f64,
9175 0f64,
9176 0f64,
9177 0f64,
9178 0f64,
9179 0f64,
9180 0f64,
9181 0f64,
9182 0f64,
9183 0f64,
9184 0f64,
9185 ],
9186 theta0: [
9187 2.0202186091834364f64,
9188 2.4729570171507653f64,
9189 2.356718088967943f64,
9190 1.0780898789568973f64,
9191 4.351454891072263f64,
9192 0.7655014099247129f64,
9193 1.3554226970987964f64,
9194 2.746450110938277f64,
9195 1.776919711455427f64,
9196 2.419724474964938f64,
9197 1.784250094313803f64,
9198 5.522396286235258f64,
9199 5.3059754589879615f64,
9200 5.388005933831694f64,
9201 5.948431156647074f64,
9202 4.522846223618106f64,
9203 3.568500188627606f64,
9204 11.044792572470516f64,
9205 ],
9206 theta1: [
9207 959.7891933286942f64,
9208 731.077582955928f64,
9209 522.3307938967249f64,
9210 449.1358738582876f64,
9211 427.10754977009157f64,
9212 388.83160660922994f64,
9213 354.1171823199879f64,
9214 290.6454915444109f64,
9215 224.66977689099764f64,
9216 140.70512817020406f64,
9217 -35.32930378471962f64,
9218 49.9855316454168f64,
9219 -0.9065240134858548f64,
9220 -1.626123264083117f64,
9221 -1.314581992602129f64,
9222 -8.810596596992575f64,
9223 -70.65860756943924f64,
9224 99.9710632908336f64,
9225 ],
9226};
9227impl RotationalElements for Cressida {
9228 fn rotational_elements(&self, t: f64) -> Elements {
9229 (
9230 RIGHT_ASCENSION_CRESSIDA.angle(t),
9231 DECLINATION_CRESSIDA.angle(t),
9232 ROTATION_CRESSIDA.angle(t),
9233 )
9234 }
9235 fn rotational_element_rates(&self, t: f64) -> Elements {
9236 (
9237 RIGHT_ASCENSION_CRESSIDA.angle_dot(t),
9238 DECLINATION_CRESSIDA.angle_dot(t),
9239 ROTATION_CRESSIDA.angle_dot(t),
9240 )
9241 }
9242}
9243#[doc = "Desdemona (NAIF ID: 710)."]
9244#[derive(Debug, Copy, Clone, Eq, PartialEq)]
9245#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9246pub struct Desdemona;
9247impl Origin for Desdemona {
9248 fn id(&self) -> NaifId {
9249 NaifId(710i32)
9250 }
9251 fn name(&self) -> &'static str {
9252 "Desdemona"
9253 }
9254}
9255impl Display for Desdemona {
9256 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
9257 write!(f, "{}", self.name())
9258 }
9259}
9260impl From<Desdemona> for DynOrigin {
9261 fn from(_: Desdemona) -> Self {
9262 DynOrigin::Desdemona
9263 }
9264}
9265impl MeanRadius for Desdemona {
9266 fn mean_radius(&self) -> Distance {
9267 Distance::kilometers(27f64)
9268 }
9269}
9270impl TriaxialEllipsoid for Desdemona {
9271 fn radii(&self) -> Radii {
9272 (
9273 Distance::kilometers(27f64),
9274 Distance::kilometers(27f64),
9275 Distance::kilometers(27f64),
9276 )
9277 }
9278}
9279impl Spheroid for Desdemona {}
9280const RIGHT_ASCENSION_DESDEMONA: RotationalElement<18usize> = RotationalElement {
9281 typ: RotationalElementType::RightAscension,
9282 c0: 4.49090669830661f64,
9283 c1: 0f64,
9284 c2: 0f64,
9285 c: [
9286 0f64,
9287 0f64,
9288 0f64,
9289 0f64,
9290 -0.0029670597283903604f64,
9291 0f64,
9292 0f64,
9293 0f64,
9294 0f64,
9295 0f64,
9296 0f64,
9297 0f64,
9298 0f64,
9299 0f64,
9300 0f64,
9301 0f64,
9302 0f64,
9303 0f64,
9304 ],
9305 theta0: [
9306 2.0202186091834364f64,
9307 2.4729570171507653f64,
9308 2.356718088967943f64,
9309 1.0780898789568973f64,
9310 4.351454891072263f64,
9311 0.7655014099247129f64,
9312 1.3554226970987964f64,
9313 2.746450110938277f64,
9314 1.776919711455427f64,
9315 2.419724474964938f64,
9316 1.784250094313803f64,
9317 5.522396286235258f64,
9318 5.3059754589879615f64,
9319 5.388005933831694f64,
9320 5.948431156647074f64,
9321 4.522846223618106f64,
9322 3.568500188627606f64,
9323 11.044792572470516f64,
9324 ],
9325 theta1: [
9326 959.7891933286942f64,
9327 731.077582955928f64,
9328 522.3307938967249f64,
9329 449.1358738582876f64,
9330 427.10754977009157f64,
9331 388.83160660922994f64,
9332 354.1171823199879f64,
9333 290.6454915444109f64,
9334 224.66977689099764f64,
9335 140.70512817020406f64,
9336 -35.32930378471962f64,
9337 49.9855316454168f64,
9338 -0.9065240134858548f64,
9339 -1.626123264083117f64,
9340 -1.314581992602129f64,
9341 -8.810596596992575f64,
9342 -70.65860756943924f64,
9343 99.9710632908336f64,
9344 ],
9345};
9346const DECLINATION_DESDEMONA: RotationalElement<18usize> = RotationalElement {
9347 typ: RotationalElementType::Declination,
9348 c0: -0.2649409804527392f64,
9349 c1: 0f64,
9350 c2: 0f64,
9351 c: [
9352 0f64,
9353 0f64,
9354 0f64,
9355 0f64,
9356 0.0027925268031909274f64,
9357 0f64,
9358 0f64,
9359 0f64,
9360 0f64,
9361 0f64,
9362 0f64,
9363 0f64,
9364 0f64,
9365 0f64,
9366 0f64,
9367 0f64,
9368 0f64,
9369 0f64,
9370 ],
9371 theta0: [
9372 2.0202186091834364f64,
9373 2.4729570171507653f64,
9374 2.356718088967943f64,
9375 1.0780898789568973f64,
9376 4.351454891072263f64,
9377 0.7655014099247129f64,
9378 1.3554226970987964f64,
9379 2.746450110938277f64,
9380 1.776919711455427f64,
9381 2.419724474964938f64,
9382 1.784250094313803f64,
9383 5.522396286235258f64,
9384 5.3059754589879615f64,
9385 5.388005933831694f64,
9386 5.948431156647074f64,
9387 4.522846223618106f64,
9388 3.568500188627606f64,
9389 11.044792572470516f64,
9390 ],
9391 theta1: [
9392 959.7891933286942f64,
9393 731.077582955928f64,
9394 522.3307938967249f64,
9395 449.1358738582876f64,
9396 427.10754977009157f64,
9397 388.83160660922994f64,
9398 354.1171823199879f64,
9399 290.6454915444109f64,
9400 224.66977689099764f64,
9401 140.70512817020406f64,
9402 -35.32930378471962f64,
9403 49.9855316454168f64,
9404 -0.9065240134858548f64,
9405 -1.626123264083117f64,
9406 -1.314581992602129f64,
9407 -8.810596596992575f64,
9408 -70.65860756943924f64,
9409 99.9710632908336f64,
9410 ],
9411};
9412const ROTATION_DESDEMONA: RotationalElement<18usize> = RotationalElement {
9413 typ: RotationalElementType::Rotation,
9414 c0: 1.6594590527962085f64,
9415 c1: -13.265430289266899f64,
9416 c2: 0f64,
9417 c: [
9418 0f64,
9419 0f64,
9420 0f64,
9421 0f64,
9422 -0.0006981317007977319f64,
9423 0f64,
9424 0f64,
9425 0f64,
9426 0f64,
9427 0f64,
9428 0f64,
9429 0f64,
9430 0f64,
9431 0f64,
9432 0f64,
9433 0f64,
9434 0f64,
9435 0f64,
9436 ],
9437 theta0: [
9438 2.0202186091834364f64,
9439 2.4729570171507653f64,
9440 2.356718088967943f64,
9441 1.0780898789568973f64,
9442 4.351454891072263f64,
9443 0.7655014099247129f64,
9444 1.3554226970987964f64,
9445 2.746450110938277f64,
9446 1.776919711455427f64,
9447 2.419724474964938f64,
9448 1.784250094313803f64,
9449 5.522396286235258f64,
9450 5.3059754589879615f64,
9451 5.388005933831694f64,
9452 5.948431156647074f64,
9453 4.522846223618106f64,
9454 3.568500188627606f64,
9455 11.044792572470516f64,
9456 ],
9457 theta1: [
9458 959.7891933286942f64,
9459 731.077582955928f64,
9460 522.3307938967249f64,
9461 449.1358738582876f64,
9462 427.10754977009157f64,
9463 388.83160660922994f64,
9464 354.1171823199879f64,
9465 290.6454915444109f64,
9466 224.66977689099764f64,
9467 140.70512817020406f64,
9468 -35.32930378471962f64,
9469 49.9855316454168f64,
9470 -0.9065240134858548f64,
9471 -1.626123264083117f64,
9472 -1.314581992602129f64,
9473 -8.810596596992575f64,
9474 -70.65860756943924f64,
9475 99.9710632908336f64,
9476 ],
9477};
9478impl RotationalElements for Desdemona {
9479 fn rotational_elements(&self, t: f64) -> Elements {
9480 (
9481 RIGHT_ASCENSION_DESDEMONA.angle(t),
9482 DECLINATION_DESDEMONA.angle(t),
9483 ROTATION_DESDEMONA.angle(t),
9484 )
9485 }
9486 fn rotational_element_rates(&self, t: f64) -> Elements {
9487 (
9488 RIGHT_ASCENSION_DESDEMONA.angle_dot(t),
9489 DECLINATION_DESDEMONA.angle_dot(t),
9490 ROTATION_DESDEMONA.angle_dot(t),
9491 )
9492 }
9493}
9494#[doc = "Juliet (NAIF ID: 711)."]
9495#[derive(Debug, Copy, Clone, Eq, PartialEq)]
9496#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9497pub struct Juliet;
9498impl Origin for Juliet {
9499 fn id(&self) -> NaifId {
9500 NaifId(711i32)
9501 }
9502 fn name(&self) -> &'static str {
9503 "Juliet"
9504 }
9505}
9506impl Display for Juliet {
9507 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
9508 write!(f, "{}", self.name())
9509 }
9510}
9511impl From<Juliet> for DynOrigin {
9512 fn from(_: Juliet) -> Self {
9513 DynOrigin::Juliet
9514 }
9515}
9516impl MeanRadius for Juliet {
9517 fn mean_radius(&self) -> Distance {
9518 Distance::kilometers(42f64)
9519 }
9520}
9521impl TriaxialEllipsoid for Juliet {
9522 fn radii(&self) -> Radii {
9523 (
9524 Distance::kilometers(42f64),
9525 Distance::kilometers(42f64),
9526 Distance::kilometers(42f64),
9527 )
9528 }
9529}
9530impl Spheroid for Juliet {}
9531const RIGHT_ASCENSION_JULIET: RotationalElement<18usize> = RotationalElement {
9532 typ: RotationalElementType::RightAscension,
9533 c0: 4.49090669830661f64,
9534 c1: 0f64,
9535 c2: 0f64,
9536 c: [
9537 0f64,
9538 0f64,
9539 0f64,
9540 0f64,
9541 0f64,
9542 -0.0010471975511965976f64,
9543 0f64,
9544 0f64,
9545 0f64,
9546 0f64,
9547 0f64,
9548 0f64,
9549 0f64,
9550 0f64,
9551 0f64,
9552 0f64,
9553 0f64,
9554 0f64,
9555 ],
9556 theta0: [
9557 2.0202186091834364f64,
9558 2.4729570171507653f64,
9559 2.356718088967943f64,
9560 1.0780898789568973f64,
9561 4.351454891072263f64,
9562 0.7655014099247129f64,
9563 1.3554226970987964f64,
9564 2.746450110938277f64,
9565 1.776919711455427f64,
9566 2.419724474964938f64,
9567 1.784250094313803f64,
9568 5.522396286235258f64,
9569 5.3059754589879615f64,
9570 5.388005933831694f64,
9571 5.948431156647074f64,
9572 4.522846223618106f64,
9573 3.568500188627606f64,
9574 11.044792572470516f64,
9575 ],
9576 theta1: [
9577 959.7891933286942f64,
9578 731.077582955928f64,
9579 522.3307938967249f64,
9580 449.1358738582876f64,
9581 427.10754977009157f64,
9582 388.83160660922994f64,
9583 354.1171823199879f64,
9584 290.6454915444109f64,
9585 224.66977689099764f64,
9586 140.70512817020406f64,
9587 -35.32930378471962f64,
9588 49.9855316454168f64,
9589 -0.9065240134858548f64,
9590 -1.626123264083117f64,
9591 -1.314581992602129f64,
9592 -8.810596596992575f64,
9593 -70.65860756943924f64,
9594 99.9710632908336f64,
9595 ],
9596};
9597const DECLINATION_JULIET: RotationalElement<18usize> = RotationalElement {
9598 typ: RotationalElementType::Declination,
9599 c0: -0.2649409804527392f64,
9600 c1: 0f64,
9601 c2: 0f64,
9602 c: [
9603 0f64,
9604 0f64,
9605 0f64,
9606 0f64,
9607 0f64,
9608 0.0010471975511965976f64,
9609 0f64,
9610 0f64,
9611 0f64,
9612 0f64,
9613 0f64,
9614 0f64,
9615 0f64,
9616 0f64,
9617 0f64,
9618 0f64,
9619 0f64,
9620 0f64,
9621 ],
9622 theta0: [
9623 2.0202186091834364f64,
9624 2.4729570171507653f64,
9625 2.356718088967943f64,
9626 1.0780898789568973f64,
9627 4.351454891072263f64,
9628 0.7655014099247129f64,
9629 1.3554226970987964f64,
9630 2.746450110938277f64,
9631 1.776919711455427f64,
9632 2.419724474964938f64,
9633 1.784250094313803f64,
9634 5.522396286235258f64,
9635 5.3059754589879615f64,
9636 5.388005933831694f64,
9637 5.948431156647074f64,
9638 4.522846223618106f64,
9639 3.568500188627606f64,
9640 11.044792572470516f64,
9641 ],
9642 theta1: [
9643 959.7891933286942f64,
9644 731.077582955928f64,
9645 522.3307938967249f64,
9646 449.1358738582876f64,
9647 427.10754977009157f64,
9648 388.83160660922994f64,
9649 354.1171823199879f64,
9650 290.6454915444109f64,
9651 224.66977689099764f64,
9652 140.70512817020406f64,
9653 -35.32930378471962f64,
9654 49.9855316454168f64,
9655 -0.9065240134858548f64,
9656 -1.626123264083117f64,
9657 -1.314581992602129f64,
9658 -8.810596596992575f64,
9659 -70.65860756943924f64,
9660 99.9710632908336f64,
9661 ],
9662};
9663const ROTATION_JULIET: RotationalElement<18usize> = RotationalElement {
9664 typ: RotationalElementType::Rotation,
9665 c0: 5.2806681848340435f64,
9666 c1: -12.74309158902866f64,
9667 c2: 0f64,
9668 c: [
9669 0f64,
9670 0f64,
9671 0f64,
9672 0f64,
9673 0f64,
9674 -0.00034906585039886593f64,
9675 0f64,
9676 0f64,
9677 0f64,
9678 0f64,
9679 0f64,
9680 0f64,
9681 0f64,
9682 0f64,
9683 0f64,
9684 0f64,
9685 0f64,
9686 0f64,
9687 ],
9688 theta0: [
9689 2.0202186091834364f64,
9690 2.4729570171507653f64,
9691 2.356718088967943f64,
9692 1.0780898789568973f64,
9693 4.351454891072263f64,
9694 0.7655014099247129f64,
9695 1.3554226970987964f64,
9696 2.746450110938277f64,
9697 1.776919711455427f64,
9698 2.419724474964938f64,
9699 1.784250094313803f64,
9700 5.522396286235258f64,
9701 5.3059754589879615f64,
9702 5.388005933831694f64,
9703 5.948431156647074f64,
9704 4.522846223618106f64,
9705 3.568500188627606f64,
9706 11.044792572470516f64,
9707 ],
9708 theta1: [
9709 959.7891933286942f64,
9710 731.077582955928f64,
9711 522.3307938967249f64,
9712 449.1358738582876f64,
9713 427.10754977009157f64,
9714 388.83160660922994f64,
9715 354.1171823199879f64,
9716 290.6454915444109f64,
9717 224.66977689099764f64,
9718 140.70512817020406f64,
9719 -35.32930378471962f64,
9720 49.9855316454168f64,
9721 -0.9065240134858548f64,
9722 -1.626123264083117f64,
9723 -1.314581992602129f64,
9724 -8.810596596992575f64,
9725 -70.65860756943924f64,
9726 99.9710632908336f64,
9727 ],
9728};
9729impl RotationalElements for Juliet {
9730 fn rotational_elements(&self, t: f64) -> Elements {
9731 (
9732 RIGHT_ASCENSION_JULIET.angle(t),
9733 DECLINATION_JULIET.angle(t),
9734 ROTATION_JULIET.angle(t),
9735 )
9736 }
9737 fn rotational_element_rates(&self, t: f64) -> Elements {
9738 (
9739 RIGHT_ASCENSION_JULIET.angle_dot(t),
9740 DECLINATION_JULIET.angle_dot(t),
9741 ROTATION_JULIET.angle_dot(t),
9742 )
9743 }
9744}
9745#[doc = "Portia (NAIF ID: 712)."]
9746#[derive(Debug, Copy, Clone, Eq, PartialEq)]
9747#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9748pub struct Portia;
9749impl Origin for Portia {
9750 fn id(&self) -> NaifId {
9751 NaifId(712i32)
9752 }
9753 fn name(&self) -> &'static str {
9754 "Portia"
9755 }
9756}
9757impl Display for Portia {
9758 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
9759 write!(f, "{}", self.name())
9760 }
9761}
9762impl From<Portia> for DynOrigin {
9763 fn from(_: Portia) -> Self {
9764 DynOrigin::Portia
9765 }
9766}
9767impl MeanRadius for Portia {
9768 fn mean_radius(&self) -> Distance {
9769 Distance::kilometers(54f64)
9770 }
9771}
9772impl TriaxialEllipsoid for Portia {
9773 fn radii(&self) -> Radii {
9774 (
9775 Distance::kilometers(54f64),
9776 Distance::kilometers(54f64),
9777 Distance::kilometers(54f64),
9778 )
9779 }
9780}
9781impl Spheroid for Portia {}
9782const RIGHT_ASCENSION_PORTIA: RotationalElement<18usize> = RotationalElement {
9783 typ: RotationalElementType::RightAscension,
9784 c0: 4.49090669830661f64,
9785 c1: 0f64,
9786 c2: 0f64,
9787 c: [
9788 0f64,
9789 0f64,
9790 0f64,
9791 0f64,
9792 0f64,
9793 0f64,
9794 -0.0015707963267948964f64,
9795 0f64,
9796 0f64,
9797 0f64,
9798 0f64,
9799 0f64,
9800 0f64,
9801 0f64,
9802 0f64,
9803 0f64,
9804 0f64,
9805 0f64,
9806 ],
9807 theta0: [
9808 2.0202186091834364f64,
9809 2.4729570171507653f64,
9810 2.356718088967943f64,
9811 1.0780898789568973f64,
9812 4.351454891072263f64,
9813 0.7655014099247129f64,
9814 1.3554226970987964f64,
9815 2.746450110938277f64,
9816 1.776919711455427f64,
9817 2.419724474964938f64,
9818 1.784250094313803f64,
9819 5.522396286235258f64,
9820 5.3059754589879615f64,
9821 5.388005933831694f64,
9822 5.948431156647074f64,
9823 4.522846223618106f64,
9824 3.568500188627606f64,
9825 11.044792572470516f64,
9826 ],
9827 theta1: [
9828 959.7891933286942f64,
9829 731.077582955928f64,
9830 522.3307938967249f64,
9831 449.1358738582876f64,
9832 427.10754977009157f64,
9833 388.83160660922994f64,
9834 354.1171823199879f64,
9835 290.6454915444109f64,
9836 224.66977689099764f64,
9837 140.70512817020406f64,
9838 -35.32930378471962f64,
9839 49.9855316454168f64,
9840 -0.9065240134858548f64,
9841 -1.626123264083117f64,
9842 -1.314581992602129f64,
9843 -8.810596596992575f64,
9844 -70.65860756943924f64,
9845 99.9710632908336f64,
9846 ],
9847};
9848const DECLINATION_PORTIA: RotationalElement<18usize> = RotationalElement {
9849 typ: RotationalElementType::Declination,
9850 c0: -0.2649409804527392f64,
9851 c1: 0f64,
9852 c2: 0f64,
9853 c: [
9854 0f64,
9855 0f64,
9856 0f64,
9857 0f64,
9858 0f64,
9859 0f64,
9860 0.0015707963267948964f64,
9861 0f64,
9862 0f64,
9863 0f64,
9864 0f64,
9865 0f64,
9866 0f64,
9867 0f64,
9868 0f64,
9869 0f64,
9870 0f64,
9871 0f64,
9872 ],
9873 theta0: [
9874 2.0202186091834364f64,
9875 2.4729570171507653f64,
9876 2.356718088967943f64,
9877 1.0780898789568973f64,
9878 4.351454891072263f64,
9879 0.7655014099247129f64,
9880 1.3554226970987964f64,
9881 2.746450110938277f64,
9882 1.776919711455427f64,
9883 2.419724474964938f64,
9884 1.784250094313803f64,
9885 5.522396286235258f64,
9886 5.3059754589879615f64,
9887 5.388005933831694f64,
9888 5.948431156647074f64,
9889 4.522846223618106f64,
9890 3.568500188627606f64,
9891 11.044792572470516f64,
9892 ],
9893 theta1: [
9894 959.7891933286942f64,
9895 731.077582955928f64,
9896 522.3307938967249f64,
9897 449.1358738582876f64,
9898 427.10754977009157f64,
9899 388.83160660922994f64,
9900 354.1171823199879f64,
9901 290.6454915444109f64,
9902 224.66977689099764f64,
9903 140.70512817020406f64,
9904 -35.32930378471962f64,
9905 49.9855316454168f64,
9906 -0.9065240134858548f64,
9907 -1.626123264083117f64,
9908 -1.314581992602129f64,
9909 -8.810596596992575f64,
9910 -70.65860756943924f64,
9911 99.9710632908336f64,
9912 ],
9913};
9914const ROTATION_PORTIA: RotationalElement<18usize> = RotationalElement {
9915 typ: RotationalElementType::Rotation,
9916 c0: 0.4368559117741807f64,
9917 c1: -12.243250601727652f64,
9918 c2: 0f64,
9919 c: [
9920 0f64,
9921 0f64,
9922 0f64,
9923 0f64,
9924 0f64,
9925 0f64,
9926 -0.00034906585039886593f64,
9927 0f64,
9928 0f64,
9929 0f64,
9930 0f64,
9931 0f64,
9932 0f64,
9933 0f64,
9934 0f64,
9935 0f64,
9936 0f64,
9937 0f64,
9938 ],
9939 theta0: [
9940 2.0202186091834364f64,
9941 2.4729570171507653f64,
9942 2.356718088967943f64,
9943 1.0780898789568973f64,
9944 4.351454891072263f64,
9945 0.7655014099247129f64,
9946 1.3554226970987964f64,
9947 2.746450110938277f64,
9948 1.776919711455427f64,
9949 2.419724474964938f64,
9950 1.784250094313803f64,
9951 5.522396286235258f64,
9952 5.3059754589879615f64,
9953 5.388005933831694f64,
9954 5.948431156647074f64,
9955 4.522846223618106f64,
9956 3.568500188627606f64,
9957 11.044792572470516f64,
9958 ],
9959 theta1: [
9960 959.7891933286942f64,
9961 731.077582955928f64,
9962 522.3307938967249f64,
9963 449.1358738582876f64,
9964 427.10754977009157f64,
9965 388.83160660922994f64,
9966 354.1171823199879f64,
9967 290.6454915444109f64,
9968 224.66977689099764f64,
9969 140.70512817020406f64,
9970 -35.32930378471962f64,
9971 49.9855316454168f64,
9972 -0.9065240134858548f64,
9973 -1.626123264083117f64,
9974 -1.314581992602129f64,
9975 -8.810596596992575f64,
9976 -70.65860756943924f64,
9977 99.9710632908336f64,
9978 ],
9979};
9980impl RotationalElements for Portia {
9981 fn rotational_elements(&self, t: f64) -> Elements {
9982 (
9983 RIGHT_ASCENSION_PORTIA.angle(t),
9984 DECLINATION_PORTIA.angle(t),
9985 ROTATION_PORTIA.angle(t),
9986 )
9987 }
9988 fn rotational_element_rates(&self, t: f64) -> Elements {
9989 (
9990 RIGHT_ASCENSION_PORTIA.angle_dot(t),
9991 DECLINATION_PORTIA.angle_dot(t),
9992 ROTATION_PORTIA.angle_dot(t),
9993 )
9994 }
9995}
9996#[doc = "Rosalind (NAIF ID: 713)."]
9997#[derive(Debug, Copy, Clone, Eq, PartialEq)]
9998#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9999pub struct Rosalind;
10000impl Origin for Rosalind {
10001 fn id(&self) -> NaifId {
10002 NaifId(713i32)
10003 }
10004 fn name(&self) -> &'static str {
10005 "Rosalind"
10006 }
10007}
10008impl Display for Rosalind {
10009 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10010 write!(f, "{}", self.name())
10011 }
10012}
10013impl From<Rosalind> for DynOrigin {
10014 fn from(_: Rosalind) -> Self {
10015 DynOrigin::Rosalind
10016 }
10017}
10018impl MeanRadius for Rosalind {
10019 fn mean_radius(&self) -> Distance {
10020 Distance::kilometers(27f64)
10021 }
10022}
10023impl TriaxialEllipsoid for Rosalind {
10024 fn radii(&self) -> Radii {
10025 (
10026 Distance::kilometers(27f64),
10027 Distance::kilometers(27f64),
10028 Distance::kilometers(27f64),
10029 )
10030 }
10031}
10032impl Spheroid for Rosalind {}
10033const RIGHT_ASCENSION_ROSALIND: RotationalElement<18usize> = RotationalElement {
10034 typ: RotationalElementType::RightAscension,
10035 c0: 4.49090669830661f64,
10036 c1: 0f64,
10037 c2: 0f64,
10038 c: [
10039 0f64,
10040 0f64,
10041 0f64,
10042 0f64,
10043 0f64,
10044 0f64,
10045 0f64,
10046 -0.005061454830783556f64,
10047 0f64,
10048 0f64,
10049 0f64,
10050 0f64,
10051 0f64,
10052 0f64,
10053 0f64,
10054 0f64,
10055 0f64,
10056 0f64,
10057 ],
10058 theta0: [
10059 2.0202186091834364f64,
10060 2.4729570171507653f64,
10061 2.356718088967943f64,
10062 1.0780898789568973f64,
10063 4.351454891072263f64,
10064 0.7655014099247129f64,
10065 1.3554226970987964f64,
10066 2.746450110938277f64,
10067 1.776919711455427f64,
10068 2.419724474964938f64,
10069 1.784250094313803f64,
10070 5.522396286235258f64,
10071 5.3059754589879615f64,
10072 5.388005933831694f64,
10073 5.948431156647074f64,
10074 4.522846223618106f64,
10075 3.568500188627606f64,
10076 11.044792572470516f64,
10077 ],
10078 theta1: [
10079 959.7891933286942f64,
10080 731.077582955928f64,
10081 522.3307938967249f64,
10082 449.1358738582876f64,
10083 427.10754977009157f64,
10084 388.83160660922994f64,
10085 354.1171823199879f64,
10086 290.6454915444109f64,
10087 224.66977689099764f64,
10088 140.70512817020406f64,
10089 -35.32930378471962f64,
10090 49.9855316454168f64,
10091 -0.9065240134858548f64,
10092 -1.626123264083117f64,
10093 -1.314581992602129f64,
10094 -8.810596596992575f64,
10095 -70.65860756943924f64,
10096 99.9710632908336f64,
10097 ],
10098};
10099const DECLINATION_ROSALIND: RotationalElement<18usize> = RotationalElement {
10100 typ: RotationalElementType::Declination,
10101 c0: -0.2649409804527392f64,
10102 c1: 0f64,
10103 c2: 0f64,
10104 c: [
10105 0f64,
10106 0f64,
10107 0f64,
10108 0f64,
10109 0f64,
10110 0f64,
10111 0f64,
10112 0.004886921905584123f64,
10113 0f64,
10114 0f64,
10115 0f64,
10116 0f64,
10117 0f64,
10118 0f64,
10119 0f64,
10120 0f64,
10121 0f64,
10122 0f64,
10123 ],
10124 theta0: [
10125 2.0202186091834364f64,
10126 2.4729570171507653f64,
10127 2.356718088967943f64,
10128 1.0780898789568973f64,
10129 4.351454891072263f64,
10130 0.7655014099247129f64,
10131 1.3554226970987964f64,
10132 2.746450110938277f64,
10133 1.776919711455427f64,
10134 2.419724474964938f64,
10135 1.784250094313803f64,
10136 5.522396286235258f64,
10137 5.3059754589879615f64,
10138 5.388005933831694f64,
10139 5.948431156647074f64,
10140 4.522846223618106f64,
10141 3.568500188627606f64,
10142 11.044792572470516f64,
10143 ],
10144 theta1: [
10145 959.7891933286942f64,
10146 731.077582955928f64,
10147 522.3307938967249f64,
10148 449.1358738582876f64,
10149 427.10754977009157f64,
10150 388.83160660922994f64,
10151 354.1171823199879f64,
10152 290.6454915444109f64,
10153 224.66977689099764f64,
10154 140.70512817020406f64,
10155 -35.32930378471962f64,
10156 49.9855316454168f64,
10157 -0.9065240134858548f64,
10158 -1.626123264083117f64,
10159 -1.314581992602129f64,
10160 -8.810596596992575f64,
10161 -70.65860756943924f64,
10162 99.9710632908336f64,
10163 ],
10164};
10165const ROTATION_ROSALIND: RotationalElement<18usize> = RotationalElement {
10166 typ: RotationalElementType::Rotation,
10167 c0: 5.496041814530144f64,
10168 c1: -11.250935609538423f64,
10169 c2: 0f64,
10170 c: [
10171 0f64,
10172 0f64,
10173 0f64,
10174 0f64,
10175 0f64,
10176 0f64,
10177 0f64,
10178 -0.0013962634015954637f64,
10179 0f64,
10180 0f64,
10181 0f64,
10182 0f64,
10183 0f64,
10184 0f64,
10185 0f64,
10186 0f64,
10187 0f64,
10188 0f64,
10189 ],
10190 theta0: [
10191 2.0202186091834364f64,
10192 2.4729570171507653f64,
10193 2.356718088967943f64,
10194 1.0780898789568973f64,
10195 4.351454891072263f64,
10196 0.7655014099247129f64,
10197 1.3554226970987964f64,
10198 2.746450110938277f64,
10199 1.776919711455427f64,
10200 2.419724474964938f64,
10201 1.784250094313803f64,
10202 5.522396286235258f64,
10203 5.3059754589879615f64,
10204 5.388005933831694f64,
10205 5.948431156647074f64,
10206 4.522846223618106f64,
10207 3.568500188627606f64,
10208 11.044792572470516f64,
10209 ],
10210 theta1: [
10211 959.7891933286942f64,
10212 731.077582955928f64,
10213 522.3307938967249f64,
10214 449.1358738582876f64,
10215 427.10754977009157f64,
10216 388.83160660922994f64,
10217 354.1171823199879f64,
10218 290.6454915444109f64,
10219 224.66977689099764f64,
10220 140.70512817020406f64,
10221 -35.32930378471962f64,
10222 49.9855316454168f64,
10223 -0.9065240134858548f64,
10224 -1.626123264083117f64,
10225 -1.314581992602129f64,
10226 -8.810596596992575f64,
10227 -70.65860756943924f64,
10228 99.9710632908336f64,
10229 ],
10230};
10231impl RotationalElements for Rosalind {
10232 fn rotational_elements(&self, t: f64) -> Elements {
10233 (
10234 RIGHT_ASCENSION_ROSALIND.angle(t),
10235 DECLINATION_ROSALIND.angle(t),
10236 ROTATION_ROSALIND.angle(t),
10237 )
10238 }
10239 fn rotational_element_rates(&self, t: f64) -> Elements {
10240 (
10241 RIGHT_ASCENSION_ROSALIND.angle_dot(t),
10242 DECLINATION_ROSALIND.angle_dot(t),
10243 ROTATION_ROSALIND.angle_dot(t),
10244 )
10245 }
10246}
10247#[doc = "Belinda (NAIF ID: 714)."]
10248#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10249#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10250pub struct Belinda;
10251impl Origin for Belinda {
10252 fn id(&self) -> NaifId {
10253 NaifId(714i32)
10254 }
10255 fn name(&self) -> &'static str {
10256 "Belinda"
10257 }
10258}
10259impl Display for Belinda {
10260 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10261 write!(f, "{}", self.name())
10262 }
10263}
10264impl From<Belinda> for DynOrigin {
10265 fn from(_: Belinda) -> Self {
10266 DynOrigin::Belinda
10267 }
10268}
10269impl MeanRadius for Belinda {
10270 fn mean_radius(&self) -> Distance {
10271 Distance::kilometers(33f64)
10272 }
10273}
10274impl TriaxialEllipsoid for Belinda {
10275 fn radii(&self) -> Radii {
10276 (
10277 Distance::kilometers(33f64),
10278 Distance::kilometers(33f64),
10279 Distance::kilometers(33f64),
10280 )
10281 }
10282}
10283impl Spheroid for Belinda {}
10284const RIGHT_ASCENSION_BELINDA: RotationalElement<18usize> = RotationalElement {
10285 typ: RotationalElementType::RightAscension,
10286 c0: 4.49090669830661f64,
10287 c1: 0f64,
10288 c2: 0f64,
10289 c: [
10290 0f64,
10291 0f64,
10292 0f64,
10293 0f64,
10294 0f64,
10295 0f64,
10296 0f64,
10297 0f64,
10298 -0.0005235987755982988f64,
10299 0f64,
10300 0f64,
10301 0f64,
10302 0f64,
10303 0f64,
10304 0f64,
10305 0f64,
10306 0f64,
10307 0f64,
10308 ],
10309 theta0: [
10310 2.0202186091834364f64,
10311 2.4729570171507653f64,
10312 2.356718088967943f64,
10313 1.0780898789568973f64,
10314 4.351454891072263f64,
10315 0.7655014099247129f64,
10316 1.3554226970987964f64,
10317 2.746450110938277f64,
10318 1.776919711455427f64,
10319 2.419724474964938f64,
10320 1.784250094313803f64,
10321 5.522396286235258f64,
10322 5.3059754589879615f64,
10323 5.388005933831694f64,
10324 5.948431156647074f64,
10325 4.522846223618106f64,
10326 3.568500188627606f64,
10327 11.044792572470516f64,
10328 ],
10329 theta1: [
10330 959.7891933286942f64,
10331 731.077582955928f64,
10332 522.3307938967249f64,
10333 449.1358738582876f64,
10334 427.10754977009157f64,
10335 388.83160660922994f64,
10336 354.1171823199879f64,
10337 290.6454915444109f64,
10338 224.66977689099764f64,
10339 140.70512817020406f64,
10340 -35.32930378471962f64,
10341 49.9855316454168f64,
10342 -0.9065240134858548f64,
10343 -1.626123264083117f64,
10344 -1.314581992602129f64,
10345 -8.810596596992575f64,
10346 -70.65860756943924f64,
10347 99.9710632908336f64,
10348 ],
10349};
10350const DECLINATION_BELINDA: RotationalElement<18usize> = RotationalElement {
10351 typ: RotationalElementType::Declination,
10352 c0: -0.2649409804527392f64,
10353 c1: 0f64,
10354 c2: 0f64,
10355 c: [
10356 0f64,
10357 0f64,
10358 0f64,
10359 0f64,
10360 0f64,
10361 0f64,
10362 0f64,
10363 0f64,
10364 0.0005235987755982988f64,
10365 0f64,
10366 0f64,
10367 0f64,
10368 0f64,
10369 0f64,
10370 0f64,
10371 0f64,
10372 0f64,
10373 0f64,
10374 ],
10375 theta0: [
10376 2.0202186091834364f64,
10377 2.4729570171507653f64,
10378 2.356718088967943f64,
10379 1.0780898789568973f64,
10380 4.351454891072263f64,
10381 0.7655014099247129f64,
10382 1.3554226970987964f64,
10383 2.746450110938277f64,
10384 1.776919711455427f64,
10385 2.419724474964938f64,
10386 1.784250094313803f64,
10387 5.522396286235258f64,
10388 5.3059754589879615f64,
10389 5.388005933831694f64,
10390 5.948431156647074f64,
10391 4.522846223618106f64,
10392 3.568500188627606f64,
10393 11.044792572470516f64,
10394 ],
10395 theta1: [
10396 959.7891933286942f64,
10397 731.077582955928f64,
10398 522.3307938967249f64,
10399 449.1358738582876f64,
10400 427.10754977009157f64,
10401 388.83160660922994f64,
10402 354.1171823199879f64,
10403 290.6454915444109f64,
10404 224.66977689099764f64,
10405 140.70512817020406f64,
10406 -35.32930378471962f64,
10407 49.9855316454168f64,
10408 -0.9065240134858548f64,
10409 -1.626123264083117f64,
10410 -1.314581992602129f64,
10411 -8.810596596992575f64,
10412 -70.65860756943924f64,
10413 99.9710632908336f64,
10414 ],
10415};
10416const ROTATION_BELINDA: RotationalElement<18usize> = RotationalElement {
10417 typ: RotationalElementType::Rotation,
10418 c0: 5.191656392982332f64,
10419 c1: -10.076882135239488f64,
10420 c2: 0f64,
10421 c: [
10422 0f64,
10423 0f64,
10424 0f64,
10425 0f64,
10426 0f64,
10427 0f64,
10428 0f64,
10429 0f64,
10430 -0.00017453292519943296f64,
10431 0f64,
10432 0f64,
10433 0f64,
10434 0f64,
10435 0f64,
10436 0f64,
10437 0f64,
10438 0f64,
10439 0f64,
10440 ],
10441 theta0: [
10442 2.0202186091834364f64,
10443 2.4729570171507653f64,
10444 2.356718088967943f64,
10445 1.0780898789568973f64,
10446 4.351454891072263f64,
10447 0.7655014099247129f64,
10448 1.3554226970987964f64,
10449 2.746450110938277f64,
10450 1.776919711455427f64,
10451 2.419724474964938f64,
10452 1.784250094313803f64,
10453 5.522396286235258f64,
10454 5.3059754589879615f64,
10455 5.388005933831694f64,
10456 5.948431156647074f64,
10457 4.522846223618106f64,
10458 3.568500188627606f64,
10459 11.044792572470516f64,
10460 ],
10461 theta1: [
10462 959.7891933286942f64,
10463 731.077582955928f64,
10464 522.3307938967249f64,
10465 449.1358738582876f64,
10466 427.10754977009157f64,
10467 388.83160660922994f64,
10468 354.1171823199879f64,
10469 290.6454915444109f64,
10470 224.66977689099764f64,
10471 140.70512817020406f64,
10472 -35.32930378471962f64,
10473 49.9855316454168f64,
10474 -0.9065240134858548f64,
10475 -1.626123264083117f64,
10476 -1.314581992602129f64,
10477 -8.810596596992575f64,
10478 -70.65860756943924f64,
10479 99.9710632908336f64,
10480 ],
10481};
10482impl RotationalElements for Belinda {
10483 fn rotational_elements(&self, t: f64) -> Elements {
10484 (
10485 RIGHT_ASCENSION_BELINDA.angle(t),
10486 DECLINATION_BELINDA.angle(t),
10487 ROTATION_BELINDA.angle(t),
10488 )
10489 }
10490 fn rotational_element_rates(&self, t: f64) -> Elements {
10491 (
10492 RIGHT_ASCENSION_BELINDA.angle_dot(t),
10493 DECLINATION_BELINDA.angle_dot(t),
10494 ROTATION_BELINDA.angle_dot(t),
10495 )
10496 }
10497}
10498#[doc = "Puck (NAIF ID: 715)."]
10499#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10500#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10501pub struct Puck;
10502impl Origin for Puck {
10503 fn id(&self) -> NaifId {
10504 NaifId(715i32)
10505 }
10506 fn name(&self) -> &'static str {
10507 "Puck"
10508 }
10509}
10510impl Display for Puck {
10511 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10512 write!(f, "{}", self.name())
10513 }
10514}
10515impl From<Puck> for DynOrigin {
10516 fn from(_: Puck) -> Self {
10517 DynOrigin::Puck
10518 }
10519}
10520impl MeanRadius for Puck {
10521 fn mean_radius(&self) -> Distance {
10522 Distance::kilometers(77f64)
10523 }
10524}
10525impl TriaxialEllipsoid for Puck {
10526 fn radii(&self) -> Radii {
10527 (
10528 Distance::kilometers(77f64),
10529 Distance::kilometers(77f64),
10530 Distance::kilometers(77f64),
10531 )
10532 }
10533}
10534impl Spheroid for Puck {}
10535const RIGHT_ASCENSION_PUCK: RotationalElement<18usize> = RotationalElement {
10536 typ: RotationalElementType::RightAscension,
10537 c0: 4.49090669830661f64,
10538 c1: 0f64,
10539 c2: 0f64,
10540 c: [
10541 0f64,
10542 0f64,
10543 0f64,
10544 0f64,
10545 0f64,
10546 0f64,
10547 0f64,
10548 0f64,
10549 0f64,
10550 -0.005759586531581287f64,
10551 0f64,
10552 0f64,
10553 0f64,
10554 0f64,
10555 0f64,
10556 0f64,
10557 0f64,
10558 0f64,
10559 ],
10560 theta0: [
10561 2.0202186091834364f64,
10562 2.4729570171507653f64,
10563 2.356718088967943f64,
10564 1.0780898789568973f64,
10565 4.351454891072263f64,
10566 0.7655014099247129f64,
10567 1.3554226970987964f64,
10568 2.746450110938277f64,
10569 1.776919711455427f64,
10570 2.419724474964938f64,
10571 1.784250094313803f64,
10572 5.522396286235258f64,
10573 5.3059754589879615f64,
10574 5.388005933831694f64,
10575 5.948431156647074f64,
10576 4.522846223618106f64,
10577 3.568500188627606f64,
10578 11.044792572470516f64,
10579 ],
10580 theta1: [
10581 959.7891933286942f64,
10582 731.077582955928f64,
10583 522.3307938967249f64,
10584 449.1358738582876f64,
10585 427.10754977009157f64,
10586 388.83160660922994f64,
10587 354.1171823199879f64,
10588 290.6454915444109f64,
10589 224.66977689099764f64,
10590 140.70512817020406f64,
10591 -35.32930378471962f64,
10592 49.9855316454168f64,
10593 -0.9065240134858548f64,
10594 -1.626123264083117f64,
10595 -1.314581992602129f64,
10596 -8.810596596992575f64,
10597 -70.65860756943924f64,
10598 99.9710632908336f64,
10599 ],
10600};
10601const DECLINATION_PUCK: RotationalElement<18usize> = RotationalElement {
10602 typ: RotationalElementType::Declination,
10603 c0: -0.2649409804527392f64,
10604 c1: 0f64,
10605 c2: 0f64,
10606 c: [
10607 0f64,
10608 0f64,
10609 0f64,
10610 0f64,
10611 0f64,
10612 0f64,
10613 0f64,
10614 0f64,
10615 0f64,
10616 0.0054105206811824215f64,
10617 0f64,
10618 0f64,
10619 0f64,
10620 0f64,
10621 0f64,
10622 0f64,
10623 0f64,
10624 0f64,
10625 ],
10626 theta0: [
10627 2.0202186091834364f64,
10628 2.4729570171507653f64,
10629 2.356718088967943f64,
10630 1.0780898789568973f64,
10631 4.351454891072263f64,
10632 0.7655014099247129f64,
10633 1.3554226970987964f64,
10634 2.746450110938277f64,
10635 1.776919711455427f64,
10636 2.419724474964938f64,
10637 1.784250094313803f64,
10638 5.522396286235258f64,
10639 5.3059754589879615f64,
10640 5.388005933831694f64,
10641 5.948431156647074f64,
10642 4.522846223618106f64,
10643 3.568500188627606f64,
10644 11.044792572470516f64,
10645 ],
10646 theta1: [
10647 959.7891933286942f64,
10648 731.077582955928f64,
10649 522.3307938967249f64,
10650 449.1358738582876f64,
10651 427.10754977009157f64,
10652 388.83160660922994f64,
10653 354.1171823199879f64,
10654 290.6454915444109f64,
10655 224.66977689099764f64,
10656 140.70512817020406f64,
10657 -35.32930378471962f64,
10658 49.9855316454168f64,
10659 -0.9065240134858548f64,
10660 -1.626123264083117f64,
10661 -1.314581992602129f64,
10662 -8.810596596992575f64,
10663 -70.65860756943924f64,
10664 99.9710632908336f64,
10665 ],
10666};
10667const ROTATION_PUCK: RotationalElement<18usize> = RotationalElement {
10668 typ: RotationalElementType::Rotation,
10669 c0: 1.5924384095196262f64,
10670 c1: -8.247467318113788f64,
10671 c2: 0f64,
10672 c: [
10673 0f64,
10674 0f64,
10675 0f64,
10676 0f64,
10677 0f64,
10678 0f64,
10679 0f64,
10680 0f64,
10681 0f64,
10682 -0.0015707963267948964f64,
10683 0f64,
10684 0f64,
10685 0f64,
10686 0f64,
10687 0f64,
10688 0f64,
10689 0f64,
10690 0f64,
10691 ],
10692 theta0: [
10693 2.0202186091834364f64,
10694 2.4729570171507653f64,
10695 2.356718088967943f64,
10696 1.0780898789568973f64,
10697 4.351454891072263f64,
10698 0.7655014099247129f64,
10699 1.3554226970987964f64,
10700 2.746450110938277f64,
10701 1.776919711455427f64,
10702 2.419724474964938f64,
10703 1.784250094313803f64,
10704 5.522396286235258f64,
10705 5.3059754589879615f64,
10706 5.388005933831694f64,
10707 5.948431156647074f64,
10708 4.522846223618106f64,
10709 3.568500188627606f64,
10710 11.044792572470516f64,
10711 ],
10712 theta1: [
10713 959.7891933286942f64,
10714 731.077582955928f64,
10715 522.3307938967249f64,
10716 449.1358738582876f64,
10717 427.10754977009157f64,
10718 388.83160660922994f64,
10719 354.1171823199879f64,
10720 290.6454915444109f64,
10721 224.66977689099764f64,
10722 140.70512817020406f64,
10723 -35.32930378471962f64,
10724 49.9855316454168f64,
10725 -0.9065240134858548f64,
10726 -1.626123264083117f64,
10727 -1.314581992602129f64,
10728 -8.810596596992575f64,
10729 -70.65860756943924f64,
10730 99.9710632908336f64,
10731 ],
10732};
10733impl RotationalElements for Puck {
10734 fn rotational_elements(&self, t: f64) -> Elements {
10735 (
10736 RIGHT_ASCENSION_PUCK.angle(t),
10737 DECLINATION_PUCK.angle(t),
10738 ROTATION_PUCK.angle(t),
10739 )
10740 }
10741 fn rotational_element_rates(&self, t: f64) -> Elements {
10742 (
10743 RIGHT_ASCENSION_PUCK.angle_dot(t),
10744 DECLINATION_PUCK.angle_dot(t),
10745 ROTATION_PUCK.angle_dot(t),
10746 )
10747 }
10748}
10749#[doc = "Caliban (NAIF ID: 716)."]
10750#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10751#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10752pub struct Caliban;
10753impl Origin for Caliban {
10754 fn id(&self) -> NaifId {
10755 NaifId(716i32)
10756 }
10757 fn name(&self) -> &'static str {
10758 "Caliban"
10759 }
10760}
10761impl Display for Caliban {
10762 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10763 write!(f, "{}", self.name())
10764 }
10765}
10766impl From<Caliban> for DynOrigin {
10767 fn from(_: Caliban) -> Self {
10768 DynOrigin::Caliban
10769 }
10770}
10771#[doc = "Sycorax (NAIF ID: 717)."]
10772#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10773#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10774pub struct Sycorax;
10775impl Origin for Sycorax {
10776 fn id(&self) -> NaifId {
10777 NaifId(717i32)
10778 }
10779 fn name(&self) -> &'static str {
10780 "Sycorax"
10781 }
10782}
10783impl Display for Sycorax {
10784 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10785 write!(f, "{}", self.name())
10786 }
10787}
10788impl From<Sycorax> for DynOrigin {
10789 fn from(_: Sycorax) -> Self {
10790 DynOrigin::Sycorax
10791 }
10792}
10793#[doc = "Prospero (NAIF ID: 718)."]
10794#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10795#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10796pub struct Prospero;
10797impl Origin for Prospero {
10798 fn id(&self) -> NaifId {
10799 NaifId(718i32)
10800 }
10801 fn name(&self) -> &'static str {
10802 "Prospero"
10803 }
10804}
10805impl Display for Prospero {
10806 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10807 write!(f, "{}", self.name())
10808 }
10809}
10810impl From<Prospero> for DynOrigin {
10811 fn from(_: Prospero) -> Self {
10812 DynOrigin::Prospero
10813 }
10814}
10815#[doc = "Setebos (NAIF ID: 719)."]
10816#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10817#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10818pub struct Setebos;
10819impl Origin for Setebos {
10820 fn id(&self) -> NaifId {
10821 NaifId(719i32)
10822 }
10823 fn name(&self) -> &'static str {
10824 "Setebos"
10825 }
10826}
10827impl Display for Setebos {
10828 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10829 write!(f, "{}", self.name())
10830 }
10831}
10832impl From<Setebos> for DynOrigin {
10833 fn from(_: Setebos) -> Self {
10834 DynOrigin::Setebos
10835 }
10836}
10837#[doc = "Stephano (NAIF ID: 720)."]
10838#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10839#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10840pub struct Stephano;
10841impl Origin for Stephano {
10842 fn id(&self) -> NaifId {
10843 NaifId(720i32)
10844 }
10845 fn name(&self) -> &'static str {
10846 "Stephano"
10847 }
10848}
10849impl Display for Stephano {
10850 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10851 write!(f, "{}", self.name())
10852 }
10853}
10854impl From<Stephano> for DynOrigin {
10855 fn from(_: Stephano) -> Self {
10856 DynOrigin::Stephano
10857 }
10858}
10859#[doc = "Trinculo (NAIF ID: 721)."]
10860#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10861#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10862pub struct Trinculo;
10863impl Origin for Trinculo {
10864 fn id(&self) -> NaifId {
10865 NaifId(721i32)
10866 }
10867 fn name(&self) -> &'static str {
10868 "Trinculo"
10869 }
10870}
10871impl Display for Trinculo {
10872 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10873 write!(f, "{}", self.name())
10874 }
10875}
10876impl From<Trinculo> for DynOrigin {
10877 fn from(_: Trinculo) -> Self {
10878 DynOrigin::Trinculo
10879 }
10880}
10881#[doc = "Francisco (NAIF ID: 722)."]
10882#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10883#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10884pub struct Francisco;
10885impl Origin for Francisco {
10886 fn id(&self) -> NaifId {
10887 NaifId(722i32)
10888 }
10889 fn name(&self) -> &'static str {
10890 "Francisco"
10891 }
10892}
10893impl Display for Francisco {
10894 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10895 write!(f, "{}", self.name())
10896 }
10897}
10898impl From<Francisco> for DynOrigin {
10899 fn from(_: Francisco) -> Self {
10900 DynOrigin::Francisco
10901 }
10902}
10903#[doc = "Margaret (NAIF ID: 723)."]
10904#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10905#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10906pub struct Margaret;
10907impl Origin for Margaret {
10908 fn id(&self) -> NaifId {
10909 NaifId(723i32)
10910 }
10911 fn name(&self) -> &'static str {
10912 "Margaret"
10913 }
10914}
10915impl Display for Margaret {
10916 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10917 write!(f, "{}", self.name())
10918 }
10919}
10920impl From<Margaret> for DynOrigin {
10921 fn from(_: Margaret) -> Self {
10922 DynOrigin::Margaret
10923 }
10924}
10925#[doc = "Ferdinand (NAIF ID: 724)."]
10926#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10927#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10928pub struct Ferdinand;
10929impl Origin for Ferdinand {
10930 fn id(&self) -> NaifId {
10931 NaifId(724i32)
10932 }
10933 fn name(&self) -> &'static str {
10934 "Ferdinand"
10935 }
10936}
10937impl Display for Ferdinand {
10938 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10939 write!(f, "{}", self.name())
10940 }
10941}
10942impl From<Ferdinand> for DynOrigin {
10943 fn from(_: Ferdinand) -> Self {
10944 DynOrigin::Ferdinand
10945 }
10946}
10947#[doc = "Perdita (NAIF ID: 725)."]
10948#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10949#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10950pub struct Perdita;
10951impl Origin for Perdita {
10952 fn id(&self) -> NaifId {
10953 NaifId(725i32)
10954 }
10955 fn name(&self) -> &'static str {
10956 "Perdita"
10957 }
10958}
10959impl Display for Perdita {
10960 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10961 write!(f, "{}", self.name())
10962 }
10963}
10964impl From<Perdita> for DynOrigin {
10965 fn from(_: Perdita) -> Self {
10966 DynOrigin::Perdita
10967 }
10968}
10969#[doc = "Mab (NAIF ID: 726)."]
10970#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10971#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10972pub struct Mab;
10973impl Origin for Mab {
10974 fn id(&self) -> NaifId {
10975 NaifId(726i32)
10976 }
10977 fn name(&self) -> &'static str {
10978 "Mab"
10979 }
10980}
10981impl Display for Mab {
10982 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
10983 write!(f, "{}", self.name())
10984 }
10985}
10986impl From<Mab> for DynOrigin {
10987 fn from(_: Mab) -> Self {
10988 DynOrigin::Mab
10989 }
10990}
10991#[doc = "Cupid (NAIF ID: 727)."]
10992#[derive(Debug, Copy, Clone, Eq, PartialEq)]
10993#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10994pub struct Cupid;
10995impl Origin for Cupid {
10996 fn id(&self) -> NaifId {
10997 NaifId(727i32)
10998 }
10999 fn name(&self) -> &'static str {
11000 "Cupid"
11001 }
11002}
11003impl Display for Cupid {
11004 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
11005 write!(f, "{}", self.name())
11006 }
11007}
11008impl From<Cupid> for DynOrigin {
11009 fn from(_: Cupid) -> Self {
11010 DynOrigin::Cupid
11011 }
11012}
11013#[doc = "Triton (NAIF ID: 801)."]
11014#[derive(Debug, Copy, Clone, Eq, PartialEq)]
11015#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11016pub struct Triton;
11017impl Origin for Triton {
11018 fn id(&self) -> NaifId {
11019 NaifId(801i32)
11020 }
11021 fn name(&self) -> &'static str {
11022 "Triton"
11023 }
11024}
11025impl Display for Triton {
11026 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
11027 write!(f, "{}", self.name())
11028 }
11029}
11030impl From<Triton> for DynOrigin {
11031 fn from(_: Triton) -> Self {
11032 DynOrigin::Triton
11033 }
11034}
11035impl PointMass for Triton {
11036 fn gravitational_parameter(&self) -> GravitationalParameter {
11037 GravitationalParameter::km3_per_s2(1428.495462910464f64)
11038 }
11039}
11040impl MeanRadius for Triton {
11041 fn mean_radius(&self) -> Distance {
11042 Distance::kilometers(1352.6f64)
11043 }
11044}
11045impl TriaxialEllipsoid for Triton {
11046 fn radii(&self) -> Radii {
11047 (
11048 Distance::kilometers(1352.6f64),
11049 Distance::kilometers(1352.6f64),
11050 Distance::kilometers(1352.6f64),
11051 )
11052 }
11053}
11054impl Spheroid for Triton {}
11055const RIGHT_ASCENSION_TRITON: RotationalElement<17usize> = RotationalElement {
11056 typ: RotationalElementType::RightAscension,
11057 c0: 5.224817648770225f64,
11058 c1: 0f64,
11059 c2: 0f64,
11060 c: [
11061 0f64,
11062 0f64,
11063 0f64,
11064 0f64,
11065 0f64,
11066 0f64,
11067 0f64,
11068 -0.5646140130201657f64,
11069 0f64,
11070 -0.1096066770252439f64,
11071 -0.03630284844148206f64,
11072 -0.012915436464758038f64,
11073 -0.004886921905584123f64,
11074 -0.0019198621771937625f64,
11075 -0.0012217304763960308f64,
11076 -0.00034906585039886593f64,
11077 -0.00017453292519943296f64,
11078 ],
11079 theta0: [
11080 6.245660728261709f64,
11081 5.653470513060032f64,
11082 3.848625533572696f64,
11083 6.183177941040311f64,
11084 1.3144074596769295f64,
11085 0.6171484235051949f64,
11086 2.4890140462691135f64,
11087 3.104068074671915f64,
11088 11.306941026120064f64,
11089 6.20813614934383f64,
11090 9.312204224015744f64,
11091 12.41627229868766f64,
11092 15.520340373359575f64,
11093 18.624408448031488f64,
11094 21.728476522703406f64,
11095 24.83254459737532f64,
11096 27.936612672047236f64,
11097 ],
11098 theta1: [
11099 0.9130864514733535f64,
11100 1092.6913034790819f64,
11101 961.0515899766616f64,
11102 812.7038395448996f64,
11103 455.6949957202075f64,
11104 250.02539666519567f64,
11105 49.29857005183183f64,
11106 0.9130864514733535f64,
11107 2185.3826069581637f64,
11108 1.826172902946707f64,
11109 2.7392593544200605f64,
11110 3.652345805893414f64,
11111 4.565432257366767f64,
11112 5.478518708840121f64,
11113 6.391605160313474f64,
11114 7.304691611786828f64,
11115 8.21777806326018f64,
11116 ],
11117};
11118const DECLINATION_TRITON: RotationalElement<17usize> = RotationalElement {
11119 typ: RotationalElementType::Declination,
11120 c0: 0.7185520530460655f64,
11121 c1: 0f64,
11122 c2: 0f64,
11123 c: [
11124 0f64,
11125 0f64,
11126 0f64,
11127 0f64,
11128 0f64,
11129 0f64,
11130 0f64,
11131 0.3935717463247213f64,
11132 0f64,
11133 0.03665191429188092f64,
11134 0.009599310885968814f64,
11135 0.0027925268031909274f64,
11136 0.0008726646259971648f64,
11137 0.00034906585039886593f64,
11138 0.00017453292519943296f64,
11139 0f64,
11140 0f64,
11141 ],
11142 theta0: [
11143 6.245660728261709f64,
11144 5.653470513060032f64,
11145 3.848625533572696f64,
11146 6.183177941040311f64,
11147 1.3144074596769295f64,
11148 0.6171484235051949f64,
11149 2.4890140462691135f64,
11150 3.104068074671915f64,
11151 11.306941026120064f64,
11152 6.20813614934383f64,
11153 9.312204224015744f64,
11154 12.41627229868766f64,
11155 15.520340373359575f64,
11156 18.624408448031488f64,
11157 21.728476522703406f64,
11158 24.83254459737532f64,
11159 27.936612672047236f64,
11160 ],
11161 theta1: [
11162 0.9130864514733535f64,
11163 1092.6913034790819f64,
11164 961.0515899766616f64,
11165 812.7038395448996f64,
11166 455.6949957202075f64,
11167 250.02539666519567f64,
11168 49.29857005183183f64,
11169 0.9130864514733535f64,
11170 2185.3826069581637f64,
11171 1.826172902946707f64,
11172 2.7392593544200605f64,
11173 3.652345805893414f64,
11174 4.565432257366767f64,
11175 5.478518708840121f64,
11176 6.391605160313474f64,
11177 7.304691611786828f64,
11178 8.21777806326018f64,
11179 ],
11180};
11181const ROTATION_TRITON: RotationalElement<17usize> = RotationalElement {
11182 typ: RotationalElementType::Rotation,
11183 c0: 5.175424830938785f64,
11184 c1: -1.069140942327404f64,
11185 c2: 0f64,
11186 c: [
11187 0f64,
11188 0f64,
11189 0f64,
11190 0f64,
11191 0f64,
11192 0f64,
11193 0f64,
11194 0.3883357585687383f64,
11195 0f64,
11196 0.11746065865921838f64,
11197 0.03577924966588375f64,
11198 0.012915436464758038f64,
11199 0.004886921905584123f64,
11200 0.0019198621771937625f64,
11201 0.0008726646259971648f64,
11202 0.00034906585039886593f64,
11203 0.00017453292519943296f64,
11204 ],
11205 theta0: [
11206 6.245660728261709f64,
11207 5.653470513060032f64,
11208 3.848625533572696f64,
11209 6.183177941040311f64,
11210 1.3144074596769295f64,
11211 0.6171484235051949f64,
11212 2.4890140462691135f64,
11213 3.104068074671915f64,
11214 11.306941026120064f64,
11215 6.20813614934383f64,
11216 9.312204224015744f64,
11217 12.41627229868766f64,
11218 15.520340373359575f64,
11219 18.624408448031488f64,
11220 21.728476522703406f64,
11221 24.83254459737532f64,
11222 27.936612672047236f64,
11223 ],
11224 theta1: [
11225 0.9130864514733535f64,
11226 1092.6913034790819f64,
11227 961.0515899766616f64,
11228 812.7038395448996f64,
11229 455.6949957202075f64,
11230 250.02539666519567f64,
11231 49.29857005183183f64,
11232 0.9130864514733535f64,
11233 2185.3826069581637f64,
11234 1.826172902946707f64,
11235 2.7392593544200605f64,
11236 3.652345805893414f64,
11237 4.565432257366767f64,
11238 5.478518708840121f64,
11239 6.391605160313474f64,
11240 7.304691611786828f64,
11241 8.21777806326018f64,
11242 ],
11243};
11244impl RotationalElements for Triton {
11245 fn rotational_elements(&self, t: f64) -> Elements {
11246 (
11247 RIGHT_ASCENSION_TRITON.angle(t),
11248 DECLINATION_TRITON.angle(t),
11249 ROTATION_TRITON.angle(t),
11250 )
11251 }
11252 fn rotational_element_rates(&self, t: f64) -> Elements {
11253 (
11254 RIGHT_ASCENSION_TRITON.angle_dot(t),
11255 DECLINATION_TRITON.angle_dot(t),
11256 ROTATION_TRITON.angle_dot(t),
11257 )
11258 }
11259}
11260#[doc = "Nereid (NAIF ID: 802)."]
11261#[derive(Debug, Copy, Clone, Eq, PartialEq)]
11262#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11263pub struct Nereid;
11264impl Origin for Nereid {
11265 fn id(&self) -> NaifId {
11266 NaifId(802i32)
11267 }
11268 fn name(&self) -> &'static str {
11269 "Nereid"
11270 }
11271}
11272impl Display for Nereid {
11273 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
11274 write!(f, "{}", self.name())
11275 }
11276}
11277impl From<Nereid> for DynOrigin {
11278 fn from(_: Nereid) -> Self {
11279 DynOrigin::Nereid
11280 }
11281}
11282impl MeanRadius for Nereid {
11283 fn mean_radius(&self) -> Distance {
11284 Distance::kilometers(170f64)
11285 }
11286}
11287impl TriaxialEllipsoid for Nereid {
11288 fn radii(&self) -> Radii {
11289 (
11290 Distance::kilometers(170f64),
11291 Distance::kilometers(170f64),
11292 Distance::kilometers(170f64),
11293 )
11294 }
11295}
11296impl Spheroid for Nereid {}
11297#[doc = "Naiad (NAIF ID: 803)."]
11298#[derive(Debug, Copy, Clone, Eq, PartialEq)]
11299#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11300pub struct Naiad;
11301impl Origin for Naiad {
11302 fn id(&self) -> NaifId {
11303 NaifId(803i32)
11304 }
11305 fn name(&self) -> &'static str {
11306 "Naiad"
11307 }
11308}
11309impl Display for Naiad {
11310 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
11311 write!(f, "{}", self.name())
11312 }
11313}
11314impl From<Naiad> for DynOrigin {
11315 fn from(_: Naiad) -> Self {
11316 DynOrigin::Naiad
11317 }
11318}
11319impl PointMass for Naiad {
11320 fn gravitational_parameter(&self) -> GravitationalParameter {
11321 GravitationalParameter::km3_per_s2(0.008530281246540886f64)
11322 }
11323}
11324impl MeanRadius for Naiad {
11325 fn mean_radius(&self) -> Distance {
11326 Distance::kilometers(29f64)
11327 }
11328}
11329impl TriaxialEllipsoid for Naiad {
11330 fn radii(&self) -> Radii {
11331 (
11332 Distance::kilometers(29f64),
11333 Distance::kilometers(29f64),
11334 Distance::kilometers(29f64),
11335 )
11336 }
11337}
11338impl Spheroid for Naiad {}
11339const RIGHT_ASCENSION_NAIAD: RotationalElement<17usize> = RotationalElement {
11340 typ: RotationalElementType::RightAscension,
11341 c0: 5.224817648770225f64,
11342 c1: 0f64,
11343 c2: 0f64,
11344 c: [
11345 0.012217304763960306f64,
11346 -0.11327186845443199f64,
11347 0f64,
11348 0f64,
11349 0f64,
11350 0f64,
11351 0f64,
11352 0f64,
11353 0.004363323129985824f64,
11354 0f64,
11355 0f64,
11356 0f64,
11357 0f64,
11358 0f64,
11359 0f64,
11360 0f64,
11361 0f64,
11362 ],
11363 theta0: [
11364 6.245660728261709f64,
11365 5.653470513060032f64,
11366 3.848625533572696f64,
11367 6.183177941040311f64,
11368 1.3144074596769295f64,
11369 0.6171484235051949f64,
11370 2.4890140462691135f64,
11371 3.104068074671915f64,
11372 11.306941026120064f64,
11373 6.20813614934383f64,
11374 9.312204224015744f64,
11375 12.41627229868766f64,
11376 15.520340373359575f64,
11377 18.624408448031488f64,
11378 21.728476522703406f64,
11379 24.83254459737532f64,
11380 27.936612672047236f64,
11381 ],
11382 theta1: [
11383 0.9130864514733535f64,
11384 1092.6913034790819f64,
11385 961.0515899766616f64,
11386 812.7038395448996f64,
11387 455.6949957202075f64,
11388 250.02539666519567f64,
11389 49.29857005183183f64,
11390 0.9130864514733535f64,
11391 2185.3826069581637f64,
11392 1.826172902946707f64,
11393 2.7392593544200605f64,
11394 3.652345805893414f64,
11395 4.565432257366767f64,
11396 5.478518708840121f64,
11397 6.391605160313474f64,
11398 7.304691611786828f64,
11399 8.21777806326018f64,
11400 ],
11401};
11402const DECLINATION_NAIAD: RotationalElement<17usize> = RotationalElement {
11403 typ: RotationalElementType::Declination,
11404 c0: 0.7567747636647413f64,
11405 c1: 0f64,
11406 c2: 0f64,
11407 c: [
11408 -0.00890117918517108f64,
11409 -0.08290313946973066f64,
11410 0f64,
11411 0f64,
11412 0f64,
11413 0f64,
11414 0f64,
11415 0f64,
11416 0.0015707963267948964f64,
11417 0f64,
11418 0f64,
11419 0f64,
11420 0f64,
11421 0f64,
11422 0f64,
11423 0f64,
11424 0f64,
11425 ],
11426 theta0: [
11427 6.245660728261709f64,
11428 5.653470513060032f64,
11429 3.848625533572696f64,
11430 6.183177941040311f64,
11431 1.3144074596769295f64,
11432 0.6171484235051949f64,
11433 2.4890140462691135f64,
11434 3.104068074671915f64,
11435 11.306941026120064f64,
11436 6.20813614934383f64,
11437 9.312204224015744f64,
11438 12.41627229868766f64,
11439 15.520340373359575f64,
11440 18.624408448031488f64,
11441 21.728476522703406f64,
11442 24.83254459737532f64,
11443 27.936612672047236f64,
11444 ],
11445 theta1: [
11446 0.9130864514733535f64,
11447 1092.6913034790819f64,
11448 961.0515899766616f64,
11449 812.7038395448996f64,
11450 455.6949957202075f64,
11451 250.02539666519567f64,
11452 49.29857005183183f64,
11453 0.9130864514733535f64,
11454 2185.3826069581637f64,
11455 1.826172902946707f64,
11456 2.7392593544200605f64,
11457 3.652345805893414f64,
11458 4.565432257366767f64,
11459 5.478518708840121f64,
11460 6.391605160313474f64,
11461 7.304691611786828f64,
11462 8.21777806326018f64,
11463 ],
11464};
11465const ROTATION_NAIAD: RotationalElement<17usize> = RotationalElement {
11466 typ: RotationalElementType::Rotation,
11467 c0: 4.434183497616794f64,
11468 c1: 21.342656148360604f64,
11469 c2: 0f64,
11470 c: [
11471 -0.008377580409572781f64,
11472 0.07679448708775051f64,
11473 0f64,
11474 0f64,
11475 0f64,
11476 0f64,
11477 0f64,
11478 0f64,
11479 -0.00471238898038469f64,
11480 0f64,
11481 0f64,
11482 0f64,
11483 0f64,
11484 0f64,
11485 0f64,
11486 0f64,
11487 0f64,
11488 ],
11489 theta0: [
11490 6.245660728261709f64,
11491 5.653470513060032f64,
11492 3.848625533572696f64,
11493 6.183177941040311f64,
11494 1.3144074596769295f64,
11495 0.6171484235051949f64,
11496 2.4890140462691135f64,
11497 3.104068074671915f64,
11498 11.306941026120064f64,
11499 6.20813614934383f64,
11500 9.312204224015744f64,
11501 12.41627229868766f64,
11502 15.520340373359575f64,
11503 18.624408448031488f64,
11504 21.728476522703406f64,
11505 24.83254459737532f64,
11506 27.936612672047236f64,
11507 ],
11508 theta1: [
11509 0.9130864514733535f64,
11510 1092.6913034790819f64,
11511 961.0515899766616f64,
11512 812.7038395448996f64,
11513 455.6949957202075f64,
11514 250.02539666519567f64,
11515 49.29857005183183f64,
11516 0.9130864514733535f64,
11517 2185.3826069581637f64,
11518 1.826172902946707f64,
11519 2.7392593544200605f64,
11520 3.652345805893414f64,
11521 4.565432257366767f64,
11522 5.478518708840121f64,
11523 6.391605160313474f64,
11524 7.304691611786828f64,
11525 8.21777806326018f64,
11526 ],
11527};
11528impl RotationalElements for Naiad {
11529 fn rotational_elements(&self, t: f64) -> Elements {
11530 (
11531 RIGHT_ASCENSION_NAIAD.angle(t),
11532 DECLINATION_NAIAD.angle(t),
11533 ROTATION_NAIAD.angle(t),
11534 )
11535 }
11536 fn rotational_element_rates(&self, t: f64) -> Elements {
11537 (
11538 RIGHT_ASCENSION_NAIAD.angle_dot(t),
11539 DECLINATION_NAIAD.angle_dot(t),
11540 ROTATION_NAIAD.angle_dot(t),
11541 )
11542 }
11543}
11544#[doc = "Thalassa (NAIF ID: 804)."]
11545#[derive(Debug, Copy, Clone, Eq, PartialEq)]
11546#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11547pub struct Thalassa;
11548impl Origin for Thalassa {
11549 fn id(&self) -> NaifId {
11550 NaifId(804i32)
11551 }
11552 fn name(&self) -> &'static str {
11553 "Thalassa"
11554 }
11555}
11556impl Display for Thalassa {
11557 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
11558 write!(f, "{}", self.name())
11559 }
11560}
11561impl From<Thalassa> for DynOrigin {
11562 fn from(_: Thalassa) -> Self {
11563 DynOrigin::Thalassa
11564 }
11565}
11566impl PointMass for Thalassa {
11567 fn gravitational_parameter(&self) -> GravitationalParameter {
11568 GravitationalParameter::km3_per_s2(0.0235887319799217f64)
11569 }
11570}
11571impl MeanRadius for Thalassa {
11572 fn mean_radius(&self) -> Distance {
11573 Distance::kilometers(40f64)
11574 }
11575}
11576impl TriaxialEllipsoid for Thalassa {
11577 fn radii(&self) -> Radii {
11578 (
11579 Distance::kilometers(40f64),
11580 Distance::kilometers(40f64),
11581 Distance::kilometers(40f64),
11582 )
11583 }
11584}
11585impl Spheroid for Thalassa {}
11586const RIGHT_ASCENSION_THALASSA: RotationalElement<17usize> = RotationalElement {
11587 typ: RotationalElementType::RightAscension,
11588 c0: 5.224817648770225f64,
11589 c1: 0f64,
11590 c2: 0f64,
11591 c: [
11592 0.012217304763960306f64,
11593 0f64,
11594 -0.004886921905584123f64,
11595 0f64,
11596 0f64,
11597 0f64,
11598 0f64,
11599 0f64,
11600 0f64,
11601 0f64,
11602 0f64,
11603 0f64,
11604 0f64,
11605 0f64,
11606 0f64,
11607 0f64,
11608 0f64,
11609 ],
11610 theta0: [
11611 6.245660728261709f64,
11612 5.653470513060032f64,
11613 3.848625533572696f64,
11614 6.183177941040311f64,
11615 1.3144074596769295f64,
11616 0.6171484235051949f64,
11617 2.4890140462691135f64,
11618 3.104068074671915f64,
11619 11.306941026120064f64,
11620 6.20813614934383f64,
11621 9.312204224015744f64,
11622 12.41627229868766f64,
11623 15.520340373359575f64,
11624 18.624408448031488f64,
11625 21.728476522703406f64,
11626 24.83254459737532f64,
11627 27.936612672047236f64,
11628 ],
11629 theta1: [
11630 0.9130864514733535f64,
11631 1092.6913034790819f64,
11632 961.0515899766616f64,
11633 812.7038395448996f64,
11634 455.6949957202075f64,
11635 250.02539666519567f64,
11636 49.29857005183183f64,
11637 0.9130864514733535f64,
11638 2185.3826069581637f64,
11639 1.826172902946707f64,
11640 2.7392593544200605f64,
11641 3.652345805893414f64,
11642 4.565432257366767f64,
11643 5.478518708840121f64,
11644 6.391605160313474f64,
11645 7.304691611786828f64,
11646 8.21777806326018f64,
11647 ],
11648};
11649const DECLINATION_THALASSA: RotationalElement<17usize> = RotationalElement {
11650 typ: RotationalElementType::Declination,
11651 c0: 0.7583455599915362f64,
11652 c1: 0f64,
11653 c2: 0f64,
11654 c: [
11655 -0.00890117918517108f64,
11656 0f64,
11657 -0.003665191429188092f64,
11658 0f64,
11659 0f64,
11660 0f64,
11661 0f64,
11662 0f64,
11663 0f64,
11664 0f64,
11665 0f64,
11666 0f64,
11667 0f64,
11668 0f64,
11669 0f64,
11670 0f64,
11671 0f64,
11672 ],
11673 theta0: [
11674 6.245660728261709f64,
11675 5.653470513060032f64,
11676 3.848625533572696f64,
11677 6.183177941040311f64,
11678 1.3144074596769295f64,
11679 0.6171484235051949f64,
11680 2.4890140462691135f64,
11681 3.104068074671915f64,
11682 11.306941026120064f64,
11683 6.20813614934383f64,
11684 9.312204224015744f64,
11685 12.41627229868766f64,
11686 15.520340373359575f64,
11687 18.624408448031488f64,
11688 21.728476522703406f64,
11689 24.83254459737532f64,
11690 27.936612672047236f64,
11691 ],
11692 theta1: [
11693 0.9130864514733535f64,
11694 1092.6913034790819f64,
11695 961.0515899766616f64,
11696 812.7038395448996f64,
11697 455.6949957202075f64,
11698 250.02539666519567f64,
11699 49.29857005183183f64,
11700 0.9130864514733535f64,
11701 2185.3826069581637f64,
11702 1.826172902946707f64,
11703 2.7392593544200605f64,
11704 3.652345805893414f64,
11705 4.565432257366767f64,
11706 5.478518708840121f64,
11707 6.391605160313474f64,
11708 7.304691611786828f64,
11709 8.21777806326018f64,
11710 ],
11711};
11712const ROTATION_THALASSA: RotationalElement<17usize> = RotationalElement {
11713 typ: RotationalElementType::Rotation,
11714 c0: 1.7812830345854127f64,
11715 c1: 20.171739891174827f64,
11716 c2: 0f64,
11717 c: [
11718 -0.008377580409572781f64,
11719 0f64,
11720 0.0033161255787892262f64,
11721 0f64,
11722 0f64,
11723 0f64,
11724 0f64,
11725 0f64,
11726 0f64,
11727 0f64,
11728 0f64,
11729 0f64,
11730 0f64,
11731 0f64,
11732 0f64,
11733 0f64,
11734 0f64,
11735 ],
11736 theta0: [
11737 6.245660728261709f64,
11738 5.653470513060032f64,
11739 3.848625533572696f64,
11740 6.183177941040311f64,
11741 1.3144074596769295f64,
11742 0.6171484235051949f64,
11743 2.4890140462691135f64,
11744 3.104068074671915f64,
11745 11.306941026120064f64,
11746 6.20813614934383f64,
11747 9.312204224015744f64,
11748 12.41627229868766f64,
11749 15.520340373359575f64,
11750 18.624408448031488f64,
11751 21.728476522703406f64,
11752 24.83254459737532f64,
11753 27.936612672047236f64,
11754 ],
11755 theta1: [
11756 0.9130864514733535f64,
11757 1092.6913034790819f64,
11758 961.0515899766616f64,
11759 812.7038395448996f64,
11760 455.6949957202075f64,
11761 250.02539666519567f64,
11762 49.29857005183183f64,
11763 0.9130864514733535f64,
11764 2185.3826069581637f64,
11765 1.826172902946707f64,
11766 2.7392593544200605f64,
11767 3.652345805893414f64,
11768 4.565432257366767f64,
11769 5.478518708840121f64,
11770 6.391605160313474f64,
11771 7.304691611786828f64,
11772 8.21777806326018f64,
11773 ],
11774};
11775impl RotationalElements for Thalassa {
11776 fn rotational_elements(&self, t: f64) -> Elements {
11777 (
11778 RIGHT_ASCENSION_THALASSA.angle(t),
11779 DECLINATION_THALASSA.angle(t),
11780 ROTATION_THALASSA.angle(t),
11781 )
11782 }
11783 fn rotational_element_rates(&self, t: f64) -> Elements {
11784 (
11785 RIGHT_ASCENSION_THALASSA.angle_dot(t),
11786 DECLINATION_THALASSA.angle_dot(t),
11787 ROTATION_THALASSA.angle_dot(t),
11788 )
11789 }
11790}
11791#[doc = "Despina (NAIF ID: 805)."]
11792#[derive(Debug, Copy, Clone, Eq, PartialEq)]
11793#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11794pub struct Despina;
11795impl Origin for Despina {
11796 fn id(&self) -> NaifId {
11797 NaifId(805i32)
11798 }
11799 fn name(&self) -> &'static str {
11800 "Despina"
11801 }
11802}
11803impl Display for Despina {
11804 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
11805 write!(f, "{}", self.name())
11806 }
11807}
11808impl From<Despina> for DynOrigin {
11809 fn from(_: Despina) -> Self {
11810 DynOrigin::Despina
11811 }
11812}
11813impl PointMass for Despina {
11814 fn gravitational_parameter(&self) -> GravitationalParameter {
11815 GravitationalParameter::km3_per_s2(0.1167318403814998f64)
11816 }
11817}
11818impl MeanRadius for Despina {
11819 fn mean_radius(&self) -> Distance {
11820 Distance::kilometers(74f64)
11821 }
11822}
11823impl TriaxialEllipsoid for Despina {
11824 fn radii(&self) -> Radii {
11825 (
11826 Distance::kilometers(74f64),
11827 Distance::kilometers(74f64),
11828 Distance::kilometers(74f64),
11829 )
11830 }
11831}
11832impl Spheroid for Despina {}
11833const RIGHT_ASCENSION_DESPINA: RotationalElement<17usize> = RotationalElement {
11834 typ: RotationalElementType::RightAscension,
11835 c0: 5.224817648770225f64,
11836 c1: 0f64,
11837 c2: 0f64,
11838 c: [
11839 0.012217304763960306f64,
11840 0f64,
11841 0f64,
11842 -0.0015707963267948964f64,
11843 0f64,
11844 0f64,
11845 0f64,
11846 0f64,
11847 0f64,
11848 0f64,
11849 0f64,
11850 0f64,
11851 0f64,
11852 0f64,
11853 0f64,
11854 0f64,
11855 0f64,
11856 ],
11857 theta0: [
11858 6.245660728261709f64,
11859 5.653470513060032f64,
11860 3.848625533572696f64,
11861 6.183177941040311f64,
11862 1.3144074596769295f64,
11863 0.6171484235051949f64,
11864 2.4890140462691135f64,
11865 3.104068074671915f64,
11866 11.306941026120064f64,
11867 6.20813614934383f64,
11868 9.312204224015744f64,
11869 12.41627229868766f64,
11870 15.520340373359575f64,
11871 18.624408448031488f64,
11872 21.728476522703406f64,
11873 24.83254459737532f64,
11874 27.936612672047236f64,
11875 ],
11876 theta1: [
11877 0.9130864514733535f64,
11878 1092.6913034790819f64,
11879 961.0515899766616f64,
11880 812.7038395448996f64,
11881 455.6949957202075f64,
11882 250.02539666519567f64,
11883 49.29857005183183f64,
11884 0.9130864514733535f64,
11885 2185.3826069581637f64,
11886 1.826172902946707f64,
11887 2.7392593544200605f64,
11888 3.652345805893414f64,
11889 4.565432257366767f64,
11890 5.478518708840121f64,
11891 6.391605160313474f64,
11892 7.304691611786828f64,
11893 8.21777806326018f64,
11894 ],
11895};
11896const DECLINATION_DESPINA: RotationalElement<17usize> = RotationalElement {
11897 typ: RotationalElementType::Declination,
11898 c0: 0.7583455599915362f64,
11899 c1: 0f64,
11900 c2: 0f64,
11901 c: [
11902 -0.00890117918517108f64,
11903 0f64,
11904 0f64,
11905 -0.0012217304763960308f64,
11906 0f64,
11907 0f64,
11908 0f64,
11909 0f64,
11910 0f64,
11911 0f64,
11912 0f64,
11913 0f64,
11914 0f64,
11915 0f64,
11916 0f64,
11917 0f64,
11918 0f64,
11919 ],
11920 theta0: [
11921 6.245660728261709f64,
11922 5.653470513060032f64,
11923 3.848625533572696f64,
11924 6.183177941040311f64,
11925 1.3144074596769295f64,
11926 0.6171484235051949f64,
11927 2.4890140462691135f64,
11928 3.104068074671915f64,
11929 11.306941026120064f64,
11930 6.20813614934383f64,
11931 9.312204224015744f64,
11932 12.41627229868766f64,
11933 15.520340373359575f64,
11934 18.624408448031488f64,
11935 21.728476522703406f64,
11936 24.83254459737532f64,
11937 27.936612672047236f64,
11938 ],
11939 theta1: [
11940 0.9130864514733535f64,
11941 1092.6913034790819f64,
11942 961.0515899766616f64,
11943 812.7038395448996f64,
11944 455.6949957202075f64,
11945 250.02539666519567f64,
11946 49.29857005183183f64,
11947 0.9130864514733535f64,
11948 2185.3826069581637f64,
11949 1.826172902946707f64,
11950 2.7392593544200605f64,
11951 3.652345805893414f64,
11952 4.565432257366767f64,
11953 5.478518708840121f64,
11954 6.391605160313474f64,
11955 7.304691611786828f64,
11956 8.21777806326018f64,
11957 ],
11958};
11959const ROTATION_DESPINA: RotationalElement<17usize> = RotationalElement {
11960 typ: RotationalElementType::Rotation,
11961 c0: 5.34960869028782f64,
11962 c1: 18.77510290185297f64,
11963 c2: 0f64,
11964 c: [
11965 -0.008552113334772215f64,
11966 0f64,
11967 0f64,
11968 0.0010471975511965976f64,
11969 0f64,
11970 0f64,
11971 0f64,
11972 0f64,
11973 0f64,
11974 0f64,
11975 0f64,
11976 0f64,
11977 0f64,
11978 0f64,
11979 0f64,
11980 0f64,
11981 0f64,
11982 ],
11983 theta0: [
11984 6.245660728261709f64,
11985 5.653470513060032f64,
11986 3.848625533572696f64,
11987 6.183177941040311f64,
11988 1.3144074596769295f64,
11989 0.6171484235051949f64,
11990 2.4890140462691135f64,
11991 3.104068074671915f64,
11992 11.306941026120064f64,
11993 6.20813614934383f64,
11994 9.312204224015744f64,
11995 12.41627229868766f64,
11996 15.520340373359575f64,
11997 18.624408448031488f64,
11998 21.728476522703406f64,
11999 24.83254459737532f64,
12000 27.936612672047236f64,
12001 ],
12002 theta1: [
12003 0.9130864514733535f64,
12004 1092.6913034790819f64,
12005 961.0515899766616f64,
12006 812.7038395448996f64,
12007 455.6949957202075f64,
12008 250.02539666519567f64,
12009 49.29857005183183f64,
12010 0.9130864514733535f64,
12011 2185.3826069581637f64,
12012 1.826172902946707f64,
12013 2.7392593544200605f64,
12014 3.652345805893414f64,
12015 4.565432257366767f64,
12016 5.478518708840121f64,
12017 6.391605160313474f64,
12018 7.304691611786828f64,
12019 8.21777806326018f64,
12020 ],
12021};
12022impl RotationalElements for Despina {
12023 fn rotational_elements(&self, t: f64) -> Elements {
12024 (
12025 RIGHT_ASCENSION_DESPINA.angle(t),
12026 DECLINATION_DESPINA.angle(t),
12027 ROTATION_DESPINA.angle(t),
12028 )
12029 }
12030 fn rotational_element_rates(&self, t: f64) -> Elements {
12031 (
12032 RIGHT_ASCENSION_DESPINA.angle_dot(t),
12033 DECLINATION_DESPINA.angle_dot(t),
12034 ROTATION_DESPINA.angle_dot(t),
12035 )
12036 }
12037}
12038#[doc = "Galatea (NAIF ID: 806)."]
12039#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12040#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12041pub struct Galatea;
12042impl Origin for Galatea {
12043 fn id(&self) -> NaifId {
12044 NaifId(806i32)
12045 }
12046 fn name(&self) -> &'static str {
12047 "Galatea"
12048 }
12049}
12050impl Display for Galatea {
12051 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12052 write!(f, "{}", self.name())
12053 }
12054}
12055impl From<Galatea> for DynOrigin {
12056 fn from(_: Galatea) -> Self {
12057 DynOrigin::Galatea
12058 }
12059}
12060impl PointMass for Galatea {
12061 fn gravitational_parameter(&self) -> GravitationalParameter {
12062 GravitationalParameter::km3_per_s2(0.189898503906069f64)
12063 }
12064}
12065impl MeanRadius for Galatea {
12066 fn mean_radius(&self) -> Distance {
12067 Distance::kilometers(79f64)
12068 }
12069}
12070impl TriaxialEllipsoid for Galatea {
12071 fn radii(&self) -> Radii {
12072 (
12073 Distance::kilometers(79f64),
12074 Distance::kilometers(79f64),
12075 Distance::kilometers(79f64),
12076 )
12077 }
12078}
12079impl Spheroid for Galatea {}
12080const RIGHT_ASCENSION_GALATEA: RotationalElement<17usize> = RotationalElement {
12081 typ: RotationalElementType::RightAscension,
12082 c0: 5.224817648770225f64,
12083 c1: 0f64,
12084 c2: 0f64,
12085 c: [
12086 0.012217304763960306f64,
12087 0f64,
12088 0f64,
12089 0f64,
12090 -0.0012217304763960308f64,
12091 0f64,
12092 0f64,
12093 0f64,
12094 0f64,
12095 0f64,
12096 0f64,
12097 0f64,
12098 0f64,
12099 0f64,
12100 0f64,
12101 0f64,
12102 0f64,
12103 ],
12104 theta0: [
12105 6.245660728261709f64,
12106 5.653470513060032f64,
12107 3.848625533572696f64,
12108 6.183177941040311f64,
12109 1.3144074596769295f64,
12110 0.6171484235051949f64,
12111 2.4890140462691135f64,
12112 3.104068074671915f64,
12113 11.306941026120064f64,
12114 6.20813614934383f64,
12115 9.312204224015744f64,
12116 12.41627229868766f64,
12117 15.520340373359575f64,
12118 18.624408448031488f64,
12119 21.728476522703406f64,
12120 24.83254459737532f64,
12121 27.936612672047236f64,
12122 ],
12123 theta1: [
12124 0.9130864514733535f64,
12125 1092.6913034790819f64,
12126 961.0515899766616f64,
12127 812.7038395448996f64,
12128 455.6949957202075f64,
12129 250.02539666519567f64,
12130 49.29857005183183f64,
12131 0.9130864514733535f64,
12132 2185.3826069581637f64,
12133 1.826172902946707f64,
12134 2.7392593544200605f64,
12135 3.652345805893414f64,
12136 4.565432257366767f64,
12137 5.478518708840121f64,
12138 6.391605160313474f64,
12139 7.304691611786828f64,
12140 8.21777806326018f64,
12141 ],
12142};
12143const DECLINATION_GALATEA: RotationalElement<17usize> = RotationalElement {
12144 typ: RotationalElementType::Declination,
12145 c0: 0.7579964941411373f64,
12146 c1: 0f64,
12147 c2: 0f64,
12148 c: [
12149 -0.00890117918517108f64,
12150 0f64,
12151 0f64,
12152 0f64,
12153 -0.0008726646259971648f64,
12154 0f64,
12155 0f64,
12156 0f64,
12157 0f64,
12158 0f64,
12159 0f64,
12160 0f64,
12161 0f64,
12162 0f64,
12163 0f64,
12164 0f64,
12165 0f64,
12166 ],
12167 theta0: [
12168 6.245660728261709f64,
12169 5.653470513060032f64,
12170 3.848625533572696f64,
12171 6.183177941040311f64,
12172 1.3144074596769295f64,
12173 0.6171484235051949f64,
12174 2.4890140462691135f64,
12175 3.104068074671915f64,
12176 11.306941026120064f64,
12177 6.20813614934383f64,
12178 9.312204224015744f64,
12179 12.41627229868766f64,
12180 15.520340373359575f64,
12181 18.624408448031488f64,
12182 21.728476522703406f64,
12183 24.83254459737532f64,
12184 27.936612672047236f64,
12185 ],
12186 theta1: [
12187 0.9130864514733535f64,
12188 1092.6913034790819f64,
12189 961.0515899766616f64,
12190 812.7038395448996f64,
12191 455.6949957202075f64,
12192 250.02539666519567f64,
12193 49.29857005183183f64,
12194 0.9130864514733535f64,
12195 2185.3826069581637f64,
12196 1.826172902946707f64,
12197 2.7392593544200605f64,
12198 3.652345805893414f64,
12199 4.565432257366767f64,
12200 5.478518708840121f64,
12201 6.391605160313474f64,
12202 7.304691611786828f64,
12203 8.21777806326018f64,
12204 ],
12205};
12206const ROTATION_GALATEA: RotationalElement<17usize> = RotationalElement {
12207 typ: RotationalElementType::Rotation,
12208 c0: 4.504520266472165f64,
12209 c1: 14.6548275586037f64,
12210 c2: 0f64,
12211 c: [
12212 -0.008377580409572781f64,
12213 0f64,
12214 0f64,
12215 0f64,
12216 0.0008726646259971648f64,
12217 0f64,
12218 0f64,
12219 0f64,
12220 0f64,
12221 0f64,
12222 0f64,
12223 0f64,
12224 0f64,
12225 0f64,
12226 0f64,
12227 0f64,
12228 0f64,
12229 ],
12230 theta0: [
12231 6.245660728261709f64,
12232 5.653470513060032f64,
12233 3.848625533572696f64,
12234 6.183177941040311f64,
12235 1.3144074596769295f64,
12236 0.6171484235051949f64,
12237 2.4890140462691135f64,
12238 3.104068074671915f64,
12239 11.306941026120064f64,
12240 6.20813614934383f64,
12241 9.312204224015744f64,
12242 12.41627229868766f64,
12243 15.520340373359575f64,
12244 18.624408448031488f64,
12245 21.728476522703406f64,
12246 24.83254459737532f64,
12247 27.936612672047236f64,
12248 ],
12249 theta1: [
12250 0.9130864514733535f64,
12251 1092.6913034790819f64,
12252 961.0515899766616f64,
12253 812.7038395448996f64,
12254 455.6949957202075f64,
12255 250.02539666519567f64,
12256 49.29857005183183f64,
12257 0.9130864514733535f64,
12258 2185.3826069581637f64,
12259 1.826172902946707f64,
12260 2.7392593544200605f64,
12261 3.652345805893414f64,
12262 4.565432257366767f64,
12263 5.478518708840121f64,
12264 6.391605160313474f64,
12265 7.304691611786828f64,
12266 8.21777806326018f64,
12267 ],
12268};
12269impl RotationalElements for Galatea {
12270 fn rotational_elements(&self, t: f64) -> Elements {
12271 (
12272 RIGHT_ASCENSION_GALATEA.angle(t),
12273 DECLINATION_GALATEA.angle(t),
12274 ROTATION_GALATEA.angle(t),
12275 )
12276 }
12277 fn rotational_element_rates(&self, t: f64) -> Elements {
12278 (
12279 RIGHT_ASCENSION_GALATEA.angle_dot(t),
12280 DECLINATION_GALATEA.angle_dot(t),
12281 ROTATION_GALATEA.angle_dot(t),
12282 )
12283 }
12284}
12285#[doc = "Larissa (NAIF ID: 807)."]
12286#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12287#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12288pub struct Larissa;
12289impl Origin for Larissa {
12290 fn id(&self) -> NaifId {
12291 NaifId(807i32)
12292 }
12293 fn name(&self) -> &'static str {
12294 "Larissa"
12295 }
12296}
12297impl Display for Larissa {
12298 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12299 write!(f, "{}", self.name())
12300 }
12301}
12302impl From<Larissa> for DynOrigin {
12303 fn from(_: Larissa) -> Self {
12304 DynOrigin::Larissa
12305 }
12306}
12307impl PointMass for Larissa {
12308 fn gravitational_parameter(&self) -> GravitationalParameter {
12309 GravitationalParameter::km3_per_s2(0.2548437405693583f64)
12310 }
12311}
12312impl MeanRadius for Larissa {
12313 fn mean_radius(&self) -> Distance {
12314 Distance::kilometers(96f64)
12315 }
12316}
12317impl TriaxialEllipsoid for Larissa {
12318 fn radii(&self) -> Radii {
12319 (
12320 Distance::kilometers(96f64),
12321 Distance::kilometers(96f64),
12322 Distance::kilometers(96f64),
12323 )
12324 }
12325}
12326impl Spheroid for Larissa {}
12327const RIGHT_ASCENSION_LARISSA: RotationalElement<17usize> = RotationalElement {
12328 typ: RotationalElementType::RightAscension,
12329 c0: 5.224817648770225f64,
12330 c1: 0f64,
12331 c2: 0f64,
12332 c: [
12333 0.012217304763960306f64,
12334 0f64,
12335 0f64,
12336 0f64,
12337 0f64,
12338 -0.00471238898038469f64,
12339 0f64,
12340 0f64,
12341 0f64,
12342 0f64,
12343 0f64,
12344 0f64,
12345 0f64,
12346 0f64,
12347 0f64,
12348 0f64,
12349 0f64,
12350 ],
12351 theta0: [
12352 6.245660728261709f64,
12353 5.653470513060032f64,
12354 3.848625533572696f64,
12355 6.183177941040311f64,
12356 1.3144074596769295f64,
12357 0.6171484235051949f64,
12358 2.4890140462691135f64,
12359 3.104068074671915f64,
12360 11.306941026120064f64,
12361 6.20813614934383f64,
12362 9.312204224015744f64,
12363 12.41627229868766f64,
12364 15.520340373359575f64,
12365 18.624408448031488f64,
12366 21.728476522703406f64,
12367 24.83254459737532f64,
12368 27.936612672047236f64,
12369 ],
12370 theta1: [
12371 0.9130864514733535f64,
12372 1092.6913034790819f64,
12373 961.0515899766616f64,
12374 812.7038395448996f64,
12375 455.6949957202075f64,
12376 250.02539666519567f64,
12377 49.29857005183183f64,
12378 0.9130864514733535f64,
12379 2185.3826069581637f64,
12380 1.826172902946707f64,
12381 2.7392593544200605f64,
12382 3.652345805893414f64,
12383 4.565432257366767f64,
12384 5.478518708840121f64,
12385 6.391605160313474f64,
12386 7.304691611786828f64,
12387 8.21777806326018f64,
12388 ],
12389};
12390const DECLINATION_LARISSA: RotationalElement<17usize> = RotationalElement {
12391 typ: RotationalElementType::Declination,
12392 c0: 0.7576474282907384f64,
12393 c1: 0f64,
12394 c2: 0f64,
12395 c: [
12396 -0.00890117918517108f64,
12397 0f64,
12398 0f64,
12399 0f64,
12400 0f64,
12401 -0.003490658503988659f64,
12402 0f64,
12403 0f64,
12404 0f64,
12405 0f64,
12406 0f64,
12407 0f64,
12408 0f64,
12409 0f64,
12410 0f64,
12411 0f64,
12412 0f64,
12413 ],
12414 theta0: [
12415 6.245660728261709f64,
12416 5.653470513060032f64,
12417 3.848625533572696f64,
12418 6.183177941040311f64,
12419 1.3144074596769295f64,
12420 0.6171484235051949f64,
12421 2.4890140462691135f64,
12422 3.104068074671915f64,
12423 11.306941026120064f64,
12424 6.20813614934383f64,
12425 9.312204224015744f64,
12426 12.41627229868766f64,
12427 15.520340373359575f64,
12428 18.624408448031488f64,
12429 21.728476522703406f64,
12430 24.83254459737532f64,
12431 27.936612672047236f64,
12432 ],
12433 theta1: [
12434 0.9130864514733535f64,
12435 1092.6913034790819f64,
12436 961.0515899766616f64,
12437 812.7038395448996f64,
12438 455.6949957202075f64,
12439 250.02539666519567f64,
12440 49.29857005183183f64,
12441 0.9130864514733535f64,
12442 2185.3826069581637f64,
12443 1.826172902946707f64,
12444 2.7392593544200605f64,
12445 3.652345805893414f64,
12446 4.565432257366767f64,
12447 5.478518708840121f64,
12448 6.391605160313474f64,
12449 7.304691611786828f64,
12450 8.21777806326018f64,
12451 ],
12452};
12453const ROTATION_LARISSA: RotationalElement<17usize> = RotationalElement {
12454 typ: RotationalElementType::Rotation,
12455 c0: 3.1312952110030268f64,
12456 c1: 11.328119671568512f64,
12457 c2: 0f64,
12458 c: [
12459 -0.008377580409572781f64,
12460 0f64,
12461 0f64,
12462 0f64,
12463 0f64,
12464 0.0033161255787892262f64,
12465 0f64,
12466 0f64,
12467 0f64,
12468 0f64,
12469 0f64,
12470 0f64,
12471 0f64,
12472 0f64,
12473 0f64,
12474 0f64,
12475 0f64,
12476 ],
12477 theta0: [
12478 6.245660728261709f64,
12479 5.653470513060032f64,
12480 3.848625533572696f64,
12481 6.183177941040311f64,
12482 1.3144074596769295f64,
12483 0.6171484235051949f64,
12484 2.4890140462691135f64,
12485 3.104068074671915f64,
12486 11.306941026120064f64,
12487 6.20813614934383f64,
12488 9.312204224015744f64,
12489 12.41627229868766f64,
12490 15.520340373359575f64,
12491 18.624408448031488f64,
12492 21.728476522703406f64,
12493 24.83254459737532f64,
12494 27.936612672047236f64,
12495 ],
12496 theta1: [
12497 0.9130864514733535f64,
12498 1092.6913034790819f64,
12499 961.0515899766616f64,
12500 812.7038395448996f64,
12501 455.6949957202075f64,
12502 250.02539666519567f64,
12503 49.29857005183183f64,
12504 0.9130864514733535f64,
12505 2185.3826069581637f64,
12506 1.826172902946707f64,
12507 2.7392593544200605f64,
12508 3.652345805893414f64,
12509 4.565432257366767f64,
12510 5.478518708840121f64,
12511 6.391605160313474f64,
12512 7.304691611786828f64,
12513 8.21777806326018f64,
12514 ],
12515};
12516impl RotationalElements for Larissa {
12517 fn rotational_elements(&self, t: f64) -> Elements {
12518 (
12519 RIGHT_ASCENSION_LARISSA.angle(t),
12520 DECLINATION_LARISSA.angle(t),
12521 ROTATION_LARISSA.angle(t),
12522 )
12523 }
12524 fn rotational_element_rates(&self, t: f64) -> Elements {
12525 (
12526 RIGHT_ASCENSION_LARISSA.angle_dot(t),
12527 DECLINATION_LARISSA.angle_dot(t),
12528 ROTATION_LARISSA.angle_dot(t),
12529 )
12530 }
12531}
12532#[doc = "Proteus (NAIF ID: 808)."]
12533#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12534#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12535pub struct Proteus;
12536impl Origin for Proteus {
12537 fn id(&self) -> NaifId {
12538 NaifId(808i32)
12539 }
12540 fn name(&self) -> &'static str {
12541 "Proteus"
12542 }
12543}
12544impl Display for Proteus {
12545 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12546 write!(f, "{}", self.name())
12547 }
12548}
12549impl From<Proteus> for DynOrigin {
12550 fn from(_: Proteus) -> Self {
12551 DynOrigin::Proteus
12552 }
12553}
12554impl PointMass for Proteus {
12555 fn gravitational_parameter(&self) -> GravitationalParameter {
12556 GravitationalParameter::km3_per_s2(2.583422379120727f64)
12557 }
12558}
12559impl MeanRadius for Proteus {
12560 fn mean_radius(&self) -> Distance {
12561 Distance::kilometers(208f64)
12562 }
12563}
12564impl TriaxialEllipsoid for Proteus {
12565 fn radii(&self) -> Radii {
12566 (
12567 Distance::kilometers(218f64),
12568 Distance::kilometers(208f64),
12569 Distance::kilometers(201f64),
12570 )
12571 }
12572}
12573const RIGHT_ASCENSION_PROTEUS: RotationalElement<17usize> = RotationalElement {
12574 typ: RotationalElementType::RightAscension,
12575 c0: 5.22324685244343f64,
12576 c1: 0f64,
12577 c2: 0f64,
12578 c: [
12579 0.012217304763960306f64,
12580 0f64,
12581 0f64,
12582 0f64,
12583 0f64,
12584 0f64,
12585 -0.0008726646259971648f64,
12586 0f64,
12587 0f64,
12588 0f64,
12589 0f64,
12590 0f64,
12591 0f64,
12592 0f64,
12593 0f64,
12594 0f64,
12595 0f64,
12596 ],
12597 theta0: [
12598 6.245660728261709f64,
12599 5.653470513060032f64,
12600 3.848625533572696f64,
12601 6.183177941040311f64,
12602 1.3144074596769295f64,
12603 0.6171484235051949f64,
12604 2.4890140462691135f64,
12605 3.104068074671915f64,
12606 11.306941026120064f64,
12607 6.20813614934383f64,
12608 9.312204224015744f64,
12609 12.41627229868766f64,
12610 15.520340373359575f64,
12611 18.624408448031488f64,
12612 21.728476522703406f64,
12613 24.83254459737532f64,
12614 27.936612672047236f64,
12615 ],
12616 theta1: [
12617 0.9130864514733535f64,
12618 1092.6913034790819f64,
12619 961.0515899766616f64,
12620 812.7038395448996f64,
12621 455.6949957202075f64,
12622 250.02539666519567f64,
12623 49.29857005183183f64,
12624 0.9130864514733535f64,
12625 2185.3826069581637f64,
12626 1.826172902946707f64,
12627 2.7392593544200605f64,
12628 3.652345805893414f64,
12629 4.565432257366767f64,
12630 5.478518708840121f64,
12631 6.391605160313474f64,
12632 7.304691611786828f64,
12633 8.21777806326018f64,
12634 ],
12635};
12636const DECLINATION_PROTEUS: RotationalElement<17usize> = RotationalElement {
12637 typ: RotationalElementType::Declination,
12638 c0: 0.7489207820307667f64,
12639 c1: 0f64,
12640 c2: 0f64,
12641 c: [
12642 -0.00890117918517108f64,
12643 0f64,
12644 0f64,
12645 0f64,
12646 0f64,
12647 0f64,
12648 -0.0006981317007977319f64,
12649 0f64,
12650 0f64,
12651 0f64,
12652 0f64,
12653 0f64,
12654 0f64,
12655 0f64,
12656 0f64,
12657 0f64,
12658 0f64,
12659 ],
12660 theta0: [
12661 6.245660728261709f64,
12662 5.653470513060032f64,
12663 3.848625533572696f64,
12664 6.183177941040311f64,
12665 1.3144074596769295f64,
12666 0.6171484235051949f64,
12667 2.4890140462691135f64,
12668 3.104068074671915f64,
12669 11.306941026120064f64,
12670 6.20813614934383f64,
12671 9.312204224015744f64,
12672 12.41627229868766f64,
12673 15.520340373359575f64,
12674 18.624408448031488f64,
12675 21.728476522703406f64,
12676 24.83254459737532f64,
12677 27.936612672047236f64,
12678 ],
12679 theta1: [
12680 0.9130864514733535f64,
12681 1092.6913034790819f64,
12682 961.0515899766616f64,
12683 812.7038395448996f64,
12684 455.6949957202075f64,
12685 250.02539666519567f64,
12686 49.29857005183183f64,
12687 0.9130864514733535f64,
12688 2185.3826069581637f64,
12689 1.826172902946707f64,
12690 2.7392593544200605f64,
12691 3.652345805893414f64,
12692 4.565432257366767f64,
12693 5.478518708840121f64,
12694 6.391605160313474f64,
12695 7.304691611786828f64,
12696 8.21777806326018f64,
12697 ],
12698};
12699const ROTATION_PROTEUS: RotationalElement<17usize> = RotationalElement {
12700 typ: RotationalElementType::Rotation,
12701 c0: 1.6297884555123048f64,
12702 c1: 5.598412754411688f64,
12703 c2: 0f64,
12704 c: [
12705 -0.008377580409572781f64,
12706 0f64,
12707 0f64,
12708 0f64,
12709 0f64,
12710 0f64,
12711 0.0006981317007977319f64,
12712 0f64,
12713 0f64,
12714 0f64,
12715 0f64,
12716 0f64,
12717 0f64,
12718 0f64,
12719 0f64,
12720 0f64,
12721 0f64,
12722 ],
12723 theta0: [
12724 6.245660728261709f64,
12725 5.653470513060032f64,
12726 3.848625533572696f64,
12727 6.183177941040311f64,
12728 1.3144074596769295f64,
12729 0.6171484235051949f64,
12730 2.4890140462691135f64,
12731 3.104068074671915f64,
12732 11.306941026120064f64,
12733 6.20813614934383f64,
12734 9.312204224015744f64,
12735 12.41627229868766f64,
12736 15.520340373359575f64,
12737 18.624408448031488f64,
12738 21.728476522703406f64,
12739 24.83254459737532f64,
12740 27.936612672047236f64,
12741 ],
12742 theta1: [
12743 0.9130864514733535f64,
12744 1092.6913034790819f64,
12745 961.0515899766616f64,
12746 812.7038395448996f64,
12747 455.6949957202075f64,
12748 250.02539666519567f64,
12749 49.29857005183183f64,
12750 0.9130864514733535f64,
12751 2185.3826069581637f64,
12752 1.826172902946707f64,
12753 2.7392593544200605f64,
12754 3.652345805893414f64,
12755 4.565432257366767f64,
12756 5.478518708840121f64,
12757 6.391605160313474f64,
12758 7.304691611786828f64,
12759 8.21777806326018f64,
12760 ],
12761};
12762impl RotationalElements for Proteus {
12763 fn rotational_elements(&self, t: f64) -> Elements {
12764 (
12765 RIGHT_ASCENSION_PROTEUS.angle(t),
12766 DECLINATION_PROTEUS.angle(t),
12767 ROTATION_PROTEUS.angle(t),
12768 )
12769 }
12770 fn rotational_element_rates(&self, t: f64) -> Elements {
12771 (
12772 RIGHT_ASCENSION_PROTEUS.angle_dot(t),
12773 DECLINATION_PROTEUS.angle_dot(t),
12774 ROTATION_PROTEUS.angle_dot(t),
12775 )
12776 }
12777}
12778#[doc = "Halimede (NAIF ID: 809)."]
12779#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12780#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12781pub struct Halimede;
12782impl Origin for Halimede {
12783 fn id(&self) -> NaifId {
12784 NaifId(809i32)
12785 }
12786 fn name(&self) -> &'static str {
12787 "Halimede"
12788 }
12789}
12790impl Display for Halimede {
12791 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12792 write!(f, "{}", self.name())
12793 }
12794}
12795impl From<Halimede> for DynOrigin {
12796 fn from(_: Halimede) -> Self {
12797 DynOrigin::Halimede
12798 }
12799}
12800#[doc = "Psamathe (NAIF ID: 810)."]
12801#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12802#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12803pub struct Psamathe;
12804impl Origin for Psamathe {
12805 fn id(&self) -> NaifId {
12806 NaifId(810i32)
12807 }
12808 fn name(&self) -> &'static str {
12809 "Psamathe"
12810 }
12811}
12812impl Display for Psamathe {
12813 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12814 write!(f, "{}", self.name())
12815 }
12816}
12817impl From<Psamathe> for DynOrigin {
12818 fn from(_: Psamathe) -> Self {
12819 DynOrigin::Psamathe
12820 }
12821}
12822#[doc = "Sao (NAIF ID: 811)."]
12823#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12824#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12825pub struct Sao;
12826impl Origin for Sao {
12827 fn id(&self) -> NaifId {
12828 NaifId(811i32)
12829 }
12830 fn name(&self) -> &'static str {
12831 "Sao"
12832 }
12833}
12834impl Display for Sao {
12835 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12836 write!(f, "{}", self.name())
12837 }
12838}
12839impl From<Sao> for DynOrigin {
12840 fn from(_: Sao) -> Self {
12841 DynOrigin::Sao
12842 }
12843}
12844#[doc = "Laomedeia (NAIF ID: 812)."]
12845#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12846#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12847pub struct Laomedeia;
12848impl Origin for Laomedeia {
12849 fn id(&self) -> NaifId {
12850 NaifId(812i32)
12851 }
12852 fn name(&self) -> &'static str {
12853 "Laomedeia"
12854 }
12855}
12856impl Display for Laomedeia {
12857 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12858 write!(f, "{}", self.name())
12859 }
12860}
12861impl From<Laomedeia> for DynOrigin {
12862 fn from(_: Laomedeia) -> Self {
12863 DynOrigin::Laomedeia
12864 }
12865}
12866#[doc = "Neso (NAIF ID: 813)."]
12867#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12868#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12869pub struct Neso;
12870impl Origin for Neso {
12871 fn id(&self) -> NaifId {
12872 NaifId(813i32)
12873 }
12874 fn name(&self) -> &'static str {
12875 "Neso"
12876 }
12877}
12878impl Display for Neso {
12879 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12880 write!(f, "{}", self.name())
12881 }
12882}
12883impl From<Neso> for DynOrigin {
12884 fn from(_: Neso) -> Self {
12885 DynOrigin::Neso
12886 }
12887}
12888#[doc = "Charon (NAIF ID: 901)."]
12889#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12890#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12891pub struct Charon;
12892impl Origin for Charon {
12893 fn id(&self) -> NaifId {
12894 NaifId(901i32)
12895 }
12896 fn name(&self) -> &'static str {
12897 "Charon"
12898 }
12899}
12900impl Display for Charon {
12901 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12902 write!(f, "{}", self.name())
12903 }
12904}
12905impl From<Charon> for DynOrigin {
12906 fn from(_: Charon) -> Self {
12907 DynOrigin::Charon
12908 }
12909}
12910impl PointMass for Charon {
12911 fn gravitational_parameter(&self) -> GravitationalParameter {
12912 GravitationalParameter::km3_per_s2(105.8799888601881f64)
12913 }
12914}
12915impl MeanRadius for Charon {
12916 fn mean_radius(&self) -> Distance {
12917 Distance::kilometers(606f64)
12918 }
12919}
12920impl TriaxialEllipsoid for Charon {
12921 fn radii(&self) -> Radii {
12922 (
12923 Distance::kilometers(606f64),
12924 Distance::kilometers(606f64),
12925 Distance::kilometers(606f64),
12926 )
12927 }
12928}
12929impl Spheroid for Charon {}
12930const RIGHT_ASCENSION_CHARON: RotationalElement<0usize> = RotationalElement {
12931 typ: RotationalElementType::RightAscension,
12932 c0: 2.3211657321048187f64,
12933 c1: 0f64,
12934 c2: 0f64,
12935 c: [],
12936 theta0: [],
12937 theta1: [],
12938};
12939const DECLINATION_CHARON: RotationalElement<0usize> = RotationalElement {
12940 typ: RotationalElementType::Declination,
12941 c0: -0.10756464180041053f64,
12942 c1: 0f64,
12943 c2: 0f64,
12944 c: [],
12945 theta0: [],
12946 theta1: [],
12947};
12948const ROTATION_CHARON: RotationalElement<0usize> = RotationalElement {
12949 typ: RotationalElementType::Rotation,
12950 c0: 2.1414317257344426f64,
12951 c1: 0.9837115923543857f64,
12952 c2: 0f64,
12953 c: [],
12954 theta0: [],
12955 theta1: [],
12956};
12957impl RotationalElements for Charon {
12958 fn rotational_elements(&self, t: f64) -> Elements {
12959 (
12960 RIGHT_ASCENSION_CHARON.angle(t),
12961 DECLINATION_CHARON.angle(t),
12962 ROTATION_CHARON.angle(t),
12963 )
12964 }
12965 fn rotational_element_rates(&self, t: f64) -> Elements {
12966 (
12967 RIGHT_ASCENSION_CHARON.angle_dot(t),
12968 DECLINATION_CHARON.angle_dot(t),
12969 ROTATION_CHARON.angle_dot(t),
12970 )
12971 }
12972}
12973#[doc = "Nix (NAIF ID: 902)."]
12974#[derive(Debug, Copy, Clone, Eq, PartialEq)]
12975#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12976pub struct Nix;
12977impl Origin for Nix {
12978 fn id(&self) -> NaifId {
12979 NaifId(902i32)
12980 }
12981 fn name(&self) -> &'static str {
12982 "Nix"
12983 }
12984}
12985impl Display for Nix {
12986 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12987 write!(f, "{}", self.name())
12988 }
12989}
12990impl From<Nix> for DynOrigin {
12991 fn from(_: Nix) -> Self {
12992 DynOrigin::Nix
12993 }
12994}
12995impl PointMass for Nix {
12996 fn gravitational_parameter(&self) -> GravitationalParameter {
12997 GravitationalParameter::km3_per_s2(0.00304817564816976f64)
12998 }
12999}
13000#[doc = "Hydra (NAIF ID: 903)."]
13001#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13002#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13003pub struct Hydra;
13004impl Origin for Hydra {
13005 fn id(&self) -> NaifId {
13006 NaifId(903i32)
13007 }
13008 fn name(&self) -> &'static str {
13009 "Hydra"
13010 }
13011}
13012impl Display for Hydra {
13013 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13014 write!(f, "{}", self.name())
13015 }
13016}
13017impl From<Hydra> for DynOrigin {
13018 fn from(_: Hydra) -> Self {
13019 DynOrigin::Hydra
13020 }
13021}
13022impl PointMass for Hydra {
13023 fn gravitational_parameter(&self) -> GravitationalParameter {
13024 GravitationalParameter::km3_per_s2(0.003211039206155255f64)
13025 }
13026}
13027#[doc = "Kerberos (NAIF ID: 904)."]
13028#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13029#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13030pub struct Kerberos;
13031impl Origin for Kerberos {
13032 fn id(&self) -> NaifId {
13033 NaifId(904i32)
13034 }
13035 fn name(&self) -> &'static str {
13036 "Kerberos"
13037 }
13038}
13039impl Display for Kerberos {
13040 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13041 write!(f, "{}", self.name())
13042 }
13043}
13044impl From<Kerberos> for DynOrigin {
13045 fn from(_: Kerberos) -> Self {
13046 DynOrigin::Kerberos
13047 }
13048}
13049impl PointMass for Kerberos {
13050 fn gravitational_parameter(&self) -> GravitationalParameter {
13051 GravitationalParameter::km3_per_s2(0.001110040850536676f64)
13052 }
13053}
13054#[doc = "Styx (NAIF ID: 905)."]
13055#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13056#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13057pub struct Styx;
13058impl Origin for Styx {
13059 fn id(&self) -> NaifId {
13060 NaifId(905i32)
13061 }
13062 fn name(&self) -> &'static str {
13063 "Styx"
13064 }
13065}
13066impl Display for Styx {
13067 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13068 write!(f, "{}", self.name())
13069 }
13070}
13071impl From<Styx> for DynOrigin {
13072 fn from(_: Styx) -> Self {
13073 DynOrigin::Styx
13074 }
13075}
13076impl PointMass for Styx {
13077 fn gravitational_parameter(&self) -> GravitationalParameter {
13078 GravitationalParameter::km3_per_s2(0f64)
13079 }
13080}
13081#[doc = "Gaspra (NAIF ID: 9511010)."]
13082#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13083#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13084pub struct Gaspra;
13085impl Origin for Gaspra {
13086 fn id(&self) -> NaifId {
13087 NaifId(9511010i32)
13088 }
13089 fn name(&self) -> &'static str {
13090 "Gaspra"
13091 }
13092}
13093impl Display for Gaspra {
13094 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13095 write!(f, "{}", self.name())
13096 }
13097}
13098impl From<Gaspra> for DynOrigin {
13099 fn from(_: Gaspra) -> Self {
13100 DynOrigin::Gaspra
13101 }
13102}
13103impl MeanRadius for Gaspra {
13104 fn mean_radius(&self) -> Distance {
13105 Distance::kilometers(6.1f64)
13106 }
13107}
13108impl TriaxialEllipsoid for Gaspra {
13109 fn radii(&self) -> Radii {
13110 (
13111 Distance::kilometers(9.1f64),
13112 Distance::kilometers(5.2f64),
13113 Distance::kilometers(4.4f64),
13114 )
13115 }
13116}
13117const RIGHT_ASCENSION_GASPRA: RotationalElement<0usize> = RotationalElement {
13118 typ: RotationalElementType::RightAscension,
13119 c0: 0.16528268016386302f64,
13120 c1: 0f64,
13121 c2: 0f64,
13122 c: [],
13123 theta0: [],
13124 theta1: [],
13125};
13126const DECLINATION_GASPRA: RotationalElement<0usize> = RotationalElement {
13127 typ: RotationalElementType::Declination,
13128 c0: 0.46600291028248597f64,
13129 c1: 0f64,
13130 c2: 0f64,
13131 c: [],
13132 theta0: [],
13133 theta1: [],
13134};
13135const ROTATION_GASPRA: RotationalElement<0usize> = RotationalElement {
13136 typ: RotationalElementType::Rotation,
13137 c0: 1.4603169851436555f64,
13138 c1: 21.41364504378302f64,
13139 c2: 0f64,
13140 c: [],
13141 theta0: [],
13142 theta1: [],
13143};
13144impl RotationalElements for Gaspra {
13145 fn rotational_elements(&self, t: f64) -> Elements {
13146 (
13147 RIGHT_ASCENSION_GASPRA.angle(t),
13148 DECLINATION_GASPRA.angle(t),
13149 ROTATION_GASPRA.angle(t),
13150 )
13151 }
13152 fn rotational_element_rates(&self, t: f64) -> Elements {
13153 (
13154 RIGHT_ASCENSION_GASPRA.angle_dot(t),
13155 DECLINATION_GASPRA.angle_dot(t),
13156 ROTATION_GASPRA.angle_dot(t),
13157 )
13158 }
13159}
13160#[doc = "Ida (NAIF ID: 2431010)."]
13161#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13162#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13163pub struct Ida;
13164impl Origin for Ida {
13165 fn id(&self) -> NaifId {
13166 NaifId(2431010i32)
13167 }
13168 fn name(&self) -> &'static str {
13169 "Ida"
13170 }
13171}
13172impl Display for Ida {
13173 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13174 write!(f, "{}", self.name())
13175 }
13176}
13177impl From<Ida> for DynOrigin {
13178 fn from(_: Ida) -> Self {
13179 DynOrigin::Ida
13180 }
13181}
13182impl MeanRadius for Ida {
13183 fn mean_radius(&self) -> Distance {
13184 Distance::kilometers(15.65f64)
13185 }
13186}
13187impl TriaxialEllipsoid for Ida {
13188 fn radii(&self) -> Radii {
13189 (
13190 Distance::kilometers(26.8f64),
13191 Distance::kilometers(12f64),
13192 Distance::kilometers(7.6f64),
13193 )
13194 }
13195}
13196const RIGHT_ASCENSION_IDA: RotationalElement<0usize> = RotationalElement {
13197 typ: RotationalElementType::RightAscension,
13198 c0: 2.9454176456656302f64,
13199 c1: 0f64,
13200 c2: 0f64,
13201 c: [],
13202 theta0: [],
13203 theta1: [],
13204};
13205const DECLINATION_IDA: RotationalElement<0usize> = RotationalElement {
13206 typ: RotationalElementType::Declination,
13207 c0: -1.5205308443374599f64,
13208 c1: 0f64,
13209 c2: 0f64,
13210 c: [],
13211 theta0: [],
13212 theta1: [],
13213};
13214const ROTATION_IDA: RotationalElement<0usize> = RotationalElement {
13215 typ: RotationalElementType::Rotation,
13216 c0: 4.78307481509046f64,
13217 c1: 32.54389804704987f64,
13218 c2: 0f64,
13219 c: [],
13220 theta0: [],
13221 theta1: [],
13222};
13223impl RotationalElements for Ida {
13224 fn rotational_elements(&self, t: f64) -> Elements {
13225 (
13226 RIGHT_ASCENSION_IDA.angle(t),
13227 DECLINATION_IDA.angle(t),
13228 ROTATION_IDA.angle(t),
13229 )
13230 }
13231 fn rotational_element_rates(&self, t: f64) -> Elements {
13232 (
13233 RIGHT_ASCENSION_IDA.angle_dot(t),
13234 DECLINATION_IDA.angle_dot(t),
13235 ROTATION_IDA.angle_dot(t),
13236 )
13237 }
13238}
13239#[doc = "Dactyl (NAIF ID: 2431011)."]
13240#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13241#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13242pub struct Dactyl;
13243impl Origin for Dactyl {
13244 fn id(&self) -> NaifId {
13245 NaifId(2431011i32)
13246 }
13247 fn name(&self) -> &'static str {
13248 "Dactyl"
13249 }
13250}
13251impl Display for Dactyl {
13252 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13253 write!(f, "{}", self.name())
13254 }
13255}
13256impl From<Dactyl> for DynOrigin {
13257 fn from(_: Dactyl) -> Self {
13258 DynOrigin::Dactyl
13259 }
13260}
13261#[doc = "Ceres (NAIF ID: 2000001)."]
13262#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13263#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13264pub struct Ceres;
13265impl Origin for Ceres {
13266 fn id(&self) -> NaifId {
13267 NaifId(2000001i32)
13268 }
13269 fn name(&self) -> &'static str {
13270 "Ceres"
13271 }
13272}
13273impl Display for Ceres {
13274 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13275 write!(f, "{}", self.name())
13276 }
13277}
13278impl From<Ceres> for DynOrigin {
13279 fn from(_: Ceres) -> Self {
13280 DynOrigin::Ceres
13281 }
13282}
13283impl PointMass for Ceres {
13284 fn gravitational_parameter(&self) -> GravitationalParameter {
13285 GravitationalParameter::km3_per_s2(62.62888864440993f64)
13286 }
13287}
13288impl MeanRadius for Ceres {
13289 fn mean_radius(&self) -> Distance {
13290 Distance::kilometers(470f64)
13291 }
13292}
13293impl TriaxialEllipsoid for Ceres {
13294 fn radii(&self) -> Radii {
13295 (
13296 Distance::kilometers(487.3f64),
13297 Distance::kilometers(487.3f64),
13298 Distance::kilometers(446f64),
13299 )
13300 }
13301}
13302impl Spheroid for Ceres {}
13303const RIGHT_ASCENSION_CERES: RotationalElement<0usize> = RotationalElement {
13304 typ: RotationalElementType::RightAscension,
13305 c0: 5.0862035995768355f64,
13306 c1: 0f64,
13307 c2: 0f64,
13308 c: [],
13309 theta0: [],
13310 theta1: [],
13311};
13312const DECLINATION_CERES: RotationalElement<0usize> = RotationalElement {
13313 typ: RotationalElementType::Declination,
13314 c0: 1.165251621801494f64,
13315 c1: 0f64,
13316 c2: 0f64,
13317 c: [],
13318 theta0: [],
13319 theta1: [],
13320};
13321const ROTATION_CERES: RotationalElement<0usize> = RotationalElement {
13322 typ: RotationalElementType::Rotation,
13323 c0: 2.9784043685283237f64,
13324 c1: 16.618208323400072f64,
13325 c2: 0f64,
13326 c: [],
13327 theta0: [],
13328 theta1: [],
13329};
13330impl RotationalElements for Ceres {
13331 fn rotational_elements(&self, t: f64) -> Elements {
13332 (
13333 RIGHT_ASCENSION_CERES.angle(t),
13334 DECLINATION_CERES.angle(t),
13335 ROTATION_CERES.angle(t),
13336 )
13337 }
13338 fn rotational_element_rates(&self, t: f64) -> Elements {
13339 (
13340 RIGHT_ASCENSION_CERES.angle_dot(t),
13341 DECLINATION_CERES.angle_dot(t),
13342 ROTATION_CERES.angle_dot(t),
13343 )
13344 }
13345}
13346#[doc = "Pallas (NAIF ID: 2000002)."]
13347#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13348#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13349pub struct Pallas;
13350impl Origin for Pallas {
13351 fn id(&self) -> NaifId {
13352 NaifId(2000002i32)
13353 }
13354 fn name(&self) -> &'static str {
13355 "Pallas"
13356 }
13357}
13358impl Display for Pallas {
13359 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13360 write!(f, "{}", self.name())
13361 }
13362}
13363impl From<Pallas> for DynOrigin {
13364 fn from(_: Pallas) -> Self {
13365 DynOrigin::Pallas
13366 }
13367}
13368impl PointMass for Pallas {
13369 fn gravitational_parameter(&self) -> GravitationalParameter {
13370 GravitationalParameter::km3_per_s2(13.665878145967422f64)
13371 }
13372}
13373const RIGHT_ASCENSION_PALLAS: RotationalElement<0usize> = RotationalElement {
13374 typ: RotationalElementType::RightAscension,
13375 c0: 0.5759586531581288f64,
13376 c1: 0f64,
13377 c2: 0f64,
13378 c: [],
13379 theta0: [],
13380 theta1: [],
13381};
13382const DECLINATION_PALLAS: RotationalElement<0usize> = RotationalElement {
13383 typ: RotationalElementType::Declination,
13384 c0: -0.05235987755982989f64,
13385 c1: 0f64,
13386 c2: 0f64,
13387 c: [],
13388 theta0: [],
13389 theta1: [],
13390};
13391const ROTATION_PALLAS: RotationalElement<0usize> = RotationalElement {
13392 typ: RotationalElementType::Rotation,
13393 c0: 0.6632251157578453f64,
13394 c1: 19.299913700406368f64,
13395 c2: 0f64,
13396 c: [],
13397 theta0: [],
13398 theta1: [],
13399};
13400impl RotationalElements for Pallas {
13401 fn rotational_elements(&self, t: f64) -> Elements {
13402 (
13403 RIGHT_ASCENSION_PALLAS.angle(t),
13404 DECLINATION_PALLAS.angle(t),
13405 ROTATION_PALLAS.angle(t),
13406 )
13407 }
13408 fn rotational_element_rates(&self, t: f64) -> Elements {
13409 (
13410 RIGHT_ASCENSION_PALLAS.angle_dot(t),
13411 DECLINATION_PALLAS.angle_dot(t),
13412 ROTATION_PALLAS.angle_dot(t),
13413 )
13414 }
13415}
13416#[doc = "Vesta (NAIF ID: 2000004)."]
13417#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13418#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13419pub struct Vesta;
13420impl Origin for Vesta {
13421 fn id(&self) -> NaifId {
13422 NaifId(2000004i32)
13423 }
13424 fn name(&self) -> &'static str {
13425 "Vesta"
13426 }
13427}
13428impl Display for Vesta {
13429 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13430 write!(f, "{}", self.name())
13431 }
13432}
13433impl From<Vesta> for DynOrigin {
13434 fn from(_: Vesta) -> Self {
13435 DynOrigin::Vesta
13436 }
13437}
13438impl PointMass for Vesta {
13439 fn gravitational_parameter(&self) -> GravitationalParameter {
13440 GravitationalParameter::km3_per_s2(17.288232879171513f64)
13441 }
13442}
13443impl TriaxialEllipsoid for Vesta {
13444 fn radii(&self) -> Radii {
13445 (
13446 Distance::kilometers(289f64),
13447 Distance::kilometers(280f64),
13448 Distance::kilometers(229f64),
13449 )
13450 }
13451}
13452const RIGHT_ASCENSION_VESTA: RotationalElement<0usize> = RotationalElement {
13453 typ: RotationalElementType::RightAscension,
13454 c0: 5.393608440730596f64,
13455 c1: 0f64,
13456 c2: 0f64,
13457 c: [],
13458 theta0: [],
13459 theta1: [],
13460};
13461const DECLINATION_VESTA: RotationalElement<0usize> = RotationalElement {
13462 typ: RotationalElementType::Declination,
13463 c0: 0.7371398095798051f64,
13464 c1: 0f64,
13465 c2: 0f64,
13466 c: [],
13467 theta0: [],
13468 theta1: [],
13469};
13470const ROTATION_VESTA: RotationalElement<0usize> = RotationalElement {
13471 typ: RotationalElementType::Rotation,
13472 c0: 4.980995152266617f64,
13473 c1: 28.22778495282912f64,
13474 c2: 0f64,
13475 c: [],
13476 theta0: [],
13477 theta1: [],
13478};
13479impl RotationalElements for Vesta {
13480 fn rotational_elements(&self, t: f64) -> Elements {
13481 (
13482 RIGHT_ASCENSION_VESTA.angle(t),
13483 DECLINATION_VESTA.angle(t),
13484 ROTATION_VESTA.angle(t),
13485 )
13486 }
13487 fn rotational_element_rates(&self, t: f64) -> Elements {
13488 (
13489 RIGHT_ASCENSION_VESTA.angle_dot(t),
13490 DECLINATION_VESTA.angle_dot(t),
13491 ROTATION_VESTA.angle_dot(t),
13492 )
13493 }
13494}
13495#[doc = "Psyche (NAIF ID: 2000016)."]
13496#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13497#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13498pub struct Psyche;
13499impl Origin for Psyche {
13500 fn id(&self) -> NaifId {
13501 NaifId(2000016i32)
13502 }
13503 fn name(&self) -> &'static str {
13504 "Psyche"
13505 }
13506}
13507impl Display for Psyche {
13508 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13509 write!(f, "{}", self.name())
13510 }
13511}
13512impl From<Psyche> for DynOrigin {
13513 fn from(_: Psyche) -> Self {
13514 DynOrigin::Psyche
13515 }
13516}
13517impl PointMass for Psyche {
13518 fn gravitational_parameter(&self) -> GravitationalParameter {
13519 GravitationalParameter::km3_per_s2(1.5896582441709424f64)
13520 }
13521}
13522impl MeanRadius for Psyche {
13523 fn mean_radius(&self) -> Distance {
13524 Distance::kilometers(113f64)
13525 }
13526}
13527impl TriaxialEllipsoid for Psyche {
13528 fn radii(&self) -> Radii {
13529 (
13530 Distance::kilometers(139.5f64),
13531 Distance::kilometers(116f64),
13532 Distance::kilometers(94.5f64),
13533 )
13534 }
13535}
13536#[doc = "Lutetia (NAIF ID: 2000021)."]
13537#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13538#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13539pub struct Lutetia;
13540impl Origin for Lutetia {
13541 fn id(&self) -> NaifId {
13542 NaifId(2000021i32)
13543 }
13544 fn name(&self) -> &'static str {
13545 "Lutetia"
13546 }
13547}
13548impl Display for Lutetia {
13549 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13550 write!(f, "{}", self.name())
13551 }
13552}
13553impl From<Lutetia> for DynOrigin {
13554 fn from(_: Lutetia) -> Self {
13555 DynOrigin::Lutetia
13556 }
13557}
13558impl MeanRadius for Lutetia {
13559 fn mean_radius(&self) -> Distance {
13560 Distance::kilometers(52.5f64)
13561 }
13562}
13563impl TriaxialEllipsoid for Lutetia {
13564 fn radii(&self) -> Radii {
13565 (
13566 Distance::kilometers(62f64),
13567 Distance::kilometers(50.5f64),
13568 Distance::kilometers(46.5f64),
13569 )
13570 }
13571}
13572const RIGHT_ASCENSION_LUTETIA: RotationalElement<0usize> = RotationalElement {
13573 typ: RotationalElementType::RightAscension,
13574 c0: 0.9075712110370514f64,
13575 c1: 0f64,
13576 c2: 0f64,
13577 c: [],
13578 theta0: [],
13579 theta1: [],
13580};
13581const DECLINATION_LUTETIA: RotationalElement<0usize> = RotationalElement {
13582 typ: RotationalElementType::Declination,
13583 c0: 0.20943951023931956f64,
13584 c1: 0f64,
13585 c2: 0f64,
13586 c: [],
13587 theta0: [],
13588 theta1: [],
13589};
13590const ROTATION_LUTETIA: RotationalElement<0usize> = RotationalElement {
13591 typ: RotationalElementType::Rotation,
13592 c0: 1.6406094968746698f64,
13593 c1: 18.4612463429088f64,
13594 c2: 0f64,
13595 c: [],
13596 theta0: [],
13597 theta1: [],
13598};
13599impl RotationalElements for Lutetia {
13600 fn rotational_elements(&self, t: f64) -> Elements {
13601 (
13602 RIGHT_ASCENSION_LUTETIA.angle(t),
13603 DECLINATION_LUTETIA.angle(t),
13604 ROTATION_LUTETIA.angle(t),
13605 )
13606 }
13607 fn rotational_element_rates(&self, t: f64) -> Elements {
13608 (
13609 RIGHT_ASCENSION_LUTETIA.angle_dot(t),
13610 DECLINATION_LUTETIA.angle_dot(t),
13611 ROTATION_LUTETIA.angle_dot(t),
13612 )
13613 }
13614}
13615#[doc = "Kleopatra (NAIF ID: 2000216)."]
13616#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13617#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13618pub struct Kleopatra;
13619impl Origin for Kleopatra {
13620 fn id(&self) -> NaifId {
13621 NaifId(2000216i32)
13622 }
13623 fn name(&self) -> &'static str {
13624 "Kleopatra"
13625 }
13626}
13627impl Display for Kleopatra {
13628 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13629 write!(f, "{}", self.name())
13630 }
13631}
13632impl From<Kleopatra> for DynOrigin {
13633 fn from(_: Kleopatra) -> Self {
13634 DynOrigin::Kleopatra
13635 }
13636}
13637#[doc = "Eros (NAIF ID: 2000433)."]
13638#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13639#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13640pub struct Eros;
13641impl Origin for Eros {
13642 fn id(&self) -> NaifId {
13643 NaifId(2000433i32)
13644 }
13645 fn name(&self) -> &'static str {
13646 "Eros"
13647 }
13648}
13649impl Display for Eros {
13650 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13651 write!(f, "{}", self.name())
13652 }
13653}
13654impl From<Eros> for DynOrigin {
13655 fn from(_: Eros) -> Self {
13656 DynOrigin::Eros
13657 }
13658}
13659impl PointMass for Eros {
13660 fn gravitational_parameter(&self) -> GravitationalParameter {
13661 GravitationalParameter::km3_per_s2(0.0004463f64)
13662 }
13663}
13664impl MeanRadius for Eros {
13665 fn mean_radius(&self) -> Distance {
13666 Distance::kilometers(8.45f64)
13667 }
13668}
13669impl TriaxialEllipsoid for Eros {
13670 fn radii(&self) -> Radii {
13671 (
13672 Distance::kilometers(17f64),
13673 Distance::kilometers(5.5f64),
13674 Distance::kilometers(5.5f64),
13675 )
13676 }
13677}
13678const RIGHT_ASCENSION_EROS: RotationalElement<0usize> = RotationalElement {
13679 typ: RotationalElementType::RightAscension,
13680 c0: 0.1980948701013564f64,
13681 c1: 0f64,
13682 c2: 0f64,
13683 c: [],
13684 theta0: [],
13685 theta1: [],
13686};
13687const DECLINATION_EROS: RotationalElement<0usize> = RotationalElement {
13688 typ: RotationalElementType::Declination,
13689 c0: 0.30054569719342356f64,
13690 c1: 0f64,
13691 c2: 0f64,
13692 c: [],
13693 theta0: [],
13694 theta1: [],
13695};
13696const ROTATION_EROS: RotationalElement<0usize> = RotationalElement {
13697 typ: RotationalElementType::Rotation,
13698 c0: 5.690995091977911f64,
13699 c1: 28.612729617819042f64,
13700 c2: 0f64,
13701 c: [],
13702 theta0: [],
13703 theta1: [],
13704};
13705impl RotationalElements for Eros {
13706 fn rotational_elements(&self, t: f64) -> Elements {
13707 (
13708 RIGHT_ASCENSION_EROS.angle(t),
13709 DECLINATION_EROS.angle(t),
13710 ROTATION_EROS.angle(t),
13711 )
13712 }
13713 fn rotational_element_rates(&self, t: f64) -> Elements {
13714 (
13715 RIGHT_ASCENSION_EROS.angle_dot(t),
13716 DECLINATION_EROS.angle_dot(t),
13717 ROTATION_EROS.angle_dot(t),
13718 )
13719 }
13720}
13721#[doc = "Davida (NAIF ID: 2000511)."]
13722#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13723#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13724pub struct Davida;
13725impl Origin for Davida {
13726 fn id(&self) -> NaifId {
13727 NaifId(2000511i32)
13728 }
13729 fn name(&self) -> &'static str {
13730 "Davida"
13731 }
13732}
13733impl Display for Davida {
13734 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13735 write!(f, "{}", self.name())
13736 }
13737}
13738impl From<Davida> for DynOrigin {
13739 fn from(_: Davida) -> Self {
13740 DynOrigin::Davida
13741 }
13742}
13743impl PointMass for Davida {
13744 fn gravitational_parameter(&self) -> GravitationalParameter {
13745 GravitationalParameter::km3_per_s2(3.8944831481705644f64)
13746 }
13747}
13748impl MeanRadius for Davida {
13749 fn mean_radius(&self) -> Distance {
13750 Distance::kilometers(150f64)
13751 }
13752}
13753impl TriaxialEllipsoid for Davida {
13754 fn radii(&self) -> Radii {
13755 (
13756 Distance::kilometers(180f64),
13757 Distance::kilometers(147f64),
13758 Distance::kilometers(127f64),
13759 )
13760 }
13761}
13762const RIGHT_ASCENSION_DAVIDA: RotationalElement<0usize> = RotationalElement {
13763 typ: RotationalElementType::RightAscension,
13764 c0: 5.183627878423159f64,
13765 c1: 0f64,
13766 c2: 0f64,
13767 c: [],
13768 theta0: [],
13769 theta1: [],
13770};
13771const DECLINATION_DAVIDA: RotationalElement<0usize> = RotationalElement {
13772 typ: RotationalElementType::Declination,
13773 c0: 0.08726646259971647f64,
13774 c1: 0f64,
13775 c2: 0f64,
13776 c: [],
13777 theta0: [],
13778 theta1: [],
13779};
13780const ROTATION_DAVIDA: RotationalElement<0usize> = RotationalElement {
13781 typ: RotationalElementType::Rotation,
13782 c0: 4.679227724596798f64,
13783 c1: 29.39866372732388f64,
13784 c2: 0f64,
13785 c: [],
13786 theta0: [],
13787 theta1: [],
13788};
13789impl RotationalElements for Davida {
13790 fn rotational_elements(&self, t: f64) -> Elements {
13791 (
13792 RIGHT_ASCENSION_DAVIDA.angle(t),
13793 DECLINATION_DAVIDA.angle(t),
13794 ROTATION_DAVIDA.angle(t),
13795 )
13796 }
13797 fn rotational_element_rates(&self, t: f64) -> Elements {
13798 (
13799 RIGHT_ASCENSION_DAVIDA.angle_dot(t),
13800 DECLINATION_DAVIDA.angle_dot(t),
13801 ROTATION_DAVIDA.angle_dot(t),
13802 )
13803 }
13804}
13805#[doc = "Mathilde (NAIF ID: 2000253)."]
13806#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13807#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13808pub struct Mathilde;
13809impl Origin for Mathilde {
13810 fn id(&self) -> NaifId {
13811 NaifId(2000253i32)
13812 }
13813 fn name(&self) -> &'static str {
13814 "Mathilde"
13815 }
13816}
13817impl Display for Mathilde {
13818 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13819 write!(f, "{}", self.name())
13820 }
13821}
13822impl From<Mathilde> for DynOrigin {
13823 fn from(_: Mathilde) -> Self {
13824 DynOrigin::Mathilde
13825 }
13826}
13827impl MeanRadius for Mathilde {
13828 fn mean_radius(&self) -> Distance {
13829 Distance::kilometers(26.5f64)
13830 }
13831}
13832impl TriaxialEllipsoid for Mathilde {
13833 fn radii(&self) -> Radii {
13834 (
13835 Distance::kilometers(33f64),
13836 Distance::kilometers(24f64),
13837 Distance::kilometers(23f64),
13838 )
13839 }
13840}
13841#[doc = "Steins (NAIF ID: 2002867)."]
13842#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13843#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13844pub struct Steins;
13845impl Origin for Steins {
13846 fn id(&self) -> NaifId {
13847 NaifId(2002867i32)
13848 }
13849 fn name(&self) -> &'static str {
13850 "Steins"
13851 }
13852}
13853impl Display for Steins {
13854 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13855 write!(f, "{}", self.name())
13856 }
13857}
13858impl From<Steins> for DynOrigin {
13859 fn from(_: Steins) -> Self {
13860 DynOrigin::Steins
13861 }
13862}
13863impl MeanRadius for Steins {
13864 fn mean_radius(&self) -> Distance {
13865 Distance::kilometers(2.7f64)
13866 }
13867}
13868impl TriaxialEllipsoid for Steins {
13869 fn radii(&self) -> Radii {
13870 (
13871 Distance::kilometers(3.24f64),
13872 Distance::kilometers(2.73f64),
13873 Distance::kilometers(2.04f64),
13874 )
13875 }
13876}
13877const RIGHT_ASCENSION_STEINS: RotationalElement<0usize> = RotationalElement {
13878 typ: RotationalElementType::RightAscension,
13879 c0: 1.5882496193148399f64,
13880 c1: 0f64,
13881 c2: 0f64,
13882 c: [],
13883 theta0: [],
13884 theta1: [],
13885};
13886const DECLINATION_STEINS: RotationalElement<0usize> = RotationalElement {
13887 typ: RotationalElementType::Declination,
13888 c0: -1.0821041362364843f64,
13889 c1: 0f64,
13890 c2: 0f64,
13891 c: [],
13892 theta0: [],
13893 theta1: [],
13894};
13895const ROTATION_STEINS: RotationalElement<0usize> = RotationalElement {
13896 typ: RotationalElementType::Rotation,
13897 c0: 5.615771401216954f64,
13898 c1: 24.925032561498227f64,
13899 c2: 0f64,
13900 c: [],
13901 theta0: [],
13902 theta1: [],
13903};
13904impl RotationalElements for Steins {
13905 fn rotational_elements(&self, t: f64) -> Elements {
13906 (
13907 RIGHT_ASCENSION_STEINS.angle(t),
13908 DECLINATION_STEINS.angle(t),
13909 ROTATION_STEINS.angle(t),
13910 )
13911 }
13912 fn rotational_element_rates(&self, t: f64) -> Elements {
13913 (
13914 RIGHT_ASCENSION_STEINS.angle_dot(t),
13915 DECLINATION_STEINS.angle_dot(t),
13916 ROTATION_STEINS.angle_dot(t),
13917 )
13918 }
13919}
13920#[doc = "Braille (NAIF ID: 2009969)."]
13921#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13922#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13923pub struct Braille;
13924impl Origin for Braille {
13925 fn id(&self) -> NaifId {
13926 NaifId(2009969i32)
13927 }
13928 fn name(&self) -> &'static str {
13929 "Braille"
13930 }
13931}
13932impl Display for Braille {
13933 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13934 write!(f, "{}", self.name())
13935 }
13936}
13937impl From<Braille> for DynOrigin {
13938 fn from(_: Braille) -> Self {
13939 DynOrigin::Braille
13940 }
13941}
13942#[doc = "Wilson-Harrington (NAIF ID: 2004015)."]
13943#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13944#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13945pub struct WilsonHarrington;
13946impl Origin for WilsonHarrington {
13947 fn id(&self) -> NaifId {
13948 NaifId(2004015i32)
13949 }
13950 fn name(&self) -> &'static str {
13951 "Wilson-Harrington"
13952 }
13953}
13954impl Display for WilsonHarrington {
13955 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13956 write!(f, "{}", self.name())
13957 }
13958}
13959impl From<WilsonHarrington> for DynOrigin {
13960 fn from(_: WilsonHarrington) -> Self {
13961 DynOrigin::WilsonHarrington
13962 }
13963}
13964#[doc = "Toutatis (NAIF ID: 2004179)."]
13965#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13966#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13967pub struct Toutatis;
13968impl Origin for Toutatis {
13969 fn id(&self) -> NaifId {
13970 NaifId(2004179i32)
13971 }
13972 fn name(&self) -> &'static str {
13973 "Toutatis"
13974 }
13975}
13976impl Display for Toutatis {
13977 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13978 write!(f, "{}", self.name())
13979 }
13980}
13981impl From<Toutatis> for DynOrigin {
13982 fn from(_: Toutatis) -> Self {
13983 DynOrigin::Toutatis
13984 }
13985}
13986impl TriaxialEllipsoid for Toutatis {
13987 fn radii(&self) -> Radii {
13988 (
13989 Distance::kilometers(2.13f64),
13990 Distance::kilometers(1.015f64),
13991 Distance::kilometers(0.85f64),
13992 )
13993 }
13994}
13995#[doc = "Itokawa (NAIF ID: 2025143)."]
13996#[derive(Debug, Copy, Clone, Eq, PartialEq)]
13997#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13998pub struct Itokawa;
13999impl Origin for Itokawa {
14000 fn id(&self) -> NaifId {
14001 NaifId(2025143i32)
14002 }
14003 fn name(&self) -> &'static str {
14004 "Itokawa"
14005 }
14006}
14007impl Display for Itokawa {
14008 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
14009 write!(f, "{}", self.name())
14010 }
14011}
14012impl From<Itokawa> for DynOrigin {
14013 fn from(_: Itokawa) -> Self {
14014 DynOrigin::Itokawa
14015 }
14016}
14017impl TriaxialEllipsoid for Itokawa {
14018 fn radii(&self) -> Radii {
14019 (
14020 Distance::kilometers(0.268f64),
14021 Distance::kilometers(0.147f64),
14022 Distance::kilometers(0.104f64),
14023 )
14024 }
14025}
14026const RIGHT_ASCENSION_ITOKAWA: RotationalElement<0usize> = RotationalElement {
14027 typ: RotationalElementType::RightAscension,
14028 c0: 1.5800465718304666f64,
14029 c1: 0f64,
14030 c2: 0f64,
14031 c: [],
14032 theta0: [],
14033 theta1: [],
14034};
14035const DECLINATION_ITOKAWA: RotationalElement<0usize> = RotationalElement {
14036 typ: RotationalElementType::Declination,
14037 c0: -1.1571532940722404f64,
14038 c1: 0f64,
14039 c2: 0f64,
14040 c: [],
14041 theta0: [],
14042 theta1: [],
14043};
14044const ROTATION_ITOKAWA: RotationalElement<0usize> = RotationalElement {
14045 typ: RotationalElementType::Rotation,
14046 c0: 0f64,
14047 c1: 12.429240095029979f64,
14048 c2: 0f64,
14049 c: [],
14050 theta0: [],
14051 theta1: [],
14052};
14053impl RotationalElements for Itokawa {
14054 fn rotational_elements(&self, t: f64) -> Elements {
14055 (
14056 RIGHT_ASCENSION_ITOKAWA.angle(t),
14057 DECLINATION_ITOKAWA.angle(t),
14058 ROTATION_ITOKAWA.angle(t),
14059 )
14060 }
14061 fn rotational_element_rates(&self, t: f64) -> Elements {
14062 (
14063 RIGHT_ASCENSION_ITOKAWA.angle_dot(t),
14064 DECLINATION_ITOKAWA.angle_dot(t),
14065 ROTATION_ITOKAWA.angle_dot(t),
14066 )
14067 }
14068}
14069#[doc = "Bennu (NAIF ID: 2101955)."]
14070#[derive(Debug, Copy, Clone, Eq, PartialEq)]
14071#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
14072pub struct Bennu;
14073impl Origin for Bennu {
14074 fn id(&self) -> NaifId {
14075 NaifId(2101955i32)
14076 }
14077 fn name(&self) -> &'static str {
14078 "Bennu"
14079 }
14080}
14081impl Display for Bennu {
14082 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
14083 write!(f, "{}", self.name())
14084 }
14085}
14086impl From<Bennu> for DynOrigin {
14087 fn from(_: Bennu) -> Self {
14088 DynOrigin::Bennu
14089 }
14090}
14091impl TryPointMass for DynOrigin {
14092 fn try_gravitational_parameter(
14093 &self,
14094 ) -> Result<GravitationalParameter, UndefinedOriginPropertyError> {
14095 match self {
14096 DynOrigin::Sun => Ok(GravitationalParameter::km3_per_s2(132712440041.27942f64)),
14097 DynOrigin::Mercury => Ok(GravitationalParameter::km3_per_s2(22031.868551400003f64)),
14098 DynOrigin::Venus => Ok(GravitationalParameter::km3_per_s2(324858.592f64)),
14099 DynOrigin::Earth => Ok(GravitationalParameter::km3_per_s2(398600.43550702266f64)),
14100 DynOrigin::Mars => Ok(GravitationalParameter::km3_per_s2(42828.37362069909f64)),
14101 DynOrigin::Jupiter => Ok(GravitationalParameter::km3_per_s2(126686531.9003704f64)),
14102 DynOrigin::Saturn => Ok(GravitationalParameter::km3_per_s2(37931206.23436167f64)),
14103 DynOrigin::Uranus => Ok(GravitationalParameter::km3_per_s2(5793951.256527211f64)),
14104 DynOrigin::Neptune => Ok(GravitationalParameter::km3_per_s2(6835103.145462294f64)),
14105 DynOrigin::Pluto => Ok(GravitationalParameter::km3_per_s2(869.6138177608748f64)),
14106 DynOrigin::SolarSystemBarycenter => {
14107 Ok(GravitationalParameter::km3_per_s2(132712440041.27942f64))
14108 }
14109 DynOrigin::MercuryBarycenter => {
14110 Ok(GravitationalParameter::km3_per_s2(22031.868551400003f64))
14111 }
14112 DynOrigin::VenusBarycenter => Ok(GravitationalParameter::km3_per_s2(324858.592f64)),
14113 DynOrigin::EarthBarycenter => {
14114 Ok(GravitationalParameter::km3_per_s2(403503.2356254802f64))
14115 }
14116 DynOrigin::MarsBarycenter => {
14117 Ok(GravitationalParameter::km3_per_s2(42828.3758157561f64))
14118 }
14119 DynOrigin::JupiterBarycenter => {
14120 Ok(GravitationalParameter::km3_per_s2(126712764.09999998f64))
14121 }
14122 DynOrigin::SaturnBarycenter => Ok(GravitationalParameter::km3_per_s2(37940584.8418f64)),
14123 DynOrigin::UranusBarycenter => {
14124 Ok(GravitationalParameter::km3_per_s2(5794556.3999999985f64))
14125 }
14126 DynOrigin::NeptuneBarycenter => {
14127 Ok(GravitationalParameter::km3_per_s2(6836527.100580399f64))
14128 }
14129 DynOrigin::PlutoBarycenter => Ok(GravitationalParameter::km3_per_s2(975.5f64)),
14130 DynOrigin::Moon => Ok(GravitationalParameter::km3_per_s2(4902.80011845755f64)),
14131 DynOrigin::Phobos => Ok(GravitationalParameter::km3_per_s2(0.0007087546066894452f64)),
14132 DynOrigin::Deimos => Ok(GravitationalParameter::km3_per_s2(
14133 0.00009615569648120313f64,
14134 )),
14135 DynOrigin::Io => Ok(GravitationalParameter::km3_per_s2(5959.915466180539f64)),
14136 DynOrigin::Europa => Ok(GravitationalParameter::km3_per_s2(3202.712099607295f64)),
14137 DynOrigin::Ganymede => Ok(GravitationalParameter::km3_per_s2(9887.832752719638f64)),
14138 DynOrigin::Callisto => Ok(GravitationalParameter::km3_per_s2(7179.283402579837f64)),
14139 DynOrigin::Amalthea => Ok(GravitationalParameter::km3_per_s2(0.1645634534798259f64)),
14140 DynOrigin::Himalia => Ok(GravitationalParameter::km3_per_s2(0.1515524299611265f64)),
14141 DynOrigin::Thebe => Ok(GravitationalParameter::km3_per_s2(0.030148f64)),
14142 DynOrigin::Adrastea => Ok(GravitationalParameter::km3_per_s2(0.000139f64)),
14143 DynOrigin::Metis => Ok(GravitationalParameter::km3_per_s2(0.002501f64)),
14144 DynOrigin::Mimas => Ok(GravitationalParameter::km3_per_s2(2.503488768152587f64)),
14145 DynOrigin::Enceladus => Ok(GravitationalParameter::km3_per_s2(7.210366688598896f64)),
14146 DynOrigin::Tethys => Ok(GravitationalParameter::km3_per_s2(41.21352885489587f64)),
14147 DynOrigin::Dione => Ok(GravitationalParameter::km3_per_s2(73.11607172482067f64)),
14148 DynOrigin::Rhea => Ok(GravitationalParameter::km3_per_s2(153.9417519146563f64)),
14149 DynOrigin::Titan => Ok(GravitationalParameter::km3_per_s2(8978.137095521046f64)),
14150 DynOrigin::Hyperion => Ok(GravitationalParameter::km3_per_s2(0.3704913747932265f64)),
14151 DynOrigin::Iapetus => Ok(GravitationalParameter::km3_per_s2(120.5151060137642f64)),
14152 DynOrigin::Phoebe => Ok(GravitationalParameter::km3_per_s2(0.5547860052791678f64)),
14153 DynOrigin::Janus => Ok(GravitationalParameter::km3_per_s2(0.1265765099012197f64)),
14154 DynOrigin::Epimetheus => Ok(GravitationalParameter::km3_per_s2(0.03512333288208074f64)),
14155 DynOrigin::Helene => Ok(GravitationalParameter::km3_per_s2(0.0004757419551776972f64)),
14156 DynOrigin::Atlas => Ok(GravitationalParameter::km3_per_s2(0.0003718871247516475f64)),
14157 DynOrigin::Prometheus => Ok(GravitationalParameter::km3_per_s2(0.0107520800100761f64)),
14158 DynOrigin::Pandora => Ok(GravitationalParameter::km3_per_s2(0.009290325122028795f64)),
14159 DynOrigin::Ariel => Ok(GravitationalParameter::km3_per_s2(83.46344431770477f64)),
14160 DynOrigin::Umbriel => Ok(GravitationalParameter::km3_per_s2(85.09338094489388f64)),
14161 DynOrigin::Titania => Ok(GravitationalParameter::km3_per_s2(226.9437003741248f64)),
14162 DynOrigin::Oberon => Ok(GravitationalParameter::km3_per_s2(205.3234302535623f64)),
14163 DynOrigin::Miranda => Ok(GravitationalParameter::km3_per_s2(4.3195168992321f64)),
14164 DynOrigin::Triton => Ok(GravitationalParameter::km3_per_s2(1428.495462910464f64)),
14165 DynOrigin::Naiad => Ok(GravitationalParameter::km3_per_s2(0.008530281246540886f64)),
14166 DynOrigin::Thalassa => Ok(GravitationalParameter::km3_per_s2(0.0235887319799217f64)),
14167 DynOrigin::Despina => Ok(GravitationalParameter::km3_per_s2(0.1167318403814998f64)),
14168 DynOrigin::Galatea => Ok(GravitationalParameter::km3_per_s2(0.189898503906069f64)),
14169 DynOrigin::Larissa => Ok(GravitationalParameter::km3_per_s2(0.2548437405693583f64)),
14170 DynOrigin::Proteus => Ok(GravitationalParameter::km3_per_s2(2.583422379120727f64)),
14171 DynOrigin::Charon => Ok(GravitationalParameter::km3_per_s2(105.8799888601881f64)),
14172 DynOrigin::Nix => Ok(GravitationalParameter::km3_per_s2(0.00304817564816976f64)),
14173 DynOrigin::Hydra => Ok(GravitationalParameter::km3_per_s2(0.003211039206155255f64)),
14174 DynOrigin::Kerberos => Ok(GravitationalParameter::km3_per_s2(0.001110040850536676f64)),
14175 DynOrigin::Styx => Ok(GravitationalParameter::km3_per_s2(0f64)),
14176 DynOrigin::Ceres => Ok(GravitationalParameter::km3_per_s2(62.62888864440993f64)),
14177 DynOrigin::Pallas => Ok(GravitationalParameter::km3_per_s2(13.665878145967422f64)),
14178 DynOrigin::Vesta => Ok(GravitationalParameter::km3_per_s2(17.288232879171513f64)),
14179 DynOrigin::Psyche => Ok(GravitationalParameter::km3_per_s2(1.5896582441709424f64)),
14180 DynOrigin::Eros => Ok(GravitationalParameter::km3_per_s2(0.0004463f64)),
14181 DynOrigin::Davida => Ok(GravitationalParameter::km3_per_s2(3.8944831481705644f64)),
14182 _ => Err(UndefinedOriginPropertyError {
14183 origin: self.to_string(),
14184 prop: "gravitational parameter".to_string(),
14185 }),
14186 }
14187 }
14188}
14189impl TryMeanRadius for DynOrigin {
14190 fn try_mean_radius(&self) -> Result<Distance, UndefinedOriginPropertyError> {
14191 match self {
14192 DynOrigin::Mercury => Ok(Distance::kilometers(2439.4f64)),
14193 DynOrigin::Venus => Ok(Distance::kilometers(6051.8f64)),
14194 DynOrigin::Earth => Ok(Distance::kilometers(6371.0084f64)),
14195 DynOrigin::Mars => Ok(Distance::kilometers(3389.5f64)),
14196 DynOrigin::Jupiter => Ok(Distance::kilometers(69911f64)),
14197 DynOrigin::Saturn => Ok(Distance::kilometers(58232f64)),
14198 DynOrigin::Uranus => Ok(Distance::kilometers(25362f64)),
14199 DynOrigin::Neptune => Ok(Distance::kilometers(24622f64)),
14200 DynOrigin::Pluto => Ok(Distance::kilometers(1188.3f64)),
14201 DynOrigin::Moon => Ok(Distance::kilometers(1737.4f64)),
14202 DynOrigin::Phobos => Ok(Distance::kilometers(11.08f64)),
14203 DynOrigin::Deimos => Ok(Distance::kilometers(6.2f64)),
14204 DynOrigin::Io => Ok(Distance::kilometers(1821.49f64)),
14205 DynOrigin::Europa => Ok(Distance::kilometers(1560.8f64)),
14206 DynOrigin::Ganymede => Ok(Distance::kilometers(2631.2f64)),
14207 DynOrigin::Callisto => Ok(Distance::kilometers(2410.3f64)),
14208 DynOrigin::Amalthea => Ok(Distance::kilometers(83.5f64)),
14209 DynOrigin::Himalia => Ok(Distance::kilometers(85f64)),
14210 DynOrigin::Elara => Ok(Distance::kilometers(40f64)),
14211 DynOrigin::Pasiphae => Ok(Distance::kilometers(18f64)),
14212 DynOrigin::Sinope => Ok(Distance::kilometers(14f64)),
14213 DynOrigin::Lysithea => Ok(Distance::kilometers(12f64)),
14214 DynOrigin::Carme => Ok(Distance::kilometers(15f64)),
14215 DynOrigin::Ananke => Ok(Distance::kilometers(10f64)),
14216 DynOrigin::Leda => Ok(Distance::kilometers(5f64)),
14217 DynOrigin::Thebe => Ok(Distance::kilometers(49.3f64)),
14218 DynOrigin::Adrastea => Ok(Distance::kilometers(8.2f64)),
14219 DynOrigin::Metis => Ok(Distance::kilometers(21.5f64)),
14220 DynOrigin::Mimas => Ok(Distance::kilometers(198.2f64)),
14221 DynOrigin::Enceladus => Ok(Distance::kilometers(252.1f64)),
14222 DynOrigin::Tethys => Ok(Distance::kilometers(531f64)),
14223 DynOrigin::Dione => Ok(Distance::kilometers(561.4f64)),
14224 DynOrigin::Rhea => Ok(Distance::kilometers(763.5f64)),
14225 DynOrigin::Titan => Ok(Distance::kilometers(2575f64)),
14226 DynOrigin::Hyperion => Ok(Distance::kilometers(135f64)),
14227 DynOrigin::Iapetus => Ok(Distance::kilometers(734.3f64)),
14228 DynOrigin::Phoebe => Ok(Distance::kilometers(106.5f64)),
14229 DynOrigin::Janus => Ok(Distance::kilometers(89.2f64)),
14230 DynOrigin::Epimetheus => Ok(Distance::kilometers(58.2f64)),
14231 DynOrigin::Helene => Ok(Distance::kilometers(18f64)),
14232 DynOrigin::Telesto => Ok(Distance::kilometers(12.4f64)),
14233 DynOrigin::Calypso => Ok(Distance::kilometers(9.6f64)),
14234 DynOrigin::Atlas => Ok(Distance::kilometers(15.1f64)),
14235 DynOrigin::Prometheus => Ok(Distance::kilometers(43.1f64)),
14236 DynOrigin::Pandora => Ok(Distance::kilometers(40.6f64)),
14237 DynOrigin::Pan => Ok(Distance::kilometers(14f64)),
14238 DynOrigin::Methone => Ok(Distance::kilometers(1.45f64)),
14239 DynOrigin::Pallene => Ok(Distance::kilometers(2.23f64)),
14240 DynOrigin::Polydeuces => Ok(Distance::kilometers(1.3f64)),
14241 DynOrigin::Daphnis => Ok(Distance::kilometers(3.8f64)),
14242 DynOrigin::Anthe => Ok(Distance::kilometers(0.5f64)),
14243 DynOrigin::Aegaeon => Ok(Distance::kilometers(0.33f64)),
14244 DynOrigin::Ariel => Ok(Distance::kilometers(578.9f64)),
14245 DynOrigin::Umbriel => Ok(Distance::kilometers(584.7f64)),
14246 DynOrigin::Titania => Ok(Distance::kilometers(788.9f64)),
14247 DynOrigin::Oberon => Ok(Distance::kilometers(761.4f64)),
14248 DynOrigin::Miranda => Ok(Distance::kilometers(235.8f64)),
14249 DynOrigin::Cordelia => Ok(Distance::kilometers(13f64)),
14250 DynOrigin::Ophelia => Ok(Distance::kilometers(15f64)),
14251 DynOrigin::Bianca => Ok(Distance::kilometers(21f64)),
14252 DynOrigin::Cressida => Ok(Distance::kilometers(31f64)),
14253 DynOrigin::Desdemona => Ok(Distance::kilometers(27f64)),
14254 DynOrigin::Juliet => Ok(Distance::kilometers(42f64)),
14255 DynOrigin::Portia => Ok(Distance::kilometers(54f64)),
14256 DynOrigin::Rosalind => Ok(Distance::kilometers(27f64)),
14257 DynOrigin::Belinda => Ok(Distance::kilometers(33f64)),
14258 DynOrigin::Puck => Ok(Distance::kilometers(77f64)),
14259 DynOrigin::Triton => Ok(Distance::kilometers(1352.6f64)),
14260 DynOrigin::Nereid => Ok(Distance::kilometers(170f64)),
14261 DynOrigin::Naiad => Ok(Distance::kilometers(29f64)),
14262 DynOrigin::Thalassa => Ok(Distance::kilometers(40f64)),
14263 DynOrigin::Despina => Ok(Distance::kilometers(74f64)),
14264 DynOrigin::Galatea => Ok(Distance::kilometers(79f64)),
14265 DynOrigin::Larissa => Ok(Distance::kilometers(96f64)),
14266 DynOrigin::Proteus => Ok(Distance::kilometers(208f64)),
14267 DynOrigin::Charon => Ok(Distance::kilometers(606f64)),
14268 DynOrigin::Gaspra => Ok(Distance::kilometers(6.1f64)),
14269 DynOrigin::Ida => Ok(Distance::kilometers(15.65f64)),
14270 DynOrigin::Ceres => Ok(Distance::kilometers(470f64)),
14271 DynOrigin::Psyche => Ok(Distance::kilometers(113f64)),
14272 DynOrigin::Lutetia => Ok(Distance::kilometers(52.5f64)),
14273 DynOrigin::Eros => Ok(Distance::kilometers(8.45f64)),
14274 DynOrigin::Davida => Ok(Distance::kilometers(150f64)),
14275 DynOrigin::Mathilde => Ok(Distance::kilometers(26.5f64)),
14276 DynOrigin::Steins => Ok(Distance::kilometers(2.7f64)),
14277 _ => Err(UndefinedOriginPropertyError {
14278 origin: self.to_string(),
14279 prop: "mean radius".to_string(),
14280 }),
14281 }
14282 }
14283}
14284impl TryTriaxialEllipsoid for DynOrigin {
14285 fn try_radii(&self) -> Result<Radii, UndefinedOriginPropertyError> {
14286 match self {
14287 DynOrigin::Sun => Ok((
14288 Distance::kilometers(695700f64),
14289 Distance::kilometers(695700f64),
14290 Distance::kilometers(695700f64),
14291 )),
14292 DynOrigin::Mercury => Ok((
14293 Distance::kilometers(2440.53f64),
14294 Distance::kilometers(2440.53f64),
14295 Distance::kilometers(2438.26f64),
14296 )),
14297 DynOrigin::Venus => Ok((
14298 Distance::kilometers(6051.8f64),
14299 Distance::kilometers(6051.8f64),
14300 Distance::kilometers(6051.8f64),
14301 )),
14302 DynOrigin::Earth => Ok((
14303 Distance::kilometers(6378.1366f64),
14304 Distance::kilometers(6378.1366f64),
14305 Distance::kilometers(6356.7519f64),
14306 )),
14307 DynOrigin::Mars => Ok((
14308 Distance::kilometers(3396.19f64),
14309 Distance::kilometers(3396.19f64),
14310 Distance::kilometers(3376.2f64),
14311 )),
14312 DynOrigin::Jupiter => Ok((
14313 Distance::kilometers(71492f64),
14314 Distance::kilometers(71492f64),
14315 Distance::kilometers(66854f64),
14316 )),
14317 DynOrigin::Saturn => Ok((
14318 Distance::kilometers(60268f64),
14319 Distance::kilometers(60268f64),
14320 Distance::kilometers(54364f64),
14321 )),
14322 DynOrigin::Uranus => Ok((
14323 Distance::kilometers(25559f64),
14324 Distance::kilometers(25559f64),
14325 Distance::kilometers(24973f64),
14326 )),
14327 DynOrigin::Neptune => Ok((
14328 Distance::kilometers(24764f64),
14329 Distance::kilometers(24764f64),
14330 Distance::kilometers(24341f64),
14331 )),
14332 DynOrigin::Pluto => Ok((
14333 Distance::kilometers(1188.3f64),
14334 Distance::kilometers(1188.3f64),
14335 Distance::kilometers(1188.3f64),
14336 )),
14337 DynOrigin::Moon => Ok((
14338 Distance::kilometers(1737.4f64),
14339 Distance::kilometers(1737.4f64),
14340 Distance::kilometers(1737.4f64),
14341 )),
14342 DynOrigin::Phobos => Ok((
14343 Distance::kilometers(13f64),
14344 Distance::kilometers(11.4f64),
14345 Distance::kilometers(9.1f64),
14346 )),
14347 DynOrigin::Deimos => Ok((
14348 Distance::kilometers(7.8f64),
14349 Distance::kilometers(6f64),
14350 Distance::kilometers(5.1f64),
14351 )),
14352 DynOrigin::Io => Ok((
14353 Distance::kilometers(1829.4f64),
14354 Distance::kilometers(1819.4f64),
14355 Distance::kilometers(1815.7f64),
14356 )),
14357 DynOrigin::Europa => Ok((
14358 Distance::kilometers(1562.6f64),
14359 Distance::kilometers(1560.3f64),
14360 Distance::kilometers(1559.5f64),
14361 )),
14362 DynOrigin::Ganymede => Ok((
14363 Distance::kilometers(2631.2f64),
14364 Distance::kilometers(2631.2f64),
14365 Distance::kilometers(2631.2f64),
14366 )),
14367 DynOrigin::Callisto => Ok((
14368 Distance::kilometers(2410.3f64),
14369 Distance::kilometers(2410.3f64),
14370 Distance::kilometers(2410.3f64),
14371 )),
14372 DynOrigin::Amalthea => Ok((
14373 Distance::kilometers(125f64),
14374 Distance::kilometers(73f64),
14375 Distance::kilometers(64f64),
14376 )),
14377 DynOrigin::Himalia => Ok((
14378 Distance::kilometers(85f64),
14379 Distance::kilometers(85f64),
14380 Distance::kilometers(85f64),
14381 )),
14382 DynOrigin::Elara => Ok((
14383 Distance::kilometers(40f64),
14384 Distance::kilometers(40f64),
14385 Distance::kilometers(40f64),
14386 )),
14387 DynOrigin::Pasiphae => Ok((
14388 Distance::kilometers(18f64),
14389 Distance::kilometers(18f64),
14390 Distance::kilometers(18f64),
14391 )),
14392 DynOrigin::Sinope => Ok((
14393 Distance::kilometers(14f64),
14394 Distance::kilometers(14f64),
14395 Distance::kilometers(14f64),
14396 )),
14397 DynOrigin::Lysithea => Ok((
14398 Distance::kilometers(12f64),
14399 Distance::kilometers(12f64),
14400 Distance::kilometers(12f64),
14401 )),
14402 DynOrigin::Carme => Ok((
14403 Distance::kilometers(15f64),
14404 Distance::kilometers(15f64),
14405 Distance::kilometers(15f64),
14406 )),
14407 DynOrigin::Ananke => Ok((
14408 Distance::kilometers(10f64),
14409 Distance::kilometers(10f64),
14410 Distance::kilometers(10f64),
14411 )),
14412 DynOrigin::Leda => Ok((
14413 Distance::kilometers(5f64),
14414 Distance::kilometers(5f64),
14415 Distance::kilometers(5f64),
14416 )),
14417 DynOrigin::Thebe => Ok((
14418 Distance::kilometers(58f64),
14419 Distance::kilometers(49f64),
14420 Distance::kilometers(42f64),
14421 )),
14422 DynOrigin::Adrastea => Ok((
14423 Distance::kilometers(10f64),
14424 Distance::kilometers(8f64),
14425 Distance::kilometers(7f64),
14426 )),
14427 DynOrigin::Metis => Ok((
14428 Distance::kilometers(30f64),
14429 Distance::kilometers(20f64),
14430 Distance::kilometers(17f64),
14431 )),
14432 DynOrigin::Mimas => Ok((
14433 Distance::kilometers(207.8f64),
14434 Distance::kilometers(196.7f64),
14435 Distance::kilometers(190.6f64),
14436 )),
14437 DynOrigin::Enceladus => Ok((
14438 Distance::kilometers(256.6f64),
14439 Distance::kilometers(251.4f64),
14440 Distance::kilometers(248.3f64),
14441 )),
14442 DynOrigin::Tethys => Ok((
14443 Distance::kilometers(538.4f64),
14444 Distance::kilometers(528.3f64),
14445 Distance::kilometers(526.3f64),
14446 )),
14447 DynOrigin::Dione => Ok((
14448 Distance::kilometers(563.4f64),
14449 Distance::kilometers(561.3f64),
14450 Distance::kilometers(559.6f64),
14451 )),
14452 DynOrigin::Rhea => Ok((
14453 Distance::kilometers(765f64),
14454 Distance::kilometers(763.1f64),
14455 Distance::kilometers(762.4f64),
14456 )),
14457 DynOrigin::Titan => Ok((
14458 Distance::kilometers(2575.15f64),
14459 Distance::kilometers(2574.78f64),
14460 Distance::kilometers(2574.47f64),
14461 )),
14462 DynOrigin::Hyperion => Ok((
14463 Distance::kilometers(180.1f64),
14464 Distance::kilometers(133f64),
14465 Distance::kilometers(102.7f64),
14466 )),
14467 DynOrigin::Iapetus => Ok((
14468 Distance::kilometers(745.7f64),
14469 Distance::kilometers(745.7f64),
14470 Distance::kilometers(712.1f64),
14471 )),
14472 DynOrigin::Phoebe => Ok((
14473 Distance::kilometers(109.4f64),
14474 Distance::kilometers(108.5f64),
14475 Distance::kilometers(101.8f64),
14476 )),
14477 DynOrigin::Janus => Ok((
14478 Distance::kilometers(101.7f64),
14479 Distance::kilometers(93f64),
14480 Distance::kilometers(76.3f64),
14481 )),
14482 DynOrigin::Epimetheus => Ok((
14483 Distance::kilometers(64.9f64),
14484 Distance::kilometers(57.3f64),
14485 Distance::kilometers(53f64),
14486 )),
14487 DynOrigin::Helene => Ok((
14488 Distance::kilometers(22.5f64),
14489 Distance::kilometers(19.6f64),
14490 Distance::kilometers(13.3f64),
14491 )),
14492 DynOrigin::Telesto => Ok((
14493 Distance::kilometers(16.3f64),
14494 Distance::kilometers(11.8f64),
14495 Distance::kilometers(9.8f64),
14496 )),
14497 DynOrigin::Calypso => Ok((
14498 Distance::kilometers(15.3f64),
14499 Distance::kilometers(9.3f64),
14500 Distance::kilometers(6.3f64),
14501 )),
14502 DynOrigin::Atlas => Ok((
14503 Distance::kilometers(20.5f64),
14504 Distance::kilometers(17.8f64),
14505 Distance::kilometers(9.4f64),
14506 )),
14507 DynOrigin::Prometheus => Ok((
14508 Distance::kilometers(68.2f64),
14509 Distance::kilometers(41.6f64),
14510 Distance::kilometers(28.2f64),
14511 )),
14512 DynOrigin::Pandora => Ok((
14513 Distance::kilometers(52.2f64),
14514 Distance::kilometers(40.8f64),
14515 Distance::kilometers(31.5f64),
14516 )),
14517 DynOrigin::Pan => Ok((
14518 Distance::kilometers(17.2f64),
14519 Distance::kilometers(15.4f64),
14520 Distance::kilometers(10.4f64),
14521 )),
14522 DynOrigin::Methone => Ok((
14523 Distance::kilometers(1.94f64),
14524 Distance::kilometers(1.29f64),
14525 Distance::kilometers(1.21f64),
14526 )),
14527 DynOrigin::Pallene => Ok((
14528 Distance::kilometers(2.88f64),
14529 Distance::kilometers(2.08f64),
14530 Distance::kilometers(1.8f64),
14531 )),
14532 DynOrigin::Polydeuces => Ok((
14533 Distance::kilometers(1.5f64),
14534 Distance::kilometers(1.2f64),
14535 Distance::kilometers(1f64),
14536 )),
14537 DynOrigin::Daphnis => Ok((
14538 Distance::kilometers(4.6f64),
14539 Distance::kilometers(4.5f64),
14540 Distance::kilometers(2.8f64),
14541 )),
14542 DynOrigin::Anthe => Ok((
14543 Distance::kilometers(0.5f64),
14544 Distance::kilometers(0.5f64),
14545 Distance::kilometers(0.5f64),
14546 )),
14547 DynOrigin::Aegaeon => Ok((
14548 Distance::kilometers(0.7f64),
14549 Distance::kilometers(0.25f64),
14550 Distance::kilometers(0.2f64),
14551 )),
14552 DynOrigin::Ariel => Ok((
14553 Distance::kilometers(581.1f64),
14554 Distance::kilometers(577.9f64),
14555 Distance::kilometers(577.7f64),
14556 )),
14557 DynOrigin::Umbriel => Ok((
14558 Distance::kilometers(584.7f64),
14559 Distance::kilometers(584.7f64),
14560 Distance::kilometers(584.7f64),
14561 )),
14562 DynOrigin::Titania => Ok((
14563 Distance::kilometers(788.9f64),
14564 Distance::kilometers(788.9f64),
14565 Distance::kilometers(788.9f64),
14566 )),
14567 DynOrigin::Oberon => Ok((
14568 Distance::kilometers(761.4f64),
14569 Distance::kilometers(761.4f64),
14570 Distance::kilometers(761.4f64),
14571 )),
14572 DynOrigin::Miranda => Ok((
14573 Distance::kilometers(240.4f64),
14574 Distance::kilometers(234.2f64),
14575 Distance::kilometers(232.9f64),
14576 )),
14577 DynOrigin::Cordelia => Ok((
14578 Distance::kilometers(13f64),
14579 Distance::kilometers(13f64),
14580 Distance::kilometers(13f64),
14581 )),
14582 DynOrigin::Ophelia => Ok((
14583 Distance::kilometers(15f64),
14584 Distance::kilometers(15f64),
14585 Distance::kilometers(15f64),
14586 )),
14587 DynOrigin::Bianca => Ok((
14588 Distance::kilometers(21f64),
14589 Distance::kilometers(21f64),
14590 Distance::kilometers(21f64),
14591 )),
14592 DynOrigin::Cressida => Ok((
14593 Distance::kilometers(31f64),
14594 Distance::kilometers(31f64),
14595 Distance::kilometers(31f64),
14596 )),
14597 DynOrigin::Desdemona => Ok((
14598 Distance::kilometers(27f64),
14599 Distance::kilometers(27f64),
14600 Distance::kilometers(27f64),
14601 )),
14602 DynOrigin::Juliet => Ok((
14603 Distance::kilometers(42f64),
14604 Distance::kilometers(42f64),
14605 Distance::kilometers(42f64),
14606 )),
14607 DynOrigin::Portia => Ok((
14608 Distance::kilometers(54f64),
14609 Distance::kilometers(54f64),
14610 Distance::kilometers(54f64),
14611 )),
14612 DynOrigin::Rosalind => Ok((
14613 Distance::kilometers(27f64),
14614 Distance::kilometers(27f64),
14615 Distance::kilometers(27f64),
14616 )),
14617 DynOrigin::Belinda => Ok((
14618 Distance::kilometers(33f64),
14619 Distance::kilometers(33f64),
14620 Distance::kilometers(33f64),
14621 )),
14622 DynOrigin::Puck => Ok((
14623 Distance::kilometers(77f64),
14624 Distance::kilometers(77f64),
14625 Distance::kilometers(77f64),
14626 )),
14627 DynOrigin::Triton => Ok((
14628 Distance::kilometers(1352.6f64),
14629 Distance::kilometers(1352.6f64),
14630 Distance::kilometers(1352.6f64),
14631 )),
14632 DynOrigin::Nereid => Ok((
14633 Distance::kilometers(170f64),
14634 Distance::kilometers(170f64),
14635 Distance::kilometers(170f64),
14636 )),
14637 DynOrigin::Naiad => Ok((
14638 Distance::kilometers(29f64),
14639 Distance::kilometers(29f64),
14640 Distance::kilometers(29f64),
14641 )),
14642 DynOrigin::Thalassa => Ok((
14643 Distance::kilometers(40f64),
14644 Distance::kilometers(40f64),
14645 Distance::kilometers(40f64),
14646 )),
14647 DynOrigin::Despina => Ok((
14648 Distance::kilometers(74f64),
14649 Distance::kilometers(74f64),
14650 Distance::kilometers(74f64),
14651 )),
14652 DynOrigin::Galatea => Ok((
14653 Distance::kilometers(79f64),
14654 Distance::kilometers(79f64),
14655 Distance::kilometers(79f64),
14656 )),
14657 DynOrigin::Larissa => Ok((
14658 Distance::kilometers(96f64),
14659 Distance::kilometers(96f64),
14660 Distance::kilometers(96f64),
14661 )),
14662 DynOrigin::Proteus => Ok((
14663 Distance::kilometers(218f64),
14664 Distance::kilometers(208f64),
14665 Distance::kilometers(201f64),
14666 )),
14667 DynOrigin::Charon => Ok((
14668 Distance::kilometers(606f64),
14669 Distance::kilometers(606f64),
14670 Distance::kilometers(606f64),
14671 )),
14672 DynOrigin::Gaspra => Ok((
14673 Distance::kilometers(9.1f64),
14674 Distance::kilometers(5.2f64),
14675 Distance::kilometers(4.4f64),
14676 )),
14677 DynOrigin::Ida => Ok((
14678 Distance::kilometers(26.8f64),
14679 Distance::kilometers(12f64),
14680 Distance::kilometers(7.6f64),
14681 )),
14682 DynOrigin::Ceres => Ok((
14683 Distance::kilometers(487.3f64),
14684 Distance::kilometers(487.3f64),
14685 Distance::kilometers(446f64),
14686 )),
14687 DynOrigin::Vesta => Ok((
14688 Distance::kilometers(289f64),
14689 Distance::kilometers(280f64),
14690 Distance::kilometers(229f64),
14691 )),
14692 DynOrigin::Psyche => Ok((
14693 Distance::kilometers(139.5f64),
14694 Distance::kilometers(116f64),
14695 Distance::kilometers(94.5f64),
14696 )),
14697 DynOrigin::Lutetia => Ok((
14698 Distance::kilometers(62f64),
14699 Distance::kilometers(50.5f64),
14700 Distance::kilometers(46.5f64),
14701 )),
14702 DynOrigin::Eros => Ok((
14703 Distance::kilometers(17f64),
14704 Distance::kilometers(5.5f64),
14705 Distance::kilometers(5.5f64),
14706 )),
14707 DynOrigin::Davida => Ok((
14708 Distance::kilometers(180f64),
14709 Distance::kilometers(147f64),
14710 Distance::kilometers(127f64),
14711 )),
14712 DynOrigin::Mathilde => Ok((
14713 Distance::kilometers(33f64),
14714 Distance::kilometers(24f64),
14715 Distance::kilometers(23f64),
14716 )),
14717 DynOrigin::Steins => Ok((
14718 Distance::kilometers(3.24f64),
14719 Distance::kilometers(2.73f64),
14720 Distance::kilometers(2.04f64),
14721 )),
14722 DynOrigin::Toutatis => Ok((
14723 Distance::kilometers(2.13f64),
14724 Distance::kilometers(1.015f64),
14725 Distance::kilometers(0.85f64),
14726 )),
14727 DynOrigin::Itokawa => Ok((
14728 Distance::kilometers(0.268f64),
14729 Distance::kilometers(0.147f64),
14730 Distance::kilometers(0.104f64),
14731 )),
14732 _ => Err(UndefinedOriginPropertyError {
14733 origin: self.to_string(),
14734 prop: "radii".to_string(),
14735 }),
14736 }
14737 }
14738}
14739impl TrySpheroid for DynOrigin {
14740 fn try_polar_radius(&self) -> Result<Distance, UndefinedOriginPropertyError> {
14741 match self {
14742 DynOrigin::Sun => Ok(Distance::kilometers(695700f64)),
14743 DynOrigin::Mercury => Ok(Distance::kilometers(2438.26f64)),
14744 DynOrigin::Venus => Ok(Distance::kilometers(6051.8f64)),
14745 DynOrigin::Earth => Ok(Distance::kilometers(6356.7519f64)),
14746 DynOrigin::Mars => Ok(Distance::kilometers(3376.2f64)),
14747 DynOrigin::Jupiter => Ok(Distance::kilometers(66854f64)),
14748 DynOrigin::Saturn => Ok(Distance::kilometers(54364f64)),
14749 DynOrigin::Uranus => Ok(Distance::kilometers(24973f64)),
14750 DynOrigin::Neptune => Ok(Distance::kilometers(24341f64)),
14751 DynOrigin::Pluto => Ok(Distance::kilometers(1188.3f64)),
14752 DynOrigin::Moon => Ok(Distance::kilometers(1737.4f64)),
14753 DynOrigin::Ganymede => Ok(Distance::kilometers(2631.2f64)),
14754 DynOrigin::Callisto => Ok(Distance::kilometers(2410.3f64)),
14755 DynOrigin::Himalia => Ok(Distance::kilometers(85f64)),
14756 DynOrigin::Elara => Ok(Distance::kilometers(40f64)),
14757 DynOrigin::Pasiphae => Ok(Distance::kilometers(18f64)),
14758 DynOrigin::Sinope => Ok(Distance::kilometers(14f64)),
14759 DynOrigin::Lysithea => Ok(Distance::kilometers(12f64)),
14760 DynOrigin::Carme => Ok(Distance::kilometers(15f64)),
14761 DynOrigin::Ananke => Ok(Distance::kilometers(10f64)),
14762 DynOrigin::Leda => Ok(Distance::kilometers(5f64)),
14763 DynOrigin::Iapetus => Ok(Distance::kilometers(712.1f64)),
14764 DynOrigin::Anthe => Ok(Distance::kilometers(0.5f64)),
14765 DynOrigin::Umbriel => Ok(Distance::kilometers(584.7f64)),
14766 DynOrigin::Titania => Ok(Distance::kilometers(788.9f64)),
14767 DynOrigin::Oberon => Ok(Distance::kilometers(761.4f64)),
14768 DynOrigin::Cordelia => Ok(Distance::kilometers(13f64)),
14769 DynOrigin::Ophelia => Ok(Distance::kilometers(15f64)),
14770 DynOrigin::Bianca => Ok(Distance::kilometers(21f64)),
14771 DynOrigin::Cressida => Ok(Distance::kilometers(31f64)),
14772 DynOrigin::Desdemona => Ok(Distance::kilometers(27f64)),
14773 DynOrigin::Juliet => Ok(Distance::kilometers(42f64)),
14774 DynOrigin::Portia => Ok(Distance::kilometers(54f64)),
14775 DynOrigin::Rosalind => Ok(Distance::kilometers(27f64)),
14776 DynOrigin::Belinda => Ok(Distance::kilometers(33f64)),
14777 DynOrigin::Puck => Ok(Distance::kilometers(77f64)),
14778 DynOrigin::Triton => Ok(Distance::kilometers(1352.6f64)),
14779 DynOrigin::Nereid => Ok(Distance::kilometers(170f64)),
14780 DynOrigin::Naiad => Ok(Distance::kilometers(29f64)),
14781 DynOrigin::Thalassa => Ok(Distance::kilometers(40f64)),
14782 DynOrigin::Despina => Ok(Distance::kilometers(74f64)),
14783 DynOrigin::Galatea => Ok(Distance::kilometers(79f64)),
14784 DynOrigin::Larissa => Ok(Distance::kilometers(96f64)),
14785 DynOrigin::Charon => Ok(Distance::kilometers(606f64)),
14786 DynOrigin::Ceres => Ok(Distance::kilometers(446f64)),
14787 _ => Err(UndefinedOriginPropertyError {
14788 origin: self.to_string(),
14789 prop: "polar radius".to_string(),
14790 }),
14791 }
14792 }
14793 fn try_equatorial_radius(&self) -> Result<Distance, UndefinedOriginPropertyError> {
14794 match self {
14795 DynOrigin::Sun => Ok(Distance::kilometers(695700f64)),
14796 DynOrigin::Mercury => Ok(Distance::kilometers(2440.53f64)),
14797 DynOrigin::Venus => Ok(Distance::kilometers(6051.8f64)),
14798 DynOrigin::Earth => Ok(Distance::kilometers(6378.1366f64)),
14799 DynOrigin::Mars => Ok(Distance::kilometers(3396.19f64)),
14800 DynOrigin::Jupiter => Ok(Distance::kilometers(71492f64)),
14801 DynOrigin::Saturn => Ok(Distance::kilometers(60268f64)),
14802 DynOrigin::Uranus => Ok(Distance::kilometers(25559f64)),
14803 DynOrigin::Neptune => Ok(Distance::kilometers(24764f64)),
14804 DynOrigin::Pluto => Ok(Distance::kilometers(1188.3f64)),
14805 DynOrigin::Moon => Ok(Distance::kilometers(1737.4f64)),
14806 DynOrigin::Ganymede => Ok(Distance::kilometers(2631.2f64)),
14807 DynOrigin::Callisto => Ok(Distance::kilometers(2410.3f64)),
14808 DynOrigin::Himalia => Ok(Distance::kilometers(85f64)),
14809 DynOrigin::Elara => Ok(Distance::kilometers(40f64)),
14810 DynOrigin::Pasiphae => Ok(Distance::kilometers(18f64)),
14811 DynOrigin::Sinope => Ok(Distance::kilometers(14f64)),
14812 DynOrigin::Lysithea => Ok(Distance::kilometers(12f64)),
14813 DynOrigin::Carme => Ok(Distance::kilometers(15f64)),
14814 DynOrigin::Ananke => Ok(Distance::kilometers(10f64)),
14815 DynOrigin::Leda => Ok(Distance::kilometers(5f64)),
14816 DynOrigin::Iapetus => Ok(Distance::kilometers(745.7f64)),
14817 DynOrigin::Anthe => Ok(Distance::kilometers(0.5f64)),
14818 DynOrigin::Umbriel => Ok(Distance::kilometers(584.7f64)),
14819 DynOrigin::Titania => Ok(Distance::kilometers(788.9f64)),
14820 DynOrigin::Oberon => Ok(Distance::kilometers(761.4f64)),
14821 DynOrigin::Cordelia => Ok(Distance::kilometers(13f64)),
14822 DynOrigin::Ophelia => Ok(Distance::kilometers(15f64)),
14823 DynOrigin::Bianca => Ok(Distance::kilometers(21f64)),
14824 DynOrigin::Cressida => Ok(Distance::kilometers(31f64)),
14825 DynOrigin::Desdemona => Ok(Distance::kilometers(27f64)),
14826 DynOrigin::Juliet => Ok(Distance::kilometers(42f64)),
14827 DynOrigin::Portia => Ok(Distance::kilometers(54f64)),
14828 DynOrigin::Rosalind => Ok(Distance::kilometers(27f64)),
14829 DynOrigin::Belinda => Ok(Distance::kilometers(33f64)),
14830 DynOrigin::Puck => Ok(Distance::kilometers(77f64)),
14831 DynOrigin::Triton => Ok(Distance::kilometers(1352.6f64)),
14832 DynOrigin::Nereid => Ok(Distance::kilometers(170f64)),
14833 DynOrigin::Naiad => Ok(Distance::kilometers(29f64)),
14834 DynOrigin::Thalassa => Ok(Distance::kilometers(40f64)),
14835 DynOrigin::Despina => Ok(Distance::kilometers(74f64)),
14836 DynOrigin::Galatea => Ok(Distance::kilometers(79f64)),
14837 DynOrigin::Larissa => Ok(Distance::kilometers(96f64)),
14838 DynOrigin::Charon => Ok(Distance::kilometers(606f64)),
14839 DynOrigin::Ceres => Ok(Distance::kilometers(487.3f64)),
14840 _ => Err(UndefinedOriginPropertyError {
14841 origin: self.to_string(),
14842 prop: "equatorial radius".to_string(),
14843 }),
14844 }
14845 }
14846}
14847impl TryRotationalElements for DynOrigin {
14848 fn try_rotational_elements(&self, t: f64) -> Result<Elements, UndefinedOriginPropertyError> {
14849 match self {
14850 DynOrigin::Sun => Ok(Sun.rotational_elements(t)),
14851 DynOrigin::Mercury => Ok(Mercury.rotational_elements(t)),
14852 DynOrigin::Venus => Ok(Venus.rotational_elements(t)),
14853 DynOrigin::Earth => Ok(Earth.rotational_elements(t)),
14854 DynOrigin::Mars => Ok(Mars.rotational_elements(t)),
14855 DynOrigin::Jupiter => Ok(Jupiter.rotational_elements(t)),
14856 DynOrigin::Saturn => Ok(Saturn.rotational_elements(t)),
14857 DynOrigin::Uranus => Ok(Uranus.rotational_elements(t)),
14858 DynOrigin::Neptune => Ok(Neptune.rotational_elements(t)),
14859 DynOrigin::Pluto => Ok(Pluto.rotational_elements(t)),
14860 DynOrigin::Moon => Ok(Moon.rotational_elements(t)),
14861 DynOrigin::Phobos => Ok(Phobos.rotational_elements(t)),
14862 DynOrigin::Deimos => Ok(Deimos.rotational_elements(t)),
14863 DynOrigin::Io => Ok(Io.rotational_elements(t)),
14864 DynOrigin::Europa => Ok(Europa.rotational_elements(t)),
14865 DynOrigin::Ganymede => Ok(Ganymede.rotational_elements(t)),
14866 DynOrigin::Callisto => Ok(Callisto.rotational_elements(t)),
14867 DynOrigin::Amalthea => Ok(Amalthea.rotational_elements(t)),
14868 DynOrigin::Thebe => Ok(Thebe.rotational_elements(t)),
14869 DynOrigin::Adrastea => Ok(Adrastea.rotational_elements(t)),
14870 DynOrigin::Metis => Ok(Metis.rotational_elements(t)),
14871 DynOrigin::Mimas => Ok(Mimas.rotational_elements(t)),
14872 DynOrigin::Enceladus => Ok(Enceladus.rotational_elements(t)),
14873 DynOrigin::Tethys => Ok(Tethys.rotational_elements(t)),
14874 DynOrigin::Dione => Ok(Dione.rotational_elements(t)),
14875 DynOrigin::Rhea => Ok(Rhea.rotational_elements(t)),
14876 DynOrigin::Titan => Ok(Titan.rotational_elements(t)),
14877 DynOrigin::Iapetus => Ok(Iapetus.rotational_elements(t)),
14878 DynOrigin::Phoebe => Ok(Phoebe.rotational_elements(t)),
14879 DynOrigin::Janus => Ok(Janus.rotational_elements(t)),
14880 DynOrigin::Epimetheus => Ok(Epimetheus.rotational_elements(t)),
14881 DynOrigin::Helene => Ok(Helene.rotational_elements(t)),
14882 DynOrigin::Telesto => Ok(Telesto.rotational_elements(t)),
14883 DynOrigin::Calypso => Ok(Calypso.rotational_elements(t)),
14884 DynOrigin::Atlas => Ok(Atlas.rotational_elements(t)),
14885 DynOrigin::Prometheus => Ok(Prometheus.rotational_elements(t)),
14886 DynOrigin::Pandora => Ok(Pandora.rotational_elements(t)),
14887 DynOrigin::Pan => Ok(Pan.rotational_elements(t)),
14888 DynOrigin::Ariel => Ok(Ariel.rotational_elements(t)),
14889 DynOrigin::Umbriel => Ok(Umbriel.rotational_elements(t)),
14890 DynOrigin::Titania => Ok(Titania.rotational_elements(t)),
14891 DynOrigin::Oberon => Ok(Oberon.rotational_elements(t)),
14892 DynOrigin::Miranda => Ok(Miranda.rotational_elements(t)),
14893 DynOrigin::Cordelia => Ok(Cordelia.rotational_elements(t)),
14894 DynOrigin::Ophelia => Ok(Ophelia.rotational_elements(t)),
14895 DynOrigin::Bianca => Ok(Bianca.rotational_elements(t)),
14896 DynOrigin::Cressida => Ok(Cressida.rotational_elements(t)),
14897 DynOrigin::Desdemona => Ok(Desdemona.rotational_elements(t)),
14898 DynOrigin::Juliet => Ok(Juliet.rotational_elements(t)),
14899 DynOrigin::Portia => Ok(Portia.rotational_elements(t)),
14900 DynOrigin::Rosalind => Ok(Rosalind.rotational_elements(t)),
14901 DynOrigin::Belinda => Ok(Belinda.rotational_elements(t)),
14902 DynOrigin::Puck => Ok(Puck.rotational_elements(t)),
14903 DynOrigin::Triton => Ok(Triton.rotational_elements(t)),
14904 DynOrigin::Naiad => Ok(Naiad.rotational_elements(t)),
14905 DynOrigin::Thalassa => Ok(Thalassa.rotational_elements(t)),
14906 DynOrigin::Despina => Ok(Despina.rotational_elements(t)),
14907 DynOrigin::Galatea => Ok(Galatea.rotational_elements(t)),
14908 DynOrigin::Larissa => Ok(Larissa.rotational_elements(t)),
14909 DynOrigin::Proteus => Ok(Proteus.rotational_elements(t)),
14910 DynOrigin::Charon => Ok(Charon.rotational_elements(t)),
14911 DynOrigin::Gaspra => Ok(Gaspra.rotational_elements(t)),
14912 DynOrigin::Ida => Ok(Ida.rotational_elements(t)),
14913 DynOrigin::Ceres => Ok(Ceres.rotational_elements(t)),
14914 DynOrigin::Pallas => Ok(Pallas.rotational_elements(t)),
14915 DynOrigin::Vesta => Ok(Vesta.rotational_elements(t)),
14916 DynOrigin::Lutetia => Ok(Lutetia.rotational_elements(t)),
14917 DynOrigin::Eros => Ok(Eros.rotational_elements(t)),
14918 DynOrigin::Davida => Ok(Davida.rotational_elements(t)),
14919 DynOrigin::Steins => Ok(Steins.rotational_elements(t)),
14920 DynOrigin::Itokawa => Ok(Itokawa.rotational_elements(t)),
14921 _ => Err(UndefinedOriginPropertyError {
14922 origin: self.to_string(),
14923 prop: "rotational elements".to_string(),
14924 }),
14925 }
14926 }
14927 fn try_rotational_element_rates(
14928 &self,
14929 t: f64,
14930 ) -> Result<Elements, UndefinedOriginPropertyError> {
14931 match self {
14932 DynOrigin::Sun => Ok(Sun.rotational_element_rates(t)),
14933 DynOrigin::Mercury => Ok(Mercury.rotational_element_rates(t)),
14934 DynOrigin::Venus => Ok(Venus.rotational_element_rates(t)),
14935 DynOrigin::Earth => Ok(Earth.rotational_element_rates(t)),
14936 DynOrigin::Mars => Ok(Mars.rotational_element_rates(t)),
14937 DynOrigin::Jupiter => Ok(Jupiter.rotational_element_rates(t)),
14938 DynOrigin::Saturn => Ok(Saturn.rotational_element_rates(t)),
14939 DynOrigin::Uranus => Ok(Uranus.rotational_element_rates(t)),
14940 DynOrigin::Neptune => Ok(Neptune.rotational_element_rates(t)),
14941 DynOrigin::Pluto => Ok(Pluto.rotational_element_rates(t)),
14942 DynOrigin::Moon => Ok(Moon.rotational_element_rates(t)),
14943 DynOrigin::Phobos => Ok(Phobos.rotational_element_rates(t)),
14944 DynOrigin::Deimos => Ok(Deimos.rotational_element_rates(t)),
14945 DynOrigin::Io => Ok(Io.rotational_element_rates(t)),
14946 DynOrigin::Europa => Ok(Europa.rotational_element_rates(t)),
14947 DynOrigin::Ganymede => Ok(Ganymede.rotational_element_rates(t)),
14948 DynOrigin::Callisto => Ok(Callisto.rotational_element_rates(t)),
14949 DynOrigin::Amalthea => Ok(Amalthea.rotational_element_rates(t)),
14950 DynOrigin::Thebe => Ok(Thebe.rotational_element_rates(t)),
14951 DynOrigin::Adrastea => Ok(Adrastea.rotational_element_rates(t)),
14952 DynOrigin::Metis => Ok(Metis.rotational_element_rates(t)),
14953 DynOrigin::Mimas => Ok(Mimas.rotational_element_rates(t)),
14954 DynOrigin::Enceladus => Ok(Enceladus.rotational_element_rates(t)),
14955 DynOrigin::Tethys => Ok(Tethys.rotational_element_rates(t)),
14956 DynOrigin::Dione => Ok(Dione.rotational_element_rates(t)),
14957 DynOrigin::Rhea => Ok(Rhea.rotational_element_rates(t)),
14958 DynOrigin::Titan => Ok(Titan.rotational_element_rates(t)),
14959 DynOrigin::Iapetus => Ok(Iapetus.rotational_element_rates(t)),
14960 DynOrigin::Phoebe => Ok(Phoebe.rotational_element_rates(t)),
14961 DynOrigin::Janus => Ok(Janus.rotational_element_rates(t)),
14962 DynOrigin::Epimetheus => Ok(Epimetheus.rotational_element_rates(t)),
14963 DynOrigin::Helene => Ok(Helene.rotational_element_rates(t)),
14964 DynOrigin::Telesto => Ok(Telesto.rotational_element_rates(t)),
14965 DynOrigin::Calypso => Ok(Calypso.rotational_element_rates(t)),
14966 DynOrigin::Atlas => Ok(Atlas.rotational_element_rates(t)),
14967 DynOrigin::Prometheus => Ok(Prometheus.rotational_element_rates(t)),
14968 DynOrigin::Pandora => Ok(Pandora.rotational_element_rates(t)),
14969 DynOrigin::Pan => Ok(Pan.rotational_element_rates(t)),
14970 DynOrigin::Ariel => Ok(Ariel.rotational_element_rates(t)),
14971 DynOrigin::Umbriel => Ok(Umbriel.rotational_element_rates(t)),
14972 DynOrigin::Titania => Ok(Titania.rotational_element_rates(t)),
14973 DynOrigin::Oberon => Ok(Oberon.rotational_element_rates(t)),
14974 DynOrigin::Miranda => Ok(Miranda.rotational_element_rates(t)),
14975 DynOrigin::Cordelia => Ok(Cordelia.rotational_element_rates(t)),
14976 DynOrigin::Ophelia => Ok(Ophelia.rotational_element_rates(t)),
14977 DynOrigin::Bianca => Ok(Bianca.rotational_element_rates(t)),
14978 DynOrigin::Cressida => Ok(Cressida.rotational_element_rates(t)),
14979 DynOrigin::Desdemona => Ok(Desdemona.rotational_element_rates(t)),
14980 DynOrigin::Juliet => Ok(Juliet.rotational_element_rates(t)),
14981 DynOrigin::Portia => Ok(Portia.rotational_element_rates(t)),
14982 DynOrigin::Rosalind => Ok(Rosalind.rotational_element_rates(t)),
14983 DynOrigin::Belinda => Ok(Belinda.rotational_element_rates(t)),
14984 DynOrigin::Puck => Ok(Puck.rotational_element_rates(t)),
14985 DynOrigin::Triton => Ok(Triton.rotational_element_rates(t)),
14986 DynOrigin::Naiad => Ok(Naiad.rotational_element_rates(t)),
14987 DynOrigin::Thalassa => Ok(Thalassa.rotational_element_rates(t)),
14988 DynOrigin::Despina => Ok(Despina.rotational_element_rates(t)),
14989 DynOrigin::Galatea => Ok(Galatea.rotational_element_rates(t)),
14990 DynOrigin::Larissa => Ok(Larissa.rotational_element_rates(t)),
14991 DynOrigin::Proteus => Ok(Proteus.rotational_element_rates(t)),
14992 DynOrigin::Charon => Ok(Charon.rotational_element_rates(t)),
14993 DynOrigin::Gaspra => Ok(Gaspra.rotational_element_rates(t)),
14994 DynOrigin::Ida => Ok(Ida.rotational_element_rates(t)),
14995 DynOrigin::Ceres => Ok(Ceres.rotational_element_rates(t)),
14996 DynOrigin::Pallas => Ok(Pallas.rotational_element_rates(t)),
14997 DynOrigin::Vesta => Ok(Vesta.rotational_element_rates(t)),
14998 DynOrigin::Lutetia => Ok(Lutetia.rotational_element_rates(t)),
14999 DynOrigin::Eros => Ok(Eros.rotational_element_rates(t)),
15000 DynOrigin::Davida => Ok(Davida.rotational_element_rates(t)),
15001 DynOrigin::Steins => Ok(Steins.rotational_element_rates(t)),
15002 DynOrigin::Itokawa => Ok(Itokawa.rotational_element_rates(t)),
15003 _ => Err(UndefinedOriginPropertyError {
15004 origin: self.to_string(),
15005 prop: "rotational element rates".to_string(),
15006 }),
15007 }
15008 }
15009}
15010#[cfg(test)]
15011#[allow(clippy::approx_constant)]
15012mod tests {
15013 use crate::*;
15014 #[test]
15015 fn test_origin_10() {
15016 assert_eq!(Sun.id().0, 10i32);
15017 assert_eq!(Sun.to_string(), "Sun");
15018 assert_eq!(DynOrigin::from(Sun), DynOrigin::Sun);
15019 }
15020 #[test]
15021 fn test_point_mass_10() {
15022 assert_eq!(
15023 Sun.gravitational_parameter(),
15024 GravitationalParameter::km3_per_s2(132712440041.27942f64)
15025 );
15026 assert_eq!(
15027 DynOrigin::Sun.try_gravitational_parameter(),
15028 Ok(GravitationalParameter::km3_per_s2(132712440041.27942f64))
15029 );
15030 }
15031 #[test]
15032 fn test_mean_radius_10() {
15033 assert!(DynOrigin::Sun.try_mean_radius().is_err());
15034 }
15035 #[test]
15036 fn test_spheroid_10() {
15037 assert_eq!(Sun.polar_radius(), Distance::kilometers(695700f64));
15038 assert_eq!(
15039 DynOrigin::Sun.try_polar_radius(),
15040 Ok(Distance::kilometers(695700f64))
15041 );
15042 assert_eq!(Sun.equatorial_radius(), Distance::kilometers(695700f64));
15043 assert_eq!(
15044 DynOrigin::Sun.try_equatorial_radius(),
15045 Ok(Distance::kilometers(695700f64))
15046 );
15047 }
15048 #[test]
15049 fn test_tri_axial_10() {
15050 assert_eq!(
15051 Sun.radii(),
15052 (
15053 Distance::kilometers(695700f64),
15054 Distance::kilometers(695700f64),
15055 Distance::kilometers(695700f64)
15056 )
15057 );
15058 assert_eq!(
15059 DynOrigin::Sun.try_radii(),
15060 Ok((
15061 Distance::kilometers(695700f64),
15062 Distance::kilometers(695700f64),
15063 Distance::kilometers(695700f64)
15064 ))
15065 );
15066 }
15067 #[test]
15068 fn test_origin_199() {
15069 assert_eq!(Mercury.id().0, 199i32);
15070 assert_eq!(Mercury.to_string(), "Mercury");
15071 assert_eq!(DynOrigin::from(Mercury), DynOrigin::Mercury);
15072 }
15073 #[test]
15074 fn test_point_mass_199() {
15075 assert_eq!(
15076 Mercury.gravitational_parameter(),
15077 GravitationalParameter::km3_per_s2(22031.868551400003f64)
15078 );
15079 assert_eq!(
15080 DynOrigin::Mercury.try_gravitational_parameter(),
15081 Ok(GravitationalParameter::km3_per_s2(22031.868551400003f64))
15082 );
15083 }
15084 #[test]
15085 fn test_mean_radius_199() {
15086 assert_eq!(Mercury.mean_radius(), Distance::kilometers(2439.4f64));
15087 assert_eq!(
15088 DynOrigin::Mercury.try_mean_radius(),
15089 Ok(Distance::kilometers(2439.4f64))
15090 );
15091 }
15092 #[test]
15093 fn test_spheroid_199() {
15094 assert_eq!(Mercury.polar_radius(), Distance::kilometers(2438.26f64));
15095 assert_eq!(
15096 DynOrigin::Mercury.try_polar_radius(),
15097 Ok(Distance::kilometers(2438.26f64))
15098 );
15099 assert_eq!(
15100 Mercury.equatorial_radius(),
15101 Distance::kilometers(2440.53f64)
15102 );
15103 assert_eq!(
15104 DynOrigin::Mercury.try_equatorial_radius(),
15105 Ok(Distance::kilometers(2440.53f64))
15106 );
15107 }
15108 #[test]
15109 fn test_tri_axial_199() {
15110 assert_eq!(
15111 Mercury.radii(),
15112 (
15113 Distance::kilometers(2440.53f64),
15114 Distance::kilometers(2440.53f64),
15115 Distance::kilometers(2438.26f64)
15116 )
15117 );
15118 assert_eq!(
15119 DynOrigin::Mercury.try_radii(),
15120 Ok((
15121 Distance::kilometers(2440.53f64),
15122 Distance::kilometers(2440.53f64),
15123 Distance::kilometers(2438.26f64)
15124 ))
15125 );
15126 }
15127 #[test]
15128 fn test_origin_299() {
15129 assert_eq!(Venus.id().0, 299i32);
15130 assert_eq!(Venus.to_string(), "Venus");
15131 assert_eq!(DynOrigin::from(Venus), DynOrigin::Venus);
15132 }
15133 #[test]
15134 fn test_point_mass_299() {
15135 assert_eq!(
15136 Venus.gravitational_parameter(),
15137 GravitationalParameter::km3_per_s2(324858.592f64)
15138 );
15139 assert_eq!(
15140 DynOrigin::Venus.try_gravitational_parameter(),
15141 Ok(GravitationalParameter::km3_per_s2(324858.592f64))
15142 );
15143 }
15144 #[test]
15145 fn test_mean_radius_299() {
15146 assert_eq!(Venus.mean_radius(), Distance::kilometers(6051.8f64));
15147 assert_eq!(
15148 DynOrigin::Venus.try_mean_radius(),
15149 Ok(Distance::kilometers(6051.8f64))
15150 );
15151 }
15152 #[test]
15153 fn test_spheroid_299() {
15154 assert_eq!(Venus.polar_radius(), Distance::kilometers(6051.8f64));
15155 assert_eq!(
15156 DynOrigin::Venus.try_polar_radius(),
15157 Ok(Distance::kilometers(6051.8f64))
15158 );
15159 assert_eq!(Venus.equatorial_radius(), Distance::kilometers(6051.8f64));
15160 assert_eq!(
15161 DynOrigin::Venus.try_equatorial_radius(),
15162 Ok(Distance::kilometers(6051.8f64))
15163 );
15164 }
15165 #[test]
15166 fn test_tri_axial_299() {
15167 assert_eq!(
15168 Venus.radii(),
15169 (
15170 Distance::kilometers(6051.8f64),
15171 Distance::kilometers(6051.8f64),
15172 Distance::kilometers(6051.8f64)
15173 )
15174 );
15175 assert_eq!(
15176 DynOrigin::Venus.try_radii(),
15177 Ok((
15178 Distance::kilometers(6051.8f64),
15179 Distance::kilometers(6051.8f64),
15180 Distance::kilometers(6051.8f64)
15181 ))
15182 );
15183 }
15184 #[test]
15185 fn test_origin_399() {
15186 assert_eq!(Earth.id().0, 399i32);
15187 assert_eq!(Earth.to_string(), "Earth");
15188 assert_eq!(DynOrigin::from(Earth), DynOrigin::Earth);
15189 }
15190 #[test]
15191 fn test_point_mass_399() {
15192 assert_eq!(
15193 Earth.gravitational_parameter(),
15194 GravitationalParameter::km3_per_s2(398600.43550702266f64)
15195 );
15196 assert_eq!(
15197 DynOrigin::Earth.try_gravitational_parameter(),
15198 Ok(GravitationalParameter::km3_per_s2(398600.43550702266f64))
15199 );
15200 }
15201 #[test]
15202 fn test_mean_radius_399() {
15203 assert_eq!(Earth.mean_radius(), Distance::kilometers(6371.0084f64));
15204 assert_eq!(
15205 DynOrigin::Earth.try_mean_radius(),
15206 Ok(Distance::kilometers(6371.0084f64))
15207 );
15208 }
15209 #[test]
15210 fn test_spheroid_399() {
15211 assert_eq!(Earth.polar_radius(), Distance::kilometers(6356.7519f64));
15212 assert_eq!(
15213 DynOrigin::Earth.try_polar_radius(),
15214 Ok(Distance::kilometers(6356.7519f64))
15215 );
15216 assert_eq!(
15217 Earth.equatorial_radius(),
15218 Distance::kilometers(6378.1366f64)
15219 );
15220 assert_eq!(
15221 DynOrigin::Earth.try_equatorial_radius(),
15222 Ok(Distance::kilometers(6378.1366f64))
15223 );
15224 }
15225 #[test]
15226 fn test_tri_axial_399() {
15227 assert_eq!(
15228 Earth.radii(),
15229 (
15230 Distance::kilometers(6378.1366f64),
15231 Distance::kilometers(6378.1366f64),
15232 Distance::kilometers(6356.7519f64)
15233 )
15234 );
15235 assert_eq!(
15236 DynOrigin::Earth.try_radii(),
15237 Ok((
15238 Distance::kilometers(6378.1366f64),
15239 Distance::kilometers(6378.1366f64),
15240 Distance::kilometers(6356.7519f64)
15241 ))
15242 );
15243 }
15244 #[test]
15245 fn test_origin_499() {
15246 assert_eq!(Mars.id().0, 499i32);
15247 assert_eq!(Mars.to_string(), "Mars");
15248 assert_eq!(DynOrigin::from(Mars), DynOrigin::Mars);
15249 }
15250 #[test]
15251 fn test_point_mass_499() {
15252 assert_eq!(
15253 Mars.gravitational_parameter(),
15254 GravitationalParameter::km3_per_s2(42828.37362069909f64)
15255 );
15256 assert_eq!(
15257 DynOrigin::Mars.try_gravitational_parameter(),
15258 Ok(GravitationalParameter::km3_per_s2(42828.37362069909f64))
15259 );
15260 }
15261 #[test]
15262 fn test_mean_radius_499() {
15263 assert_eq!(Mars.mean_radius(), Distance::kilometers(3389.5f64));
15264 assert_eq!(
15265 DynOrigin::Mars.try_mean_radius(),
15266 Ok(Distance::kilometers(3389.5f64))
15267 );
15268 }
15269 #[test]
15270 fn test_spheroid_499() {
15271 assert_eq!(Mars.polar_radius(), Distance::kilometers(3376.2f64));
15272 assert_eq!(
15273 DynOrigin::Mars.try_polar_radius(),
15274 Ok(Distance::kilometers(3376.2f64))
15275 );
15276 assert_eq!(Mars.equatorial_radius(), Distance::kilometers(3396.19f64));
15277 assert_eq!(
15278 DynOrigin::Mars.try_equatorial_radius(),
15279 Ok(Distance::kilometers(3396.19f64))
15280 );
15281 }
15282 #[test]
15283 fn test_tri_axial_499() {
15284 assert_eq!(
15285 Mars.radii(),
15286 (
15287 Distance::kilometers(3396.19f64),
15288 Distance::kilometers(3396.19f64),
15289 Distance::kilometers(3376.2f64)
15290 )
15291 );
15292 assert_eq!(
15293 DynOrigin::Mars.try_radii(),
15294 Ok((
15295 Distance::kilometers(3396.19f64),
15296 Distance::kilometers(3396.19f64),
15297 Distance::kilometers(3376.2f64)
15298 ))
15299 );
15300 }
15301 #[test]
15302 fn test_origin_599() {
15303 assert_eq!(Jupiter.id().0, 599i32);
15304 assert_eq!(Jupiter.to_string(), "Jupiter");
15305 assert_eq!(DynOrigin::from(Jupiter), DynOrigin::Jupiter);
15306 }
15307 #[test]
15308 fn test_point_mass_599() {
15309 assert_eq!(
15310 Jupiter.gravitational_parameter(),
15311 GravitationalParameter::km3_per_s2(126686531.9003704f64)
15312 );
15313 assert_eq!(
15314 DynOrigin::Jupiter.try_gravitational_parameter(),
15315 Ok(GravitationalParameter::km3_per_s2(126686531.9003704f64))
15316 );
15317 }
15318 #[test]
15319 fn test_mean_radius_599() {
15320 assert_eq!(Jupiter.mean_radius(), Distance::kilometers(69911f64));
15321 assert_eq!(
15322 DynOrigin::Jupiter.try_mean_radius(),
15323 Ok(Distance::kilometers(69911f64))
15324 );
15325 }
15326 #[test]
15327 fn test_spheroid_599() {
15328 assert_eq!(Jupiter.polar_radius(), Distance::kilometers(66854f64));
15329 assert_eq!(
15330 DynOrigin::Jupiter.try_polar_radius(),
15331 Ok(Distance::kilometers(66854f64))
15332 );
15333 assert_eq!(Jupiter.equatorial_radius(), Distance::kilometers(71492f64));
15334 assert_eq!(
15335 DynOrigin::Jupiter.try_equatorial_radius(),
15336 Ok(Distance::kilometers(71492f64))
15337 );
15338 }
15339 #[test]
15340 fn test_tri_axial_599() {
15341 assert_eq!(
15342 Jupiter.radii(),
15343 (
15344 Distance::kilometers(71492f64),
15345 Distance::kilometers(71492f64),
15346 Distance::kilometers(66854f64)
15347 )
15348 );
15349 assert_eq!(
15350 DynOrigin::Jupiter.try_radii(),
15351 Ok((
15352 Distance::kilometers(71492f64),
15353 Distance::kilometers(71492f64),
15354 Distance::kilometers(66854f64)
15355 ))
15356 );
15357 }
15358 #[test]
15359 fn test_origin_699() {
15360 assert_eq!(Saturn.id().0, 699i32);
15361 assert_eq!(Saturn.to_string(), "Saturn");
15362 assert_eq!(DynOrigin::from(Saturn), DynOrigin::Saturn);
15363 }
15364 #[test]
15365 fn test_point_mass_699() {
15366 assert_eq!(
15367 Saturn.gravitational_parameter(),
15368 GravitationalParameter::km3_per_s2(37931206.23436167f64)
15369 );
15370 assert_eq!(
15371 DynOrigin::Saturn.try_gravitational_parameter(),
15372 Ok(GravitationalParameter::km3_per_s2(37931206.23436167f64))
15373 );
15374 }
15375 #[test]
15376 fn test_mean_radius_699() {
15377 assert_eq!(Saturn.mean_radius(), Distance::kilometers(58232f64));
15378 assert_eq!(
15379 DynOrigin::Saturn.try_mean_radius(),
15380 Ok(Distance::kilometers(58232f64))
15381 );
15382 }
15383 #[test]
15384 fn test_spheroid_699() {
15385 assert_eq!(Saturn.polar_radius(), Distance::kilometers(54364f64));
15386 assert_eq!(
15387 DynOrigin::Saturn.try_polar_radius(),
15388 Ok(Distance::kilometers(54364f64))
15389 );
15390 assert_eq!(Saturn.equatorial_radius(), Distance::kilometers(60268f64));
15391 assert_eq!(
15392 DynOrigin::Saturn.try_equatorial_radius(),
15393 Ok(Distance::kilometers(60268f64))
15394 );
15395 }
15396 #[test]
15397 fn test_tri_axial_699() {
15398 assert_eq!(
15399 Saturn.radii(),
15400 (
15401 Distance::kilometers(60268f64),
15402 Distance::kilometers(60268f64),
15403 Distance::kilometers(54364f64)
15404 )
15405 );
15406 assert_eq!(
15407 DynOrigin::Saturn.try_radii(),
15408 Ok((
15409 Distance::kilometers(60268f64),
15410 Distance::kilometers(60268f64),
15411 Distance::kilometers(54364f64)
15412 ))
15413 );
15414 }
15415 #[test]
15416 fn test_origin_799() {
15417 assert_eq!(Uranus.id().0, 799i32);
15418 assert_eq!(Uranus.to_string(), "Uranus");
15419 assert_eq!(DynOrigin::from(Uranus), DynOrigin::Uranus);
15420 }
15421 #[test]
15422 fn test_point_mass_799() {
15423 assert_eq!(
15424 Uranus.gravitational_parameter(),
15425 GravitationalParameter::km3_per_s2(5793951.256527211f64)
15426 );
15427 assert_eq!(
15428 DynOrigin::Uranus.try_gravitational_parameter(),
15429 Ok(GravitationalParameter::km3_per_s2(5793951.256527211f64))
15430 );
15431 }
15432 #[test]
15433 fn test_mean_radius_799() {
15434 assert_eq!(Uranus.mean_radius(), Distance::kilometers(25362f64));
15435 assert_eq!(
15436 DynOrigin::Uranus.try_mean_radius(),
15437 Ok(Distance::kilometers(25362f64))
15438 );
15439 }
15440 #[test]
15441 fn test_spheroid_799() {
15442 assert_eq!(Uranus.polar_radius(), Distance::kilometers(24973f64));
15443 assert_eq!(
15444 DynOrigin::Uranus.try_polar_radius(),
15445 Ok(Distance::kilometers(24973f64))
15446 );
15447 assert_eq!(Uranus.equatorial_radius(), Distance::kilometers(25559f64));
15448 assert_eq!(
15449 DynOrigin::Uranus.try_equatorial_radius(),
15450 Ok(Distance::kilometers(25559f64))
15451 );
15452 }
15453 #[test]
15454 fn test_tri_axial_799() {
15455 assert_eq!(
15456 Uranus.radii(),
15457 (
15458 Distance::kilometers(25559f64),
15459 Distance::kilometers(25559f64),
15460 Distance::kilometers(24973f64)
15461 )
15462 );
15463 assert_eq!(
15464 DynOrigin::Uranus.try_radii(),
15465 Ok((
15466 Distance::kilometers(25559f64),
15467 Distance::kilometers(25559f64),
15468 Distance::kilometers(24973f64)
15469 ))
15470 );
15471 }
15472 #[test]
15473 fn test_origin_899() {
15474 assert_eq!(Neptune.id().0, 899i32);
15475 assert_eq!(Neptune.to_string(), "Neptune");
15476 assert_eq!(DynOrigin::from(Neptune), DynOrigin::Neptune);
15477 }
15478 #[test]
15479 fn test_point_mass_899() {
15480 assert_eq!(
15481 Neptune.gravitational_parameter(),
15482 GravitationalParameter::km3_per_s2(6835103.145462294f64)
15483 );
15484 assert_eq!(
15485 DynOrigin::Neptune.try_gravitational_parameter(),
15486 Ok(GravitationalParameter::km3_per_s2(6835103.145462294f64))
15487 );
15488 }
15489 #[test]
15490 fn test_mean_radius_899() {
15491 assert_eq!(Neptune.mean_radius(), Distance::kilometers(24622f64));
15492 assert_eq!(
15493 DynOrigin::Neptune.try_mean_radius(),
15494 Ok(Distance::kilometers(24622f64))
15495 );
15496 }
15497 #[test]
15498 fn test_spheroid_899() {
15499 assert_eq!(Neptune.polar_radius(), Distance::kilometers(24341f64));
15500 assert_eq!(
15501 DynOrigin::Neptune.try_polar_radius(),
15502 Ok(Distance::kilometers(24341f64))
15503 );
15504 assert_eq!(Neptune.equatorial_radius(), Distance::kilometers(24764f64));
15505 assert_eq!(
15506 DynOrigin::Neptune.try_equatorial_radius(),
15507 Ok(Distance::kilometers(24764f64))
15508 );
15509 }
15510 #[test]
15511 fn test_tri_axial_899() {
15512 assert_eq!(
15513 Neptune.radii(),
15514 (
15515 Distance::kilometers(24764f64),
15516 Distance::kilometers(24764f64),
15517 Distance::kilometers(24341f64)
15518 )
15519 );
15520 assert_eq!(
15521 DynOrigin::Neptune.try_radii(),
15522 Ok((
15523 Distance::kilometers(24764f64),
15524 Distance::kilometers(24764f64),
15525 Distance::kilometers(24341f64)
15526 ))
15527 );
15528 }
15529 #[test]
15530 fn test_origin_999() {
15531 assert_eq!(Pluto.id().0, 999i32);
15532 assert_eq!(Pluto.to_string(), "Pluto");
15533 assert_eq!(DynOrigin::from(Pluto), DynOrigin::Pluto);
15534 }
15535 #[test]
15536 fn test_point_mass_999() {
15537 assert_eq!(
15538 Pluto.gravitational_parameter(),
15539 GravitationalParameter::km3_per_s2(869.6138177608748f64)
15540 );
15541 assert_eq!(
15542 DynOrigin::Pluto.try_gravitational_parameter(),
15543 Ok(GravitationalParameter::km3_per_s2(869.6138177608748f64))
15544 );
15545 }
15546 #[test]
15547 fn test_mean_radius_999() {
15548 assert_eq!(Pluto.mean_radius(), Distance::kilometers(1188.3f64));
15549 assert_eq!(
15550 DynOrigin::Pluto.try_mean_radius(),
15551 Ok(Distance::kilometers(1188.3f64))
15552 );
15553 }
15554 #[test]
15555 fn test_spheroid_999() {
15556 assert_eq!(Pluto.polar_radius(), Distance::kilometers(1188.3f64));
15557 assert_eq!(
15558 DynOrigin::Pluto.try_polar_radius(),
15559 Ok(Distance::kilometers(1188.3f64))
15560 );
15561 assert_eq!(Pluto.equatorial_radius(), Distance::kilometers(1188.3f64));
15562 assert_eq!(
15563 DynOrigin::Pluto.try_equatorial_radius(),
15564 Ok(Distance::kilometers(1188.3f64))
15565 );
15566 }
15567 #[test]
15568 fn test_tri_axial_999() {
15569 assert_eq!(
15570 Pluto.radii(),
15571 (
15572 Distance::kilometers(1188.3f64),
15573 Distance::kilometers(1188.3f64),
15574 Distance::kilometers(1188.3f64)
15575 )
15576 );
15577 assert_eq!(
15578 DynOrigin::Pluto.try_radii(),
15579 Ok((
15580 Distance::kilometers(1188.3f64),
15581 Distance::kilometers(1188.3f64),
15582 Distance::kilometers(1188.3f64)
15583 ))
15584 );
15585 }
15586 #[test]
15587 fn test_origin_0() {
15588 assert_eq!(SolarSystemBarycenter.id().0, 0i32);
15589 assert_eq!(SolarSystemBarycenter.to_string(), "Solar System Barycenter");
15590 assert_eq!(
15591 DynOrigin::from(SolarSystemBarycenter),
15592 DynOrigin::SolarSystemBarycenter
15593 );
15594 }
15595 #[test]
15596 fn test_point_mass_0() {
15597 assert_eq!(
15598 SolarSystemBarycenter.gravitational_parameter(),
15599 GravitationalParameter::km3_per_s2(132712440041.27942f64)
15600 );
15601 assert_eq!(
15602 DynOrigin::SolarSystemBarycenter.try_gravitational_parameter(),
15603 Ok(GravitationalParameter::km3_per_s2(132712440041.27942f64))
15604 );
15605 }
15606 #[test]
15607 fn test_origin_1() {
15608 assert_eq!(MercuryBarycenter.id().0, 1i32);
15609 assert_eq!(MercuryBarycenter.to_string(), "Mercury Barycenter");
15610 assert_eq!(
15611 DynOrigin::from(MercuryBarycenter),
15612 DynOrigin::MercuryBarycenter
15613 );
15614 }
15615 #[test]
15616 fn test_point_mass_1() {
15617 assert_eq!(
15618 MercuryBarycenter.gravitational_parameter(),
15619 GravitationalParameter::km3_per_s2(22031.868551400003f64)
15620 );
15621 assert_eq!(
15622 DynOrigin::MercuryBarycenter.try_gravitational_parameter(),
15623 Ok(GravitationalParameter::km3_per_s2(22031.868551400003f64))
15624 );
15625 }
15626 #[test]
15627 fn test_origin_2() {
15628 assert_eq!(VenusBarycenter.id().0, 2i32);
15629 assert_eq!(VenusBarycenter.to_string(), "Venus Barycenter");
15630 assert_eq!(DynOrigin::from(VenusBarycenter), DynOrigin::VenusBarycenter);
15631 }
15632 #[test]
15633 fn test_point_mass_2() {
15634 assert_eq!(
15635 VenusBarycenter.gravitational_parameter(),
15636 GravitationalParameter::km3_per_s2(324858.592f64)
15637 );
15638 assert_eq!(
15639 DynOrigin::VenusBarycenter.try_gravitational_parameter(),
15640 Ok(GravitationalParameter::km3_per_s2(324858.592f64))
15641 );
15642 }
15643 #[test]
15644 fn test_origin_3() {
15645 assert_eq!(EarthBarycenter.id().0, 3i32);
15646 assert_eq!(EarthBarycenter.to_string(), "Earth Barycenter");
15647 assert_eq!(DynOrigin::from(EarthBarycenter), DynOrigin::EarthBarycenter);
15648 }
15649 #[test]
15650 fn test_point_mass_3() {
15651 assert_eq!(
15652 EarthBarycenter.gravitational_parameter(),
15653 GravitationalParameter::km3_per_s2(403503.2356254802f64)
15654 );
15655 assert_eq!(
15656 DynOrigin::EarthBarycenter.try_gravitational_parameter(),
15657 Ok(GravitationalParameter::km3_per_s2(403503.2356254802f64))
15658 );
15659 }
15660 #[test]
15661 fn test_origin_4() {
15662 assert_eq!(MarsBarycenter.id().0, 4i32);
15663 assert_eq!(MarsBarycenter.to_string(), "Mars Barycenter");
15664 assert_eq!(DynOrigin::from(MarsBarycenter), DynOrigin::MarsBarycenter);
15665 }
15666 #[test]
15667 fn test_point_mass_4() {
15668 assert_eq!(
15669 MarsBarycenter.gravitational_parameter(),
15670 GravitationalParameter::km3_per_s2(42828.3758157561f64)
15671 );
15672 assert_eq!(
15673 DynOrigin::MarsBarycenter.try_gravitational_parameter(),
15674 Ok(GravitationalParameter::km3_per_s2(42828.3758157561f64))
15675 );
15676 }
15677 #[test]
15678 fn test_origin_5() {
15679 assert_eq!(JupiterBarycenter.id().0, 5i32);
15680 assert_eq!(JupiterBarycenter.to_string(), "Jupiter Barycenter");
15681 assert_eq!(
15682 DynOrigin::from(JupiterBarycenter),
15683 DynOrigin::JupiterBarycenter
15684 );
15685 }
15686 #[test]
15687 fn test_point_mass_5() {
15688 assert_eq!(
15689 JupiterBarycenter.gravitational_parameter(),
15690 GravitationalParameter::km3_per_s2(126712764.09999998f64)
15691 );
15692 assert_eq!(
15693 DynOrigin::JupiterBarycenter.try_gravitational_parameter(),
15694 Ok(GravitationalParameter::km3_per_s2(126712764.09999998f64))
15695 );
15696 }
15697 #[test]
15698 fn test_origin_6() {
15699 assert_eq!(SaturnBarycenter.id().0, 6i32);
15700 assert_eq!(SaturnBarycenter.to_string(), "Saturn Barycenter");
15701 assert_eq!(
15702 DynOrigin::from(SaturnBarycenter),
15703 DynOrigin::SaturnBarycenter
15704 );
15705 }
15706 #[test]
15707 fn test_point_mass_6() {
15708 assert_eq!(
15709 SaturnBarycenter.gravitational_parameter(),
15710 GravitationalParameter::km3_per_s2(37940584.8418f64)
15711 );
15712 assert_eq!(
15713 DynOrigin::SaturnBarycenter.try_gravitational_parameter(),
15714 Ok(GravitationalParameter::km3_per_s2(37940584.8418f64))
15715 );
15716 }
15717 #[test]
15718 fn test_origin_7() {
15719 assert_eq!(UranusBarycenter.id().0, 7i32);
15720 assert_eq!(UranusBarycenter.to_string(), "Uranus Barycenter");
15721 assert_eq!(
15722 DynOrigin::from(UranusBarycenter),
15723 DynOrigin::UranusBarycenter
15724 );
15725 }
15726 #[test]
15727 fn test_point_mass_7() {
15728 assert_eq!(
15729 UranusBarycenter.gravitational_parameter(),
15730 GravitationalParameter::km3_per_s2(5794556.3999999985f64)
15731 );
15732 assert_eq!(
15733 DynOrigin::UranusBarycenter.try_gravitational_parameter(),
15734 Ok(GravitationalParameter::km3_per_s2(5794556.3999999985f64))
15735 );
15736 }
15737 #[test]
15738 fn test_origin_8() {
15739 assert_eq!(NeptuneBarycenter.id().0, 8i32);
15740 assert_eq!(NeptuneBarycenter.to_string(), "Neptune Barycenter");
15741 assert_eq!(
15742 DynOrigin::from(NeptuneBarycenter),
15743 DynOrigin::NeptuneBarycenter
15744 );
15745 }
15746 #[test]
15747 fn test_point_mass_8() {
15748 assert_eq!(
15749 NeptuneBarycenter.gravitational_parameter(),
15750 GravitationalParameter::km3_per_s2(6836527.100580399f64)
15751 );
15752 assert_eq!(
15753 DynOrigin::NeptuneBarycenter.try_gravitational_parameter(),
15754 Ok(GravitationalParameter::km3_per_s2(6836527.100580399f64))
15755 );
15756 }
15757 #[test]
15758 fn test_origin_9() {
15759 assert_eq!(PlutoBarycenter.id().0, 9i32);
15760 assert_eq!(PlutoBarycenter.to_string(), "Pluto Barycenter");
15761 assert_eq!(DynOrigin::from(PlutoBarycenter), DynOrigin::PlutoBarycenter);
15762 }
15763 #[test]
15764 fn test_point_mass_9() {
15765 assert_eq!(
15766 PlutoBarycenter.gravitational_parameter(),
15767 GravitationalParameter::km3_per_s2(975.5f64)
15768 );
15769 assert_eq!(
15770 DynOrigin::PlutoBarycenter.try_gravitational_parameter(),
15771 Ok(GravitationalParameter::km3_per_s2(975.5f64))
15772 );
15773 }
15774 #[test]
15775 fn test_origin_301() {
15776 assert_eq!(Moon.id().0, 301i32);
15777 assert_eq!(Moon.to_string(), "Moon");
15778 assert_eq!(DynOrigin::from(Moon), DynOrigin::Moon);
15779 }
15780 #[test]
15781 fn test_point_mass_301() {
15782 assert_eq!(
15783 Moon.gravitational_parameter(),
15784 GravitationalParameter::km3_per_s2(4902.80011845755f64)
15785 );
15786 assert_eq!(
15787 DynOrigin::Moon.try_gravitational_parameter(),
15788 Ok(GravitationalParameter::km3_per_s2(4902.80011845755f64))
15789 );
15790 }
15791 #[test]
15792 fn test_mean_radius_301() {
15793 assert_eq!(Moon.mean_radius(), Distance::kilometers(1737.4f64));
15794 assert_eq!(
15795 DynOrigin::Moon.try_mean_radius(),
15796 Ok(Distance::kilometers(1737.4f64))
15797 );
15798 }
15799 #[test]
15800 fn test_spheroid_301() {
15801 assert_eq!(Moon.polar_radius(), Distance::kilometers(1737.4f64));
15802 assert_eq!(
15803 DynOrigin::Moon.try_polar_radius(),
15804 Ok(Distance::kilometers(1737.4f64))
15805 );
15806 assert_eq!(Moon.equatorial_radius(), Distance::kilometers(1737.4f64));
15807 assert_eq!(
15808 DynOrigin::Moon.try_equatorial_radius(),
15809 Ok(Distance::kilometers(1737.4f64))
15810 );
15811 }
15812 #[test]
15813 fn test_tri_axial_301() {
15814 assert_eq!(
15815 Moon.radii(),
15816 (
15817 Distance::kilometers(1737.4f64),
15818 Distance::kilometers(1737.4f64),
15819 Distance::kilometers(1737.4f64)
15820 )
15821 );
15822 assert_eq!(
15823 DynOrigin::Moon.try_radii(),
15824 Ok((
15825 Distance::kilometers(1737.4f64),
15826 Distance::kilometers(1737.4f64),
15827 Distance::kilometers(1737.4f64)
15828 ))
15829 );
15830 }
15831 #[test]
15832 fn test_origin_401() {
15833 assert_eq!(Phobos.id().0, 401i32);
15834 assert_eq!(Phobos.to_string(), "Phobos");
15835 assert_eq!(DynOrigin::from(Phobos), DynOrigin::Phobos);
15836 }
15837 #[test]
15838 fn test_point_mass_401() {
15839 assert_eq!(
15840 Phobos.gravitational_parameter(),
15841 GravitationalParameter::km3_per_s2(0.0007087546066894452f64)
15842 );
15843 assert_eq!(
15844 DynOrigin::Phobos.try_gravitational_parameter(),
15845 Ok(GravitationalParameter::km3_per_s2(0.0007087546066894452f64))
15846 );
15847 }
15848 #[test]
15849 fn test_mean_radius_401() {
15850 assert_eq!(Phobos.mean_radius(), Distance::kilometers(11.08f64));
15851 assert_eq!(
15852 DynOrigin::Phobos.try_mean_radius(),
15853 Ok(Distance::kilometers(11.08f64))
15854 );
15855 }
15856 #[test]
15857 fn test_spheroid_401() {
15858 assert!(DynOrigin::Phobos.try_polar_radius().is_err());
15859 assert!(DynOrigin::Phobos.try_equatorial_radius().is_err());
15860 }
15861 #[test]
15862 fn test_tri_axial_401() {
15863 assert_eq!(
15864 Phobos.radii(),
15865 (
15866 Distance::kilometers(13f64),
15867 Distance::kilometers(11.4f64),
15868 Distance::kilometers(9.1f64)
15869 )
15870 );
15871 assert_eq!(
15872 DynOrigin::Phobos.try_radii(),
15873 Ok((
15874 Distance::kilometers(13f64),
15875 Distance::kilometers(11.4f64),
15876 Distance::kilometers(9.1f64)
15877 ))
15878 );
15879 }
15880 #[test]
15881 fn test_origin_402() {
15882 assert_eq!(Deimos.id().0, 402i32);
15883 assert_eq!(Deimos.to_string(), "Deimos");
15884 assert_eq!(DynOrigin::from(Deimos), DynOrigin::Deimos);
15885 }
15886 #[test]
15887 fn test_point_mass_402() {
15888 assert_eq!(
15889 Deimos.gravitational_parameter(),
15890 GravitationalParameter::km3_per_s2(0.00009615569648120313f64)
15891 );
15892 assert_eq!(
15893 DynOrigin::Deimos.try_gravitational_parameter(),
15894 Ok(GravitationalParameter::km3_per_s2(
15895 0.00009615569648120313f64
15896 ))
15897 );
15898 }
15899 #[test]
15900 fn test_mean_radius_402() {
15901 assert_eq!(Deimos.mean_radius(), Distance::kilometers(6.2f64));
15902 assert_eq!(
15903 DynOrigin::Deimos.try_mean_radius(),
15904 Ok(Distance::kilometers(6.2f64))
15905 );
15906 }
15907 #[test]
15908 fn test_spheroid_402() {
15909 assert!(DynOrigin::Deimos.try_polar_radius().is_err());
15910 assert!(DynOrigin::Deimos.try_equatorial_radius().is_err());
15911 }
15912 #[test]
15913 fn test_tri_axial_402() {
15914 assert_eq!(
15915 Deimos.radii(),
15916 (
15917 Distance::kilometers(7.8f64),
15918 Distance::kilometers(6f64),
15919 Distance::kilometers(5.1f64)
15920 )
15921 );
15922 assert_eq!(
15923 DynOrigin::Deimos.try_radii(),
15924 Ok((
15925 Distance::kilometers(7.8f64),
15926 Distance::kilometers(6f64),
15927 Distance::kilometers(5.1f64)
15928 ))
15929 );
15930 }
15931 #[test]
15932 fn test_origin_501() {
15933 assert_eq!(Io.id().0, 501i32);
15934 assert_eq!(Io.to_string(), "Io");
15935 assert_eq!(DynOrigin::from(Io), DynOrigin::Io);
15936 }
15937 #[test]
15938 fn test_point_mass_501() {
15939 assert_eq!(
15940 Io.gravitational_parameter(),
15941 GravitationalParameter::km3_per_s2(5959.915466180539f64)
15942 );
15943 assert_eq!(
15944 DynOrigin::Io.try_gravitational_parameter(),
15945 Ok(GravitationalParameter::km3_per_s2(5959.915466180539f64))
15946 );
15947 }
15948 #[test]
15949 fn test_mean_radius_501() {
15950 assert_eq!(Io.mean_radius(), Distance::kilometers(1821.49f64));
15951 assert_eq!(
15952 DynOrigin::Io.try_mean_radius(),
15953 Ok(Distance::kilometers(1821.49f64))
15954 );
15955 }
15956 #[test]
15957 fn test_spheroid_501() {
15958 assert!(DynOrigin::Io.try_polar_radius().is_err());
15959 assert!(DynOrigin::Io.try_equatorial_radius().is_err());
15960 }
15961 #[test]
15962 fn test_tri_axial_501() {
15963 assert_eq!(
15964 Io.radii(),
15965 (
15966 Distance::kilometers(1829.4f64),
15967 Distance::kilometers(1819.4f64),
15968 Distance::kilometers(1815.7f64)
15969 )
15970 );
15971 assert_eq!(
15972 DynOrigin::Io.try_radii(),
15973 Ok((
15974 Distance::kilometers(1829.4f64),
15975 Distance::kilometers(1819.4f64),
15976 Distance::kilometers(1815.7f64)
15977 ))
15978 );
15979 }
15980 #[test]
15981 fn test_origin_502() {
15982 assert_eq!(Europa.id().0, 502i32);
15983 assert_eq!(Europa.to_string(), "Europa");
15984 assert_eq!(DynOrigin::from(Europa), DynOrigin::Europa);
15985 }
15986 #[test]
15987 fn test_point_mass_502() {
15988 assert_eq!(
15989 Europa.gravitational_parameter(),
15990 GravitationalParameter::km3_per_s2(3202.712099607295f64)
15991 );
15992 assert_eq!(
15993 DynOrigin::Europa.try_gravitational_parameter(),
15994 Ok(GravitationalParameter::km3_per_s2(3202.712099607295f64))
15995 );
15996 }
15997 #[test]
15998 fn test_mean_radius_502() {
15999 assert_eq!(Europa.mean_radius(), Distance::kilometers(1560.8f64));
16000 assert_eq!(
16001 DynOrigin::Europa.try_mean_radius(),
16002 Ok(Distance::kilometers(1560.8f64))
16003 );
16004 }
16005 #[test]
16006 fn test_spheroid_502() {
16007 assert!(DynOrigin::Europa.try_polar_radius().is_err());
16008 assert!(DynOrigin::Europa.try_equatorial_radius().is_err());
16009 }
16010 #[test]
16011 fn test_tri_axial_502() {
16012 assert_eq!(
16013 Europa.radii(),
16014 (
16015 Distance::kilometers(1562.6f64),
16016 Distance::kilometers(1560.3f64),
16017 Distance::kilometers(1559.5f64)
16018 )
16019 );
16020 assert_eq!(
16021 DynOrigin::Europa.try_radii(),
16022 Ok((
16023 Distance::kilometers(1562.6f64),
16024 Distance::kilometers(1560.3f64),
16025 Distance::kilometers(1559.5f64)
16026 ))
16027 );
16028 }
16029 #[test]
16030 fn test_origin_503() {
16031 assert_eq!(Ganymede.id().0, 503i32);
16032 assert_eq!(Ganymede.to_string(), "Ganymede");
16033 assert_eq!(DynOrigin::from(Ganymede), DynOrigin::Ganymede);
16034 }
16035 #[test]
16036 fn test_point_mass_503() {
16037 assert_eq!(
16038 Ganymede.gravitational_parameter(),
16039 GravitationalParameter::km3_per_s2(9887.832752719638f64)
16040 );
16041 assert_eq!(
16042 DynOrigin::Ganymede.try_gravitational_parameter(),
16043 Ok(GravitationalParameter::km3_per_s2(9887.832752719638f64))
16044 );
16045 }
16046 #[test]
16047 fn test_mean_radius_503() {
16048 assert_eq!(Ganymede.mean_radius(), Distance::kilometers(2631.2f64));
16049 assert_eq!(
16050 DynOrigin::Ganymede.try_mean_radius(),
16051 Ok(Distance::kilometers(2631.2f64))
16052 );
16053 }
16054 #[test]
16055 fn test_spheroid_503() {
16056 assert_eq!(Ganymede.polar_radius(), Distance::kilometers(2631.2f64));
16057 assert_eq!(
16058 DynOrigin::Ganymede.try_polar_radius(),
16059 Ok(Distance::kilometers(2631.2f64))
16060 );
16061 assert_eq!(
16062 Ganymede.equatorial_radius(),
16063 Distance::kilometers(2631.2f64)
16064 );
16065 assert_eq!(
16066 DynOrigin::Ganymede.try_equatorial_radius(),
16067 Ok(Distance::kilometers(2631.2f64))
16068 );
16069 }
16070 #[test]
16071 fn test_tri_axial_503() {
16072 assert_eq!(
16073 Ganymede.radii(),
16074 (
16075 Distance::kilometers(2631.2f64),
16076 Distance::kilometers(2631.2f64),
16077 Distance::kilometers(2631.2f64)
16078 )
16079 );
16080 assert_eq!(
16081 DynOrigin::Ganymede.try_radii(),
16082 Ok((
16083 Distance::kilometers(2631.2f64),
16084 Distance::kilometers(2631.2f64),
16085 Distance::kilometers(2631.2f64)
16086 ))
16087 );
16088 }
16089 #[test]
16090 fn test_origin_504() {
16091 assert_eq!(Callisto.id().0, 504i32);
16092 assert_eq!(Callisto.to_string(), "Callisto");
16093 assert_eq!(DynOrigin::from(Callisto), DynOrigin::Callisto);
16094 }
16095 #[test]
16096 fn test_point_mass_504() {
16097 assert_eq!(
16098 Callisto.gravitational_parameter(),
16099 GravitationalParameter::km3_per_s2(7179.283402579837f64)
16100 );
16101 assert_eq!(
16102 DynOrigin::Callisto.try_gravitational_parameter(),
16103 Ok(GravitationalParameter::km3_per_s2(7179.283402579837f64))
16104 );
16105 }
16106 #[test]
16107 fn test_mean_radius_504() {
16108 assert_eq!(Callisto.mean_radius(), Distance::kilometers(2410.3f64));
16109 assert_eq!(
16110 DynOrigin::Callisto.try_mean_radius(),
16111 Ok(Distance::kilometers(2410.3f64))
16112 );
16113 }
16114 #[test]
16115 fn test_spheroid_504() {
16116 assert_eq!(Callisto.polar_radius(), Distance::kilometers(2410.3f64));
16117 assert_eq!(
16118 DynOrigin::Callisto.try_polar_radius(),
16119 Ok(Distance::kilometers(2410.3f64))
16120 );
16121 assert_eq!(
16122 Callisto.equatorial_radius(),
16123 Distance::kilometers(2410.3f64)
16124 );
16125 assert_eq!(
16126 DynOrigin::Callisto.try_equatorial_radius(),
16127 Ok(Distance::kilometers(2410.3f64))
16128 );
16129 }
16130 #[test]
16131 fn test_tri_axial_504() {
16132 assert_eq!(
16133 Callisto.radii(),
16134 (
16135 Distance::kilometers(2410.3f64),
16136 Distance::kilometers(2410.3f64),
16137 Distance::kilometers(2410.3f64)
16138 )
16139 );
16140 assert_eq!(
16141 DynOrigin::Callisto.try_radii(),
16142 Ok((
16143 Distance::kilometers(2410.3f64),
16144 Distance::kilometers(2410.3f64),
16145 Distance::kilometers(2410.3f64)
16146 ))
16147 );
16148 }
16149 #[test]
16150 fn test_origin_505() {
16151 assert_eq!(Amalthea.id().0, 505i32);
16152 assert_eq!(Amalthea.to_string(), "Amalthea");
16153 assert_eq!(DynOrigin::from(Amalthea), DynOrigin::Amalthea);
16154 }
16155 #[test]
16156 fn test_point_mass_505() {
16157 assert_eq!(
16158 Amalthea.gravitational_parameter(),
16159 GravitationalParameter::km3_per_s2(0.1645634534798259f64)
16160 );
16161 assert_eq!(
16162 DynOrigin::Amalthea.try_gravitational_parameter(),
16163 Ok(GravitationalParameter::km3_per_s2(0.1645634534798259f64))
16164 );
16165 }
16166 #[test]
16167 fn test_mean_radius_505() {
16168 assert_eq!(Amalthea.mean_radius(), Distance::kilometers(83.5f64));
16169 assert_eq!(
16170 DynOrigin::Amalthea.try_mean_radius(),
16171 Ok(Distance::kilometers(83.5f64))
16172 );
16173 }
16174 #[test]
16175 fn test_spheroid_505() {
16176 assert!(DynOrigin::Amalthea.try_polar_radius().is_err());
16177 assert!(DynOrigin::Amalthea.try_equatorial_radius().is_err());
16178 }
16179 #[test]
16180 fn test_tri_axial_505() {
16181 assert_eq!(
16182 Amalthea.radii(),
16183 (
16184 Distance::kilometers(125f64),
16185 Distance::kilometers(73f64),
16186 Distance::kilometers(64f64)
16187 )
16188 );
16189 assert_eq!(
16190 DynOrigin::Amalthea.try_radii(),
16191 Ok((
16192 Distance::kilometers(125f64),
16193 Distance::kilometers(73f64),
16194 Distance::kilometers(64f64)
16195 ))
16196 );
16197 }
16198 #[test]
16199 fn test_origin_506() {
16200 assert_eq!(Himalia.id().0, 506i32);
16201 assert_eq!(Himalia.to_string(), "Himalia");
16202 assert_eq!(DynOrigin::from(Himalia), DynOrigin::Himalia);
16203 }
16204 #[test]
16205 fn test_point_mass_506() {
16206 assert_eq!(
16207 Himalia.gravitational_parameter(),
16208 GravitationalParameter::km3_per_s2(0.1515524299611265f64)
16209 );
16210 assert_eq!(
16211 DynOrigin::Himalia.try_gravitational_parameter(),
16212 Ok(GravitationalParameter::km3_per_s2(0.1515524299611265f64))
16213 );
16214 }
16215 #[test]
16216 fn test_mean_radius_506() {
16217 assert_eq!(Himalia.mean_radius(), Distance::kilometers(85f64));
16218 assert_eq!(
16219 DynOrigin::Himalia.try_mean_radius(),
16220 Ok(Distance::kilometers(85f64))
16221 );
16222 }
16223 #[test]
16224 fn test_spheroid_506() {
16225 assert_eq!(Himalia.polar_radius(), Distance::kilometers(85f64));
16226 assert_eq!(
16227 DynOrigin::Himalia.try_polar_radius(),
16228 Ok(Distance::kilometers(85f64))
16229 );
16230 assert_eq!(Himalia.equatorial_radius(), Distance::kilometers(85f64));
16231 assert_eq!(
16232 DynOrigin::Himalia.try_equatorial_radius(),
16233 Ok(Distance::kilometers(85f64))
16234 );
16235 }
16236 #[test]
16237 fn test_tri_axial_506() {
16238 assert_eq!(
16239 Himalia.radii(),
16240 (
16241 Distance::kilometers(85f64),
16242 Distance::kilometers(85f64),
16243 Distance::kilometers(85f64)
16244 )
16245 );
16246 assert_eq!(
16247 DynOrigin::Himalia.try_radii(),
16248 Ok((
16249 Distance::kilometers(85f64),
16250 Distance::kilometers(85f64),
16251 Distance::kilometers(85f64)
16252 ))
16253 );
16254 }
16255 #[test]
16256 fn test_origin_507() {
16257 assert_eq!(Elara.id().0, 507i32);
16258 assert_eq!(Elara.to_string(), "Elara");
16259 assert_eq!(DynOrigin::from(Elara), DynOrigin::Elara);
16260 }
16261 #[test]
16262 fn test_point_mass_507() {
16263 assert!(DynOrigin::Elara.try_gravitational_parameter().is_err());
16264 }
16265 #[test]
16266 fn test_mean_radius_507() {
16267 assert_eq!(Elara.mean_radius(), Distance::kilometers(40f64));
16268 assert_eq!(
16269 DynOrigin::Elara.try_mean_radius(),
16270 Ok(Distance::kilometers(40f64))
16271 );
16272 }
16273 #[test]
16274 fn test_spheroid_507() {
16275 assert_eq!(Elara.polar_radius(), Distance::kilometers(40f64));
16276 assert_eq!(
16277 DynOrigin::Elara.try_polar_radius(),
16278 Ok(Distance::kilometers(40f64))
16279 );
16280 assert_eq!(Elara.equatorial_radius(), Distance::kilometers(40f64));
16281 assert_eq!(
16282 DynOrigin::Elara.try_equatorial_radius(),
16283 Ok(Distance::kilometers(40f64))
16284 );
16285 }
16286 #[test]
16287 fn test_tri_axial_507() {
16288 assert_eq!(
16289 Elara.radii(),
16290 (
16291 Distance::kilometers(40f64),
16292 Distance::kilometers(40f64),
16293 Distance::kilometers(40f64)
16294 )
16295 );
16296 assert_eq!(
16297 DynOrigin::Elara.try_radii(),
16298 Ok((
16299 Distance::kilometers(40f64),
16300 Distance::kilometers(40f64),
16301 Distance::kilometers(40f64)
16302 ))
16303 );
16304 }
16305 #[test]
16306 fn test_origin_508() {
16307 assert_eq!(Pasiphae.id().0, 508i32);
16308 assert_eq!(Pasiphae.to_string(), "Pasiphae");
16309 assert_eq!(DynOrigin::from(Pasiphae), DynOrigin::Pasiphae);
16310 }
16311 #[test]
16312 fn test_point_mass_508() {
16313 assert!(DynOrigin::Pasiphae.try_gravitational_parameter().is_err());
16314 }
16315 #[test]
16316 fn test_mean_radius_508() {
16317 assert_eq!(Pasiphae.mean_radius(), Distance::kilometers(18f64));
16318 assert_eq!(
16319 DynOrigin::Pasiphae.try_mean_radius(),
16320 Ok(Distance::kilometers(18f64))
16321 );
16322 }
16323 #[test]
16324 fn test_spheroid_508() {
16325 assert_eq!(Pasiphae.polar_radius(), Distance::kilometers(18f64));
16326 assert_eq!(
16327 DynOrigin::Pasiphae.try_polar_radius(),
16328 Ok(Distance::kilometers(18f64))
16329 );
16330 assert_eq!(Pasiphae.equatorial_radius(), Distance::kilometers(18f64));
16331 assert_eq!(
16332 DynOrigin::Pasiphae.try_equatorial_radius(),
16333 Ok(Distance::kilometers(18f64))
16334 );
16335 }
16336 #[test]
16337 fn test_tri_axial_508() {
16338 assert_eq!(
16339 Pasiphae.radii(),
16340 (
16341 Distance::kilometers(18f64),
16342 Distance::kilometers(18f64),
16343 Distance::kilometers(18f64)
16344 )
16345 );
16346 assert_eq!(
16347 DynOrigin::Pasiphae.try_radii(),
16348 Ok((
16349 Distance::kilometers(18f64),
16350 Distance::kilometers(18f64),
16351 Distance::kilometers(18f64)
16352 ))
16353 );
16354 }
16355 #[test]
16356 fn test_origin_509() {
16357 assert_eq!(Sinope.id().0, 509i32);
16358 assert_eq!(Sinope.to_string(), "Sinope");
16359 assert_eq!(DynOrigin::from(Sinope), DynOrigin::Sinope);
16360 }
16361 #[test]
16362 fn test_point_mass_509() {
16363 assert!(DynOrigin::Sinope.try_gravitational_parameter().is_err());
16364 }
16365 #[test]
16366 fn test_mean_radius_509() {
16367 assert_eq!(Sinope.mean_radius(), Distance::kilometers(14f64));
16368 assert_eq!(
16369 DynOrigin::Sinope.try_mean_radius(),
16370 Ok(Distance::kilometers(14f64))
16371 );
16372 }
16373 #[test]
16374 fn test_spheroid_509() {
16375 assert_eq!(Sinope.polar_radius(), Distance::kilometers(14f64));
16376 assert_eq!(
16377 DynOrigin::Sinope.try_polar_radius(),
16378 Ok(Distance::kilometers(14f64))
16379 );
16380 assert_eq!(Sinope.equatorial_radius(), Distance::kilometers(14f64));
16381 assert_eq!(
16382 DynOrigin::Sinope.try_equatorial_radius(),
16383 Ok(Distance::kilometers(14f64))
16384 );
16385 }
16386 #[test]
16387 fn test_tri_axial_509() {
16388 assert_eq!(
16389 Sinope.radii(),
16390 (
16391 Distance::kilometers(14f64),
16392 Distance::kilometers(14f64),
16393 Distance::kilometers(14f64)
16394 )
16395 );
16396 assert_eq!(
16397 DynOrigin::Sinope.try_radii(),
16398 Ok((
16399 Distance::kilometers(14f64),
16400 Distance::kilometers(14f64),
16401 Distance::kilometers(14f64)
16402 ))
16403 );
16404 }
16405 #[test]
16406 fn test_origin_510() {
16407 assert_eq!(Lysithea.id().0, 510i32);
16408 assert_eq!(Lysithea.to_string(), "Lysithea");
16409 assert_eq!(DynOrigin::from(Lysithea), DynOrigin::Lysithea);
16410 }
16411 #[test]
16412 fn test_point_mass_510() {
16413 assert!(DynOrigin::Lysithea.try_gravitational_parameter().is_err());
16414 }
16415 #[test]
16416 fn test_mean_radius_510() {
16417 assert_eq!(Lysithea.mean_radius(), Distance::kilometers(12f64));
16418 assert_eq!(
16419 DynOrigin::Lysithea.try_mean_radius(),
16420 Ok(Distance::kilometers(12f64))
16421 );
16422 }
16423 #[test]
16424 fn test_spheroid_510() {
16425 assert_eq!(Lysithea.polar_radius(), Distance::kilometers(12f64));
16426 assert_eq!(
16427 DynOrigin::Lysithea.try_polar_radius(),
16428 Ok(Distance::kilometers(12f64))
16429 );
16430 assert_eq!(Lysithea.equatorial_radius(), Distance::kilometers(12f64));
16431 assert_eq!(
16432 DynOrigin::Lysithea.try_equatorial_radius(),
16433 Ok(Distance::kilometers(12f64))
16434 );
16435 }
16436 #[test]
16437 fn test_tri_axial_510() {
16438 assert_eq!(
16439 Lysithea.radii(),
16440 (
16441 Distance::kilometers(12f64),
16442 Distance::kilometers(12f64),
16443 Distance::kilometers(12f64)
16444 )
16445 );
16446 assert_eq!(
16447 DynOrigin::Lysithea.try_radii(),
16448 Ok((
16449 Distance::kilometers(12f64),
16450 Distance::kilometers(12f64),
16451 Distance::kilometers(12f64)
16452 ))
16453 );
16454 }
16455 #[test]
16456 fn test_origin_511() {
16457 assert_eq!(Carme.id().0, 511i32);
16458 assert_eq!(Carme.to_string(), "Carme");
16459 assert_eq!(DynOrigin::from(Carme), DynOrigin::Carme);
16460 }
16461 #[test]
16462 fn test_point_mass_511() {
16463 assert!(DynOrigin::Carme.try_gravitational_parameter().is_err());
16464 }
16465 #[test]
16466 fn test_mean_radius_511() {
16467 assert_eq!(Carme.mean_radius(), Distance::kilometers(15f64));
16468 assert_eq!(
16469 DynOrigin::Carme.try_mean_radius(),
16470 Ok(Distance::kilometers(15f64))
16471 );
16472 }
16473 #[test]
16474 fn test_spheroid_511() {
16475 assert_eq!(Carme.polar_radius(), Distance::kilometers(15f64));
16476 assert_eq!(
16477 DynOrigin::Carme.try_polar_radius(),
16478 Ok(Distance::kilometers(15f64))
16479 );
16480 assert_eq!(Carme.equatorial_radius(), Distance::kilometers(15f64));
16481 assert_eq!(
16482 DynOrigin::Carme.try_equatorial_radius(),
16483 Ok(Distance::kilometers(15f64))
16484 );
16485 }
16486 #[test]
16487 fn test_tri_axial_511() {
16488 assert_eq!(
16489 Carme.radii(),
16490 (
16491 Distance::kilometers(15f64),
16492 Distance::kilometers(15f64),
16493 Distance::kilometers(15f64)
16494 )
16495 );
16496 assert_eq!(
16497 DynOrigin::Carme.try_radii(),
16498 Ok((
16499 Distance::kilometers(15f64),
16500 Distance::kilometers(15f64),
16501 Distance::kilometers(15f64)
16502 ))
16503 );
16504 }
16505 #[test]
16506 fn test_origin_512() {
16507 assert_eq!(Ananke.id().0, 512i32);
16508 assert_eq!(Ananke.to_string(), "Ananke");
16509 assert_eq!(DynOrigin::from(Ananke), DynOrigin::Ananke);
16510 }
16511 #[test]
16512 fn test_point_mass_512() {
16513 assert!(DynOrigin::Ananke.try_gravitational_parameter().is_err());
16514 }
16515 #[test]
16516 fn test_mean_radius_512() {
16517 assert_eq!(Ananke.mean_radius(), Distance::kilometers(10f64));
16518 assert_eq!(
16519 DynOrigin::Ananke.try_mean_radius(),
16520 Ok(Distance::kilometers(10f64))
16521 );
16522 }
16523 #[test]
16524 fn test_spheroid_512() {
16525 assert_eq!(Ananke.polar_radius(), Distance::kilometers(10f64));
16526 assert_eq!(
16527 DynOrigin::Ananke.try_polar_radius(),
16528 Ok(Distance::kilometers(10f64))
16529 );
16530 assert_eq!(Ananke.equatorial_radius(), Distance::kilometers(10f64));
16531 assert_eq!(
16532 DynOrigin::Ananke.try_equatorial_radius(),
16533 Ok(Distance::kilometers(10f64))
16534 );
16535 }
16536 #[test]
16537 fn test_tri_axial_512() {
16538 assert_eq!(
16539 Ananke.radii(),
16540 (
16541 Distance::kilometers(10f64),
16542 Distance::kilometers(10f64),
16543 Distance::kilometers(10f64)
16544 )
16545 );
16546 assert_eq!(
16547 DynOrigin::Ananke.try_radii(),
16548 Ok((
16549 Distance::kilometers(10f64),
16550 Distance::kilometers(10f64),
16551 Distance::kilometers(10f64)
16552 ))
16553 );
16554 }
16555 #[test]
16556 fn test_origin_513() {
16557 assert_eq!(Leda.id().0, 513i32);
16558 assert_eq!(Leda.to_string(), "Leda");
16559 assert_eq!(DynOrigin::from(Leda), DynOrigin::Leda);
16560 }
16561 #[test]
16562 fn test_point_mass_513() {
16563 assert!(DynOrigin::Leda.try_gravitational_parameter().is_err());
16564 }
16565 #[test]
16566 fn test_mean_radius_513() {
16567 assert_eq!(Leda.mean_radius(), Distance::kilometers(5f64));
16568 assert_eq!(
16569 DynOrigin::Leda.try_mean_radius(),
16570 Ok(Distance::kilometers(5f64))
16571 );
16572 }
16573 #[test]
16574 fn test_spheroid_513() {
16575 assert_eq!(Leda.polar_radius(), Distance::kilometers(5f64));
16576 assert_eq!(
16577 DynOrigin::Leda.try_polar_radius(),
16578 Ok(Distance::kilometers(5f64))
16579 );
16580 assert_eq!(Leda.equatorial_radius(), Distance::kilometers(5f64));
16581 assert_eq!(
16582 DynOrigin::Leda.try_equatorial_radius(),
16583 Ok(Distance::kilometers(5f64))
16584 );
16585 }
16586 #[test]
16587 fn test_tri_axial_513() {
16588 assert_eq!(
16589 Leda.radii(),
16590 (
16591 Distance::kilometers(5f64),
16592 Distance::kilometers(5f64),
16593 Distance::kilometers(5f64)
16594 )
16595 );
16596 assert_eq!(
16597 DynOrigin::Leda.try_radii(),
16598 Ok((
16599 Distance::kilometers(5f64),
16600 Distance::kilometers(5f64),
16601 Distance::kilometers(5f64)
16602 ))
16603 );
16604 }
16605 #[test]
16606 fn test_origin_514() {
16607 assert_eq!(Thebe.id().0, 514i32);
16608 assert_eq!(Thebe.to_string(), "Thebe");
16609 assert_eq!(DynOrigin::from(Thebe), DynOrigin::Thebe);
16610 }
16611 #[test]
16612 fn test_point_mass_514() {
16613 assert_eq!(
16614 Thebe.gravitational_parameter(),
16615 GravitationalParameter::km3_per_s2(0.030148f64)
16616 );
16617 assert_eq!(
16618 DynOrigin::Thebe.try_gravitational_parameter(),
16619 Ok(GravitationalParameter::km3_per_s2(0.030148f64))
16620 );
16621 }
16622 #[test]
16623 fn test_mean_radius_514() {
16624 assert_eq!(Thebe.mean_radius(), Distance::kilometers(49.3f64));
16625 assert_eq!(
16626 DynOrigin::Thebe.try_mean_radius(),
16627 Ok(Distance::kilometers(49.3f64))
16628 );
16629 }
16630 #[test]
16631 fn test_spheroid_514() {
16632 assert!(DynOrigin::Thebe.try_polar_radius().is_err());
16633 assert!(DynOrigin::Thebe.try_equatorial_radius().is_err());
16634 }
16635 #[test]
16636 fn test_tri_axial_514() {
16637 assert_eq!(
16638 Thebe.radii(),
16639 (
16640 Distance::kilometers(58f64),
16641 Distance::kilometers(49f64),
16642 Distance::kilometers(42f64)
16643 )
16644 );
16645 assert_eq!(
16646 DynOrigin::Thebe.try_radii(),
16647 Ok((
16648 Distance::kilometers(58f64),
16649 Distance::kilometers(49f64),
16650 Distance::kilometers(42f64)
16651 ))
16652 );
16653 }
16654 #[test]
16655 fn test_origin_515() {
16656 assert_eq!(Adrastea.id().0, 515i32);
16657 assert_eq!(Adrastea.to_string(), "Adrastea");
16658 assert_eq!(DynOrigin::from(Adrastea), DynOrigin::Adrastea);
16659 }
16660 #[test]
16661 fn test_point_mass_515() {
16662 assert_eq!(
16663 Adrastea.gravitational_parameter(),
16664 GravitationalParameter::km3_per_s2(0.000139f64)
16665 );
16666 assert_eq!(
16667 DynOrigin::Adrastea.try_gravitational_parameter(),
16668 Ok(GravitationalParameter::km3_per_s2(0.000139f64))
16669 );
16670 }
16671 #[test]
16672 fn test_mean_radius_515() {
16673 assert_eq!(Adrastea.mean_radius(), Distance::kilometers(8.2f64));
16674 assert_eq!(
16675 DynOrigin::Adrastea.try_mean_radius(),
16676 Ok(Distance::kilometers(8.2f64))
16677 );
16678 }
16679 #[test]
16680 fn test_spheroid_515() {
16681 assert!(DynOrigin::Adrastea.try_polar_radius().is_err());
16682 assert!(DynOrigin::Adrastea.try_equatorial_radius().is_err());
16683 }
16684 #[test]
16685 fn test_tri_axial_515() {
16686 assert_eq!(
16687 Adrastea.radii(),
16688 (
16689 Distance::kilometers(10f64),
16690 Distance::kilometers(8f64),
16691 Distance::kilometers(7f64)
16692 )
16693 );
16694 assert_eq!(
16695 DynOrigin::Adrastea.try_radii(),
16696 Ok((
16697 Distance::kilometers(10f64),
16698 Distance::kilometers(8f64),
16699 Distance::kilometers(7f64)
16700 ))
16701 );
16702 }
16703 #[test]
16704 fn test_origin_516() {
16705 assert_eq!(Metis.id().0, 516i32);
16706 assert_eq!(Metis.to_string(), "Metis");
16707 assert_eq!(DynOrigin::from(Metis), DynOrigin::Metis);
16708 }
16709 #[test]
16710 fn test_point_mass_516() {
16711 assert_eq!(
16712 Metis.gravitational_parameter(),
16713 GravitationalParameter::km3_per_s2(0.002501f64)
16714 );
16715 assert_eq!(
16716 DynOrigin::Metis.try_gravitational_parameter(),
16717 Ok(GravitationalParameter::km3_per_s2(0.002501f64))
16718 );
16719 }
16720 #[test]
16721 fn test_mean_radius_516() {
16722 assert_eq!(Metis.mean_radius(), Distance::kilometers(21.5f64));
16723 assert_eq!(
16724 DynOrigin::Metis.try_mean_radius(),
16725 Ok(Distance::kilometers(21.5f64))
16726 );
16727 }
16728 #[test]
16729 fn test_spheroid_516() {
16730 assert!(DynOrigin::Metis.try_polar_radius().is_err());
16731 assert!(DynOrigin::Metis.try_equatorial_radius().is_err());
16732 }
16733 #[test]
16734 fn test_tri_axial_516() {
16735 assert_eq!(
16736 Metis.radii(),
16737 (
16738 Distance::kilometers(30f64),
16739 Distance::kilometers(20f64),
16740 Distance::kilometers(17f64)
16741 )
16742 );
16743 assert_eq!(
16744 DynOrigin::Metis.try_radii(),
16745 Ok((
16746 Distance::kilometers(30f64),
16747 Distance::kilometers(20f64),
16748 Distance::kilometers(17f64)
16749 ))
16750 );
16751 }
16752 #[test]
16753 fn test_origin_517() {
16754 assert_eq!(Callirrhoe.id().0, 517i32);
16755 assert_eq!(Callirrhoe.to_string(), "Callirrhoe");
16756 assert_eq!(DynOrigin::from(Callirrhoe), DynOrigin::Callirrhoe);
16757 }
16758 #[test]
16759 fn test_point_mass_517() {
16760 assert!(DynOrigin::Callirrhoe.try_gravitational_parameter().is_err());
16761 }
16762 #[test]
16763 fn test_mean_radius_517() {
16764 assert!(DynOrigin::Callirrhoe.try_mean_radius().is_err());
16765 }
16766 #[test]
16767 fn test_tri_axial_517() {
16768 assert!(DynOrigin::Callirrhoe.try_radii().is_err());
16769 }
16770 #[test]
16771 fn test_spheroid_517() {
16772 assert!(DynOrigin::Callirrhoe.try_polar_radius().is_err());
16773 assert!(DynOrigin::Callirrhoe.try_equatorial_radius().is_err());
16774 }
16775 #[test]
16776 fn test_origin_518() {
16777 assert_eq!(Themisto.id().0, 518i32);
16778 assert_eq!(Themisto.to_string(), "Themisto");
16779 assert_eq!(DynOrigin::from(Themisto), DynOrigin::Themisto);
16780 }
16781 #[test]
16782 fn test_point_mass_518() {
16783 assert!(DynOrigin::Themisto.try_gravitational_parameter().is_err());
16784 }
16785 #[test]
16786 fn test_mean_radius_518() {
16787 assert!(DynOrigin::Themisto.try_mean_radius().is_err());
16788 }
16789 #[test]
16790 fn test_tri_axial_518() {
16791 assert!(DynOrigin::Themisto.try_radii().is_err());
16792 }
16793 #[test]
16794 fn test_spheroid_518() {
16795 assert!(DynOrigin::Themisto.try_polar_radius().is_err());
16796 assert!(DynOrigin::Themisto.try_equatorial_radius().is_err());
16797 }
16798 #[test]
16799 fn test_origin_519() {
16800 assert_eq!(Magaclite.id().0, 519i32);
16801 assert_eq!(Magaclite.to_string(), "Magaclite");
16802 assert_eq!(DynOrigin::from(Magaclite), DynOrigin::Magaclite);
16803 }
16804 #[test]
16805 fn test_point_mass_519() {
16806 assert!(DynOrigin::Magaclite.try_gravitational_parameter().is_err());
16807 }
16808 #[test]
16809 fn test_mean_radius_519() {
16810 assert!(DynOrigin::Magaclite.try_mean_radius().is_err());
16811 }
16812 #[test]
16813 fn test_tri_axial_519() {
16814 assert!(DynOrigin::Magaclite.try_radii().is_err());
16815 }
16816 #[test]
16817 fn test_spheroid_519() {
16818 assert!(DynOrigin::Magaclite.try_polar_radius().is_err());
16819 assert!(DynOrigin::Magaclite.try_equatorial_radius().is_err());
16820 }
16821 #[test]
16822 fn test_origin_520() {
16823 assert_eq!(Taygete.id().0, 520i32);
16824 assert_eq!(Taygete.to_string(), "Taygete");
16825 assert_eq!(DynOrigin::from(Taygete), DynOrigin::Taygete);
16826 }
16827 #[test]
16828 fn test_point_mass_520() {
16829 assert!(DynOrigin::Taygete.try_gravitational_parameter().is_err());
16830 }
16831 #[test]
16832 fn test_mean_radius_520() {
16833 assert!(DynOrigin::Taygete.try_mean_radius().is_err());
16834 }
16835 #[test]
16836 fn test_tri_axial_520() {
16837 assert!(DynOrigin::Taygete.try_radii().is_err());
16838 }
16839 #[test]
16840 fn test_spheroid_520() {
16841 assert!(DynOrigin::Taygete.try_polar_radius().is_err());
16842 assert!(DynOrigin::Taygete.try_equatorial_radius().is_err());
16843 }
16844 #[test]
16845 fn test_origin_521() {
16846 assert_eq!(Chaldene.id().0, 521i32);
16847 assert_eq!(Chaldene.to_string(), "Chaldene");
16848 assert_eq!(DynOrigin::from(Chaldene), DynOrigin::Chaldene);
16849 }
16850 #[test]
16851 fn test_point_mass_521() {
16852 assert!(DynOrigin::Chaldene.try_gravitational_parameter().is_err());
16853 }
16854 #[test]
16855 fn test_mean_radius_521() {
16856 assert!(DynOrigin::Chaldene.try_mean_radius().is_err());
16857 }
16858 #[test]
16859 fn test_tri_axial_521() {
16860 assert!(DynOrigin::Chaldene.try_radii().is_err());
16861 }
16862 #[test]
16863 fn test_spheroid_521() {
16864 assert!(DynOrigin::Chaldene.try_polar_radius().is_err());
16865 assert!(DynOrigin::Chaldene.try_equatorial_radius().is_err());
16866 }
16867 #[test]
16868 fn test_origin_522() {
16869 assert_eq!(Harpalyke.id().0, 522i32);
16870 assert_eq!(Harpalyke.to_string(), "Harpalyke");
16871 assert_eq!(DynOrigin::from(Harpalyke), DynOrigin::Harpalyke);
16872 }
16873 #[test]
16874 fn test_point_mass_522() {
16875 assert!(DynOrigin::Harpalyke.try_gravitational_parameter().is_err());
16876 }
16877 #[test]
16878 fn test_mean_radius_522() {
16879 assert!(DynOrigin::Harpalyke.try_mean_radius().is_err());
16880 }
16881 #[test]
16882 fn test_tri_axial_522() {
16883 assert!(DynOrigin::Harpalyke.try_radii().is_err());
16884 }
16885 #[test]
16886 fn test_spheroid_522() {
16887 assert!(DynOrigin::Harpalyke.try_polar_radius().is_err());
16888 assert!(DynOrigin::Harpalyke.try_equatorial_radius().is_err());
16889 }
16890 #[test]
16891 fn test_origin_523() {
16892 assert_eq!(Kalyke.id().0, 523i32);
16893 assert_eq!(Kalyke.to_string(), "Kalyke");
16894 assert_eq!(DynOrigin::from(Kalyke), DynOrigin::Kalyke);
16895 }
16896 #[test]
16897 fn test_point_mass_523() {
16898 assert!(DynOrigin::Kalyke.try_gravitational_parameter().is_err());
16899 }
16900 #[test]
16901 fn test_mean_radius_523() {
16902 assert!(DynOrigin::Kalyke.try_mean_radius().is_err());
16903 }
16904 #[test]
16905 fn test_tri_axial_523() {
16906 assert!(DynOrigin::Kalyke.try_radii().is_err());
16907 }
16908 #[test]
16909 fn test_spheroid_523() {
16910 assert!(DynOrigin::Kalyke.try_polar_radius().is_err());
16911 assert!(DynOrigin::Kalyke.try_equatorial_radius().is_err());
16912 }
16913 #[test]
16914 fn test_origin_524() {
16915 assert_eq!(Iocaste.id().0, 524i32);
16916 assert_eq!(Iocaste.to_string(), "Iocaste");
16917 assert_eq!(DynOrigin::from(Iocaste), DynOrigin::Iocaste);
16918 }
16919 #[test]
16920 fn test_point_mass_524() {
16921 assert!(DynOrigin::Iocaste.try_gravitational_parameter().is_err());
16922 }
16923 #[test]
16924 fn test_mean_radius_524() {
16925 assert!(DynOrigin::Iocaste.try_mean_radius().is_err());
16926 }
16927 #[test]
16928 fn test_tri_axial_524() {
16929 assert!(DynOrigin::Iocaste.try_radii().is_err());
16930 }
16931 #[test]
16932 fn test_spheroid_524() {
16933 assert!(DynOrigin::Iocaste.try_polar_radius().is_err());
16934 assert!(DynOrigin::Iocaste.try_equatorial_radius().is_err());
16935 }
16936 #[test]
16937 fn test_origin_525() {
16938 assert_eq!(Erinome.id().0, 525i32);
16939 assert_eq!(Erinome.to_string(), "Erinome");
16940 assert_eq!(DynOrigin::from(Erinome), DynOrigin::Erinome);
16941 }
16942 #[test]
16943 fn test_point_mass_525() {
16944 assert!(DynOrigin::Erinome.try_gravitational_parameter().is_err());
16945 }
16946 #[test]
16947 fn test_mean_radius_525() {
16948 assert!(DynOrigin::Erinome.try_mean_radius().is_err());
16949 }
16950 #[test]
16951 fn test_tri_axial_525() {
16952 assert!(DynOrigin::Erinome.try_radii().is_err());
16953 }
16954 #[test]
16955 fn test_spheroid_525() {
16956 assert!(DynOrigin::Erinome.try_polar_radius().is_err());
16957 assert!(DynOrigin::Erinome.try_equatorial_radius().is_err());
16958 }
16959 #[test]
16960 fn test_origin_526() {
16961 assert_eq!(Isonoe.id().0, 526i32);
16962 assert_eq!(Isonoe.to_string(), "Isonoe");
16963 assert_eq!(DynOrigin::from(Isonoe), DynOrigin::Isonoe);
16964 }
16965 #[test]
16966 fn test_point_mass_526() {
16967 assert!(DynOrigin::Isonoe.try_gravitational_parameter().is_err());
16968 }
16969 #[test]
16970 fn test_mean_radius_526() {
16971 assert!(DynOrigin::Isonoe.try_mean_radius().is_err());
16972 }
16973 #[test]
16974 fn test_tri_axial_526() {
16975 assert!(DynOrigin::Isonoe.try_radii().is_err());
16976 }
16977 #[test]
16978 fn test_spheroid_526() {
16979 assert!(DynOrigin::Isonoe.try_polar_radius().is_err());
16980 assert!(DynOrigin::Isonoe.try_equatorial_radius().is_err());
16981 }
16982 #[test]
16983 fn test_origin_527() {
16984 assert_eq!(Praxidike.id().0, 527i32);
16985 assert_eq!(Praxidike.to_string(), "Praxidike");
16986 assert_eq!(DynOrigin::from(Praxidike), DynOrigin::Praxidike);
16987 }
16988 #[test]
16989 fn test_point_mass_527() {
16990 assert!(DynOrigin::Praxidike.try_gravitational_parameter().is_err());
16991 }
16992 #[test]
16993 fn test_mean_radius_527() {
16994 assert!(DynOrigin::Praxidike.try_mean_radius().is_err());
16995 }
16996 #[test]
16997 fn test_tri_axial_527() {
16998 assert!(DynOrigin::Praxidike.try_radii().is_err());
16999 }
17000 #[test]
17001 fn test_spheroid_527() {
17002 assert!(DynOrigin::Praxidike.try_polar_radius().is_err());
17003 assert!(DynOrigin::Praxidike.try_equatorial_radius().is_err());
17004 }
17005 #[test]
17006 fn test_origin_528() {
17007 assert_eq!(Autonoe.id().0, 528i32);
17008 assert_eq!(Autonoe.to_string(), "Autonoe");
17009 assert_eq!(DynOrigin::from(Autonoe), DynOrigin::Autonoe);
17010 }
17011 #[test]
17012 fn test_point_mass_528() {
17013 assert!(DynOrigin::Autonoe.try_gravitational_parameter().is_err());
17014 }
17015 #[test]
17016 fn test_mean_radius_528() {
17017 assert!(DynOrigin::Autonoe.try_mean_radius().is_err());
17018 }
17019 #[test]
17020 fn test_tri_axial_528() {
17021 assert!(DynOrigin::Autonoe.try_radii().is_err());
17022 }
17023 #[test]
17024 fn test_spheroid_528() {
17025 assert!(DynOrigin::Autonoe.try_polar_radius().is_err());
17026 assert!(DynOrigin::Autonoe.try_equatorial_radius().is_err());
17027 }
17028 #[test]
17029 fn test_origin_529() {
17030 assert_eq!(Thyone.id().0, 529i32);
17031 assert_eq!(Thyone.to_string(), "Thyone");
17032 assert_eq!(DynOrigin::from(Thyone), DynOrigin::Thyone);
17033 }
17034 #[test]
17035 fn test_point_mass_529() {
17036 assert!(DynOrigin::Thyone.try_gravitational_parameter().is_err());
17037 }
17038 #[test]
17039 fn test_mean_radius_529() {
17040 assert!(DynOrigin::Thyone.try_mean_radius().is_err());
17041 }
17042 #[test]
17043 fn test_tri_axial_529() {
17044 assert!(DynOrigin::Thyone.try_radii().is_err());
17045 }
17046 #[test]
17047 fn test_spheroid_529() {
17048 assert!(DynOrigin::Thyone.try_polar_radius().is_err());
17049 assert!(DynOrigin::Thyone.try_equatorial_radius().is_err());
17050 }
17051 #[test]
17052 fn test_origin_530() {
17053 assert_eq!(Hermippe.id().0, 530i32);
17054 assert_eq!(Hermippe.to_string(), "Hermippe");
17055 assert_eq!(DynOrigin::from(Hermippe), DynOrigin::Hermippe);
17056 }
17057 #[test]
17058 fn test_point_mass_530() {
17059 assert!(DynOrigin::Hermippe.try_gravitational_parameter().is_err());
17060 }
17061 #[test]
17062 fn test_mean_radius_530() {
17063 assert!(DynOrigin::Hermippe.try_mean_radius().is_err());
17064 }
17065 #[test]
17066 fn test_tri_axial_530() {
17067 assert!(DynOrigin::Hermippe.try_radii().is_err());
17068 }
17069 #[test]
17070 fn test_spheroid_530() {
17071 assert!(DynOrigin::Hermippe.try_polar_radius().is_err());
17072 assert!(DynOrigin::Hermippe.try_equatorial_radius().is_err());
17073 }
17074 #[test]
17075 fn test_origin_531() {
17076 assert_eq!(Aitne.id().0, 531i32);
17077 assert_eq!(Aitne.to_string(), "Aitne");
17078 assert_eq!(DynOrigin::from(Aitne), DynOrigin::Aitne);
17079 }
17080 #[test]
17081 fn test_point_mass_531() {
17082 assert!(DynOrigin::Aitne.try_gravitational_parameter().is_err());
17083 }
17084 #[test]
17085 fn test_mean_radius_531() {
17086 assert!(DynOrigin::Aitne.try_mean_radius().is_err());
17087 }
17088 #[test]
17089 fn test_tri_axial_531() {
17090 assert!(DynOrigin::Aitne.try_radii().is_err());
17091 }
17092 #[test]
17093 fn test_spheroid_531() {
17094 assert!(DynOrigin::Aitne.try_polar_radius().is_err());
17095 assert!(DynOrigin::Aitne.try_equatorial_radius().is_err());
17096 }
17097 #[test]
17098 fn test_origin_532() {
17099 assert_eq!(Eurydome.id().0, 532i32);
17100 assert_eq!(Eurydome.to_string(), "Eurydome");
17101 assert_eq!(DynOrigin::from(Eurydome), DynOrigin::Eurydome);
17102 }
17103 #[test]
17104 fn test_point_mass_532() {
17105 assert!(DynOrigin::Eurydome.try_gravitational_parameter().is_err());
17106 }
17107 #[test]
17108 fn test_mean_radius_532() {
17109 assert!(DynOrigin::Eurydome.try_mean_radius().is_err());
17110 }
17111 #[test]
17112 fn test_tri_axial_532() {
17113 assert!(DynOrigin::Eurydome.try_radii().is_err());
17114 }
17115 #[test]
17116 fn test_spheroid_532() {
17117 assert!(DynOrigin::Eurydome.try_polar_radius().is_err());
17118 assert!(DynOrigin::Eurydome.try_equatorial_radius().is_err());
17119 }
17120 #[test]
17121 fn test_origin_533() {
17122 assert_eq!(Euanthe.id().0, 533i32);
17123 assert_eq!(Euanthe.to_string(), "Euanthe");
17124 assert_eq!(DynOrigin::from(Euanthe), DynOrigin::Euanthe);
17125 }
17126 #[test]
17127 fn test_point_mass_533() {
17128 assert!(DynOrigin::Euanthe.try_gravitational_parameter().is_err());
17129 }
17130 #[test]
17131 fn test_mean_radius_533() {
17132 assert!(DynOrigin::Euanthe.try_mean_radius().is_err());
17133 }
17134 #[test]
17135 fn test_tri_axial_533() {
17136 assert!(DynOrigin::Euanthe.try_radii().is_err());
17137 }
17138 #[test]
17139 fn test_spheroid_533() {
17140 assert!(DynOrigin::Euanthe.try_polar_radius().is_err());
17141 assert!(DynOrigin::Euanthe.try_equatorial_radius().is_err());
17142 }
17143 #[test]
17144 fn test_origin_534() {
17145 assert_eq!(Euporie.id().0, 534i32);
17146 assert_eq!(Euporie.to_string(), "Euporie");
17147 assert_eq!(DynOrigin::from(Euporie), DynOrigin::Euporie);
17148 }
17149 #[test]
17150 fn test_point_mass_534() {
17151 assert!(DynOrigin::Euporie.try_gravitational_parameter().is_err());
17152 }
17153 #[test]
17154 fn test_mean_radius_534() {
17155 assert!(DynOrigin::Euporie.try_mean_radius().is_err());
17156 }
17157 #[test]
17158 fn test_tri_axial_534() {
17159 assert!(DynOrigin::Euporie.try_radii().is_err());
17160 }
17161 #[test]
17162 fn test_spheroid_534() {
17163 assert!(DynOrigin::Euporie.try_polar_radius().is_err());
17164 assert!(DynOrigin::Euporie.try_equatorial_radius().is_err());
17165 }
17166 #[test]
17167 fn test_origin_535() {
17168 assert_eq!(Orthosie.id().0, 535i32);
17169 assert_eq!(Orthosie.to_string(), "Orthosie");
17170 assert_eq!(DynOrigin::from(Orthosie), DynOrigin::Orthosie);
17171 }
17172 #[test]
17173 fn test_point_mass_535() {
17174 assert!(DynOrigin::Orthosie.try_gravitational_parameter().is_err());
17175 }
17176 #[test]
17177 fn test_mean_radius_535() {
17178 assert!(DynOrigin::Orthosie.try_mean_radius().is_err());
17179 }
17180 #[test]
17181 fn test_tri_axial_535() {
17182 assert!(DynOrigin::Orthosie.try_radii().is_err());
17183 }
17184 #[test]
17185 fn test_spheroid_535() {
17186 assert!(DynOrigin::Orthosie.try_polar_radius().is_err());
17187 assert!(DynOrigin::Orthosie.try_equatorial_radius().is_err());
17188 }
17189 #[test]
17190 fn test_origin_536() {
17191 assert_eq!(Sponde.id().0, 536i32);
17192 assert_eq!(Sponde.to_string(), "Sponde");
17193 assert_eq!(DynOrigin::from(Sponde), DynOrigin::Sponde);
17194 }
17195 #[test]
17196 fn test_point_mass_536() {
17197 assert!(DynOrigin::Sponde.try_gravitational_parameter().is_err());
17198 }
17199 #[test]
17200 fn test_mean_radius_536() {
17201 assert!(DynOrigin::Sponde.try_mean_radius().is_err());
17202 }
17203 #[test]
17204 fn test_tri_axial_536() {
17205 assert!(DynOrigin::Sponde.try_radii().is_err());
17206 }
17207 #[test]
17208 fn test_spheroid_536() {
17209 assert!(DynOrigin::Sponde.try_polar_radius().is_err());
17210 assert!(DynOrigin::Sponde.try_equatorial_radius().is_err());
17211 }
17212 #[test]
17213 fn test_origin_537() {
17214 assert_eq!(Kale.id().0, 537i32);
17215 assert_eq!(Kale.to_string(), "Kale");
17216 assert_eq!(DynOrigin::from(Kale), DynOrigin::Kale);
17217 }
17218 #[test]
17219 fn test_point_mass_537() {
17220 assert!(DynOrigin::Kale.try_gravitational_parameter().is_err());
17221 }
17222 #[test]
17223 fn test_mean_radius_537() {
17224 assert!(DynOrigin::Kale.try_mean_radius().is_err());
17225 }
17226 #[test]
17227 fn test_tri_axial_537() {
17228 assert!(DynOrigin::Kale.try_radii().is_err());
17229 }
17230 #[test]
17231 fn test_spheroid_537() {
17232 assert!(DynOrigin::Kale.try_polar_radius().is_err());
17233 assert!(DynOrigin::Kale.try_equatorial_radius().is_err());
17234 }
17235 #[test]
17236 fn test_origin_538() {
17237 assert_eq!(Pasithee.id().0, 538i32);
17238 assert_eq!(Pasithee.to_string(), "Pasithee");
17239 assert_eq!(DynOrigin::from(Pasithee), DynOrigin::Pasithee);
17240 }
17241 #[test]
17242 fn test_point_mass_538() {
17243 assert!(DynOrigin::Pasithee.try_gravitational_parameter().is_err());
17244 }
17245 #[test]
17246 fn test_mean_radius_538() {
17247 assert!(DynOrigin::Pasithee.try_mean_radius().is_err());
17248 }
17249 #[test]
17250 fn test_tri_axial_538() {
17251 assert!(DynOrigin::Pasithee.try_radii().is_err());
17252 }
17253 #[test]
17254 fn test_spheroid_538() {
17255 assert!(DynOrigin::Pasithee.try_polar_radius().is_err());
17256 assert!(DynOrigin::Pasithee.try_equatorial_radius().is_err());
17257 }
17258 #[test]
17259 fn test_origin_539() {
17260 assert_eq!(Hegemone.id().0, 539i32);
17261 assert_eq!(Hegemone.to_string(), "Hegemone");
17262 assert_eq!(DynOrigin::from(Hegemone), DynOrigin::Hegemone);
17263 }
17264 #[test]
17265 fn test_point_mass_539() {
17266 assert!(DynOrigin::Hegemone.try_gravitational_parameter().is_err());
17267 }
17268 #[test]
17269 fn test_mean_radius_539() {
17270 assert!(DynOrigin::Hegemone.try_mean_radius().is_err());
17271 }
17272 #[test]
17273 fn test_tri_axial_539() {
17274 assert!(DynOrigin::Hegemone.try_radii().is_err());
17275 }
17276 #[test]
17277 fn test_spheroid_539() {
17278 assert!(DynOrigin::Hegemone.try_polar_radius().is_err());
17279 assert!(DynOrigin::Hegemone.try_equatorial_radius().is_err());
17280 }
17281 #[test]
17282 fn test_origin_540() {
17283 assert_eq!(Mneme.id().0, 540i32);
17284 assert_eq!(Mneme.to_string(), "Mneme");
17285 assert_eq!(DynOrigin::from(Mneme), DynOrigin::Mneme);
17286 }
17287 #[test]
17288 fn test_point_mass_540() {
17289 assert!(DynOrigin::Mneme.try_gravitational_parameter().is_err());
17290 }
17291 #[test]
17292 fn test_mean_radius_540() {
17293 assert!(DynOrigin::Mneme.try_mean_radius().is_err());
17294 }
17295 #[test]
17296 fn test_tri_axial_540() {
17297 assert!(DynOrigin::Mneme.try_radii().is_err());
17298 }
17299 #[test]
17300 fn test_spheroid_540() {
17301 assert!(DynOrigin::Mneme.try_polar_radius().is_err());
17302 assert!(DynOrigin::Mneme.try_equatorial_radius().is_err());
17303 }
17304 #[test]
17305 fn test_origin_541() {
17306 assert_eq!(Aoede.id().0, 541i32);
17307 assert_eq!(Aoede.to_string(), "Aoede");
17308 assert_eq!(DynOrigin::from(Aoede), DynOrigin::Aoede);
17309 }
17310 #[test]
17311 fn test_point_mass_541() {
17312 assert!(DynOrigin::Aoede.try_gravitational_parameter().is_err());
17313 }
17314 #[test]
17315 fn test_mean_radius_541() {
17316 assert!(DynOrigin::Aoede.try_mean_radius().is_err());
17317 }
17318 #[test]
17319 fn test_tri_axial_541() {
17320 assert!(DynOrigin::Aoede.try_radii().is_err());
17321 }
17322 #[test]
17323 fn test_spheroid_541() {
17324 assert!(DynOrigin::Aoede.try_polar_radius().is_err());
17325 assert!(DynOrigin::Aoede.try_equatorial_radius().is_err());
17326 }
17327 #[test]
17328 fn test_origin_542() {
17329 assert_eq!(Thelxinoe.id().0, 542i32);
17330 assert_eq!(Thelxinoe.to_string(), "Thelxinoe");
17331 assert_eq!(DynOrigin::from(Thelxinoe), DynOrigin::Thelxinoe);
17332 }
17333 #[test]
17334 fn test_point_mass_542() {
17335 assert!(DynOrigin::Thelxinoe.try_gravitational_parameter().is_err());
17336 }
17337 #[test]
17338 fn test_mean_radius_542() {
17339 assert!(DynOrigin::Thelxinoe.try_mean_radius().is_err());
17340 }
17341 #[test]
17342 fn test_tri_axial_542() {
17343 assert!(DynOrigin::Thelxinoe.try_radii().is_err());
17344 }
17345 #[test]
17346 fn test_spheroid_542() {
17347 assert!(DynOrigin::Thelxinoe.try_polar_radius().is_err());
17348 assert!(DynOrigin::Thelxinoe.try_equatorial_radius().is_err());
17349 }
17350 #[test]
17351 fn test_origin_543() {
17352 assert_eq!(Arche.id().0, 543i32);
17353 assert_eq!(Arche.to_string(), "Arche");
17354 assert_eq!(DynOrigin::from(Arche), DynOrigin::Arche);
17355 }
17356 #[test]
17357 fn test_point_mass_543() {
17358 assert!(DynOrigin::Arche.try_gravitational_parameter().is_err());
17359 }
17360 #[test]
17361 fn test_mean_radius_543() {
17362 assert!(DynOrigin::Arche.try_mean_radius().is_err());
17363 }
17364 #[test]
17365 fn test_tri_axial_543() {
17366 assert!(DynOrigin::Arche.try_radii().is_err());
17367 }
17368 #[test]
17369 fn test_spheroid_543() {
17370 assert!(DynOrigin::Arche.try_polar_radius().is_err());
17371 assert!(DynOrigin::Arche.try_equatorial_radius().is_err());
17372 }
17373 #[test]
17374 fn test_origin_544() {
17375 assert_eq!(Kallichore.id().0, 544i32);
17376 assert_eq!(Kallichore.to_string(), "Kallichore");
17377 assert_eq!(DynOrigin::from(Kallichore), DynOrigin::Kallichore);
17378 }
17379 #[test]
17380 fn test_point_mass_544() {
17381 assert!(DynOrigin::Kallichore.try_gravitational_parameter().is_err());
17382 }
17383 #[test]
17384 fn test_mean_radius_544() {
17385 assert!(DynOrigin::Kallichore.try_mean_radius().is_err());
17386 }
17387 #[test]
17388 fn test_tri_axial_544() {
17389 assert!(DynOrigin::Kallichore.try_radii().is_err());
17390 }
17391 #[test]
17392 fn test_spheroid_544() {
17393 assert!(DynOrigin::Kallichore.try_polar_radius().is_err());
17394 assert!(DynOrigin::Kallichore.try_equatorial_radius().is_err());
17395 }
17396 #[test]
17397 fn test_origin_545() {
17398 assert_eq!(Helike.id().0, 545i32);
17399 assert_eq!(Helike.to_string(), "Helike");
17400 assert_eq!(DynOrigin::from(Helike), DynOrigin::Helike);
17401 }
17402 #[test]
17403 fn test_point_mass_545() {
17404 assert!(DynOrigin::Helike.try_gravitational_parameter().is_err());
17405 }
17406 #[test]
17407 fn test_mean_radius_545() {
17408 assert!(DynOrigin::Helike.try_mean_radius().is_err());
17409 }
17410 #[test]
17411 fn test_tri_axial_545() {
17412 assert!(DynOrigin::Helike.try_radii().is_err());
17413 }
17414 #[test]
17415 fn test_spheroid_545() {
17416 assert!(DynOrigin::Helike.try_polar_radius().is_err());
17417 assert!(DynOrigin::Helike.try_equatorial_radius().is_err());
17418 }
17419 #[test]
17420 fn test_origin_546() {
17421 assert_eq!(Carpo.id().0, 546i32);
17422 assert_eq!(Carpo.to_string(), "Carpo");
17423 assert_eq!(DynOrigin::from(Carpo), DynOrigin::Carpo);
17424 }
17425 #[test]
17426 fn test_point_mass_546() {
17427 assert!(DynOrigin::Carpo.try_gravitational_parameter().is_err());
17428 }
17429 #[test]
17430 fn test_mean_radius_546() {
17431 assert!(DynOrigin::Carpo.try_mean_radius().is_err());
17432 }
17433 #[test]
17434 fn test_tri_axial_546() {
17435 assert!(DynOrigin::Carpo.try_radii().is_err());
17436 }
17437 #[test]
17438 fn test_spheroid_546() {
17439 assert!(DynOrigin::Carpo.try_polar_radius().is_err());
17440 assert!(DynOrigin::Carpo.try_equatorial_radius().is_err());
17441 }
17442 #[test]
17443 fn test_origin_547() {
17444 assert_eq!(Eukelade.id().0, 547i32);
17445 assert_eq!(Eukelade.to_string(), "Eukelade");
17446 assert_eq!(DynOrigin::from(Eukelade), DynOrigin::Eukelade);
17447 }
17448 #[test]
17449 fn test_point_mass_547() {
17450 assert!(DynOrigin::Eukelade.try_gravitational_parameter().is_err());
17451 }
17452 #[test]
17453 fn test_mean_radius_547() {
17454 assert!(DynOrigin::Eukelade.try_mean_radius().is_err());
17455 }
17456 #[test]
17457 fn test_tri_axial_547() {
17458 assert!(DynOrigin::Eukelade.try_radii().is_err());
17459 }
17460 #[test]
17461 fn test_spheroid_547() {
17462 assert!(DynOrigin::Eukelade.try_polar_radius().is_err());
17463 assert!(DynOrigin::Eukelade.try_equatorial_radius().is_err());
17464 }
17465 #[test]
17466 fn test_origin_548() {
17467 assert_eq!(Cyllene.id().0, 548i32);
17468 assert_eq!(Cyllene.to_string(), "Cyllene");
17469 assert_eq!(DynOrigin::from(Cyllene), DynOrigin::Cyllene);
17470 }
17471 #[test]
17472 fn test_point_mass_548() {
17473 assert!(DynOrigin::Cyllene.try_gravitational_parameter().is_err());
17474 }
17475 #[test]
17476 fn test_mean_radius_548() {
17477 assert!(DynOrigin::Cyllene.try_mean_radius().is_err());
17478 }
17479 #[test]
17480 fn test_tri_axial_548() {
17481 assert!(DynOrigin::Cyllene.try_radii().is_err());
17482 }
17483 #[test]
17484 fn test_spheroid_548() {
17485 assert!(DynOrigin::Cyllene.try_polar_radius().is_err());
17486 assert!(DynOrigin::Cyllene.try_equatorial_radius().is_err());
17487 }
17488 #[test]
17489 fn test_origin_549() {
17490 assert_eq!(Kore.id().0, 549i32);
17491 assert_eq!(Kore.to_string(), "Kore");
17492 assert_eq!(DynOrigin::from(Kore), DynOrigin::Kore);
17493 }
17494 #[test]
17495 fn test_point_mass_549() {
17496 assert!(DynOrigin::Kore.try_gravitational_parameter().is_err());
17497 }
17498 #[test]
17499 fn test_mean_radius_549() {
17500 assert!(DynOrigin::Kore.try_mean_radius().is_err());
17501 }
17502 #[test]
17503 fn test_tri_axial_549() {
17504 assert!(DynOrigin::Kore.try_radii().is_err());
17505 }
17506 #[test]
17507 fn test_spheroid_549() {
17508 assert!(DynOrigin::Kore.try_polar_radius().is_err());
17509 assert!(DynOrigin::Kore.try_equatorial_radius().is_err());
17510 }
17511 #[test]
17512 fn test_origin_550() {
17513 assert_eq!(Herse.id().0, 550i32);
17514 assert_eq!(Herse.to_string(), "Herse");
17515 assert_eq!(DynOrigin::from(Herse), DynOrigin::Herse);
17516 }
17517 #[test]
17518 fn test_point_mass_550() {
17519 assert!(DynOrigin::Herse.try_gravitational_parameter().is_err());
17520 }
17521 #[test]
17522 fn test_mean_radius_550() {
17523 assert!(DynOrigin::Herse.try_mean_radius().is_err());
17524 }
17525 #[test]
17526 fn test_tri_axial_550() {
17527 assert!(DynOrigin::Herse.try_radii().is_err());
17528 }
17529 #[test]
17530 fn test_spheroid_550() {
17531 assert!(DynOrigin::Herse.try_polar_radius().is_err());
17532 assert!(DynOrigin::Herse.try_equatorial_radius().is_err());
17533 }
17534 #[test]
17535 fn test_origin_553() {
17536 assert_eq!(Dia.id().0, 553i32);
17537 assert_eq!(Dia.to_string(), "Dia");
17538 assert_eq!(DynOrigin::from(Dia), DynOrigin::Dia);
17539 }
17540 #[test]
17541 fn test_point_mass_553() {
17542 assert!(DynOrigin::Dia.try_gravitational_parameter().is_err());
17543 }
17544 #[test]
17545 fn test_mean_radius_553() {
17546 assert!(DynOrigin::Dia.try_mean_radius().is_err());
17547 }
17548 #[test]
17549 fn test_tri_axial_553() {
17550 assert!(DynOrigin::Dia.try_radii().is_err());
17551 }
17552 #[test]
17553 fn test_spheroid_553() {
17554 assert!(DynOrigin::Dia.try_polar_radius().is_err());
17555 assert!(DynOrigin::Dia.try_equatorial_radius().is_err());
17556 }
17557 #[test]
17558 fn test_origin_601() {
17559 assert_eq!(Mimas.id().0, 601i32);
17560 assert_eq!(Mimas.to_string(), "Mimas");
17561 assert_eq!(DynOrigin::from(Mimas), DynOrigin::Mimas);
17562 }
17563 #[test]
17564 fn test_point_mass_601() {
17565 assert_eq!(
17566 Mimas.gravitational_parameter(),
17567 GravitationalParameter::km3_per_s2(2.503488768152587f64)
17568 );
17569 assert_eq!(
17570 DynOrigin::Mimas.try_gravitational_parameter(),
17571 Ok(GravitationalParameter::km3_per_s2(2.503488768152587f64))
17572 );
17573 }
17574 #[test]
17575 fn test_mean_radius_601() {
17576 assert_eq!(Mimas.mean_radius(), Distance::kilometers(198.2f64));
17577 assert_eq!(
17578 DynOrigin::Mimas.try_mean_radius(),
17579 Ok(Distance::kilometers(198.2f64))
17580 );
17581 }
17582 #[test]
17583 fn test_spheroid_601() {
17584 assert!(DynOrigin::Mimas.try_polar_radius().is_err());
17585 assert!(DynOrigin::Mimas.try_equatorial_radius().is_err());
17586 }
17587 #[test]
17588 fn test_tri_axial_601() {
17589 assert_eq!(
17590 Mimas.radii(),
17591 (
17592 Distance::kilometers(207.8f64),
17593 Distance::kilometers(196.7f64),
17594 Distance::kilometers(190.6f64)
17595 )
17596 );
17597 assert_eq!(
17598 DynOrigin::Mimas.try_radii(),
17599 Ok((
17600 Distance::kilometers(207.8f64),
17601 Distance::kilometers(196.7f64),
17602 Distance::kilometers(190.6f64)
17603 ))
17604 );
17605 }
17606 #[test]
17607 fn test_origin_602() {
17608 assert_eq!(Enceladus.id().0, 602i32);
17609 assert_eq!(Enceladus.to_string(), "Enceladus");
17610 assert_eq!(DynOrigin::from(Enceladus), DynOrigin::Enceladus);
17611 }
17612 #[test]
17613 fn test_point_mass_602() {
17614 assert_eq!(
17615 Enceladus.gravitational_parameter(),
17616 GravitationalParameter::km3_per_s2(7.210366688598896f64)
17617 );
17618 assert_eq!(
17619 DynOrigin::Enceladus.try_gravitational_parameter(),
17620 Ok(GravitationalParameter::km3_per_s2(7.210366688598896f64))
17621 );
17622 }
17623 #[test]
17624 fn test_mean_radius_602() {
17625 assert_eq!(Enceladus.mean_radius(), Distance::kilometers(252.1f64));
17626 assert_eq!(
17627 DynOrigin::Enceladus.try_mean_radius(),
17628 Ok(Distance::kilometers(252.1f64))
17629 );
17630 }
17631 #[test]
17632 fn test_spheroid_602() {
17633 assert!(DynOrigin::Enceladus.try_polar_radius().is_err());
17634 assert!(DynOrigin::Enceladus.try_equatorial_radius().is_err());
17635 }
17636 #[test]
17637 fn test_tri_axial_602() {
17638 assert_eq!(
17639 Enceladus.radii(),
17640 (
17641 Distance::kilometers(256.6f64),
17642 Distance::kilometers(251.4f64),
17643 Distance::kilometers(248.3f64)
17644 )
17645 );
17646 assert_eq!(
17647 DynOrigin::Enceladus.try_radii(),
17648 Ok((
17649 Distance::kilometers(256.6f64),
17650 Distance::kilometers(251.4f64),
17651 Distance::kilometers(248.3f64)
17652 ))
17653 );
17654 }
17655 #[test]
17656 fn test_origin_603() {
17657 assert_eq!(Tethys.id().0, 603i32);
17658 assert_eq!(Tethys.to_string(), "Tethys");
17659 assert_eq!(DynOrigin::from(Tethys), DynOrigin::Tethys);
17660 }
17661 #[test]
17662 fn test_point_mass_603() {
17663 assert_eq!(
17664 Tethys.gravitational_parameter(),
17665 GravitationalParameter::km3_per_s2(41.21352885489587f64)
17666 );
17667 assert_eq!(
17668 DynOrigin::Tethys.try_gravitational_parameter(),
17669 Ok(GravitationalParameter::km3_per_s2(41.21352885489587f64))
17670 );
17671 }
17672 #[test]
17673 fn test_mean_radius_603() {
17674 assert_eq!(Tethys.mean_radius(), Distance::kilometers(531f64));
17675 assert_eq!(
17676 DynOrigin::Tethys.try_mean_radius(),
17677 Ok(Distance::kilometers(531f64))
17678 );
17679 }
17680 #[test]
17681 fn test_spheroid_603() {
17682 assert!(DynOrigin::Tethys.try_polar_radius().is_err());
17683 assert!(DynOrigin::Tethys.try_equatorial_radius().is_err());
17684 }
17685 #[test]
17686 fn test_tri_axial_603() {
17687 assert_eq!(
17688 Tethys.radii(),
17689 (
17690 Distance::kilometers(538.4f64),
17691 Distance::kilometers(528.3f64),
17692 Distance::kilometers(526.3f64)
17693 )
17694 );
17695 assert_eq!(
17696 DynOrigin::Tethys.try_radii(),
17697 Ok((
17698 Distance::kilometers(538.4f64),
17699 Distance::kilometers(528.3f64),
17700 Distance::kilometers(526.3f64)
17701 ))
17702 );
17703 }
17704 #[test]
17705 fn test_origin_604() {
17706 assert_eq!(Dione.id().0, 604i32);
17707 assert_eq!(Dione.to_string(), "Dione");
17708 assert_eq!(DynOrigin::from(Dione), DynOrigin::Dione);
17709 }
17710 #[test]
17711 fn test_point_mass_604() {
17712 assert_eq!(
17713 Dione.gravitational_parameter(),
17714 GravitationalParameter::km3_per_s2(73.11607172482067f64)
17715 );
17716 assert_eq!(
17717 DynOrigin::Dione.try_gravitational_parameter(),
17718 Ok(GravitationalParameter::km3_per_s2(73.11607172482067f64))
17719 );
17720 }
17721 #[test]
17722 fn test_mean_radius_604() {
17723 assert_eq!(Dione.mean_radius(), Distance::kilometers(561.4f64));
17724 assert_eq!(
17725 DynOrigin::Dione.try_mean_radius(),
17726 Ok(Distance::kilometers(561.4f64))
17727 );
17728 }
17729 #[test]
17730 fn test_spheroid_604() {
17731 assert!(DynOrigin::Dione.try_polar_radius().is_err());
17732 assert!(DynOrigin::Dione.try_equatorial_radius().is_err());
17733 }
17734 #[test]
17735 fn test_tri_axial_604() {
17736 assert_eq!(
17737 Dione.radii(),
17738 (
17739 Distance::kilometers(563.4f64),
17740 Distance::kilometers(561.3f64),
17741 Distance::kilometers(559.6f64)
17742 )
17743 );
17744 assert_eq!(
17745 DynOrigin::Dione.try_radii(),
17746 Ok((
17747 Distance::kilometers(563.4f64),
17748 Distance::kilometers(561.3f64),
17749 Distance::kilometers(559.6f64)
17750 ))
17751 );
17752 }
17753 #[test]
17754 fn test_origin_605() {
17755 assert_eq!(Rhea.id().0, 605i32);
17756 assert_eq!(Rhea.to_string(), "Rhea");
17757 assert_eq!(DynOrigin::from(Rhea), DynOrigin::Rhea);
17758 }
17759 #[test]
17760 fn test_point_mass_605() {
17761 assert_eq!(
17762 Rhea.gravitational_parameter(),
17763 GravitationalParameter::km3_per_s2(153.9417519146563f64)
17764 );
17765 assert_eq!(
17766 DynOrigin::Rhea.try_gravitational_parameter(),
17767 Ok(GravitationalParameter::km3_per_s2(153.9417519146563f64))
17768 );
17769 }
17770 #[test]
17771 fn test_mean_radius_605() {
17772 assert_eq!(Rhea.mean_radius(), Distance::kilometers(763.5f64));
17773 assert_eq!(
17774 DynOrigin::Rhea.try_mean_radius(),
17775 Ok(Distance::kilometers(763.5f64))
17776 );
17777 }
17778 #[test]
17779 fn test_spheroid_605() {
17780 assert!(DynOrigin::Rhea.try_polar_radius().is_err());
17781 assert!(DynOrigin::Rhea.try_equatorial_radius().is_err());
17782 }
17783 #[test]
17784 fn test_tri_axial_605() {
17785 assert_eq!(
17786 Rhea.radii(),
17787 (
17788 Distance::kilometers(765f64),
17789 Distance::kilometers(763.1f64),
17790 Distance::kilometers(762.4f64)
17791 )
17792 );
17793 assert_eq!(
17794 DynOrigin::Rhea.try_radii(),
17795 Ok((
17796 Distance::kilometers(765f64),
17797 Distance::kilometers(763.1f64),
17798 Distance::kilometers(762.4f64)
17799 ))
17800 );
17801 }
17802 #[test]
17803 fn test_origin_606() {
17804 assert_eq!(Titan.id().0, 606i32);
17805 assert_eq!(Titan.to_string(), "Titan");
17806 assert_eq!(DynOrigin::from(Titan), DynOrigin::Titan);
17807 }
17808 #[test]
17809 fn test_point_mass_606() {
17810 assert_eq!(
17811 Titan.gravitational_parameter(),
17812 GravitationalParameter::km3_per_s2(8978.137095521046f64)
17813 );
17814 assert_eq!(
17815 DynOrigin::Titan.try_gravitational_parameter(),
17816 Ok(GravitationalParameter::km3_per_s2(8978.137095521046f64))
17817 );
17818 }
17819 #[test]
17820 fn test_mean_radius_606() {
17821 assert_eq!(Titan.mean_radius(), Distance::kilometers(2575f64));
17822 assert_eq!(
17823 DynOrigin::Titan.try_mean_radius(),
17824 Ok(Distance::kilometers(2575f64))
17825 );
17826 }
17827 #[test]
17828 fn test_spheroid_606() {
17829 assert!(DynOrigin::Titan.try_polar_radius().is_err());
17830 assert!(DynOrigin::Titan.try_equatorial_radius().is_err());
17831 }
17832 #[test]
17833 fn test_tri_axial_606() {
17834 assert_eq!(
17835 Titan.radii(),
17836 (
17837 Distance::kilometers(2575.15f64),
17838 Distance::kilometers(2574.78f64),
17839 Distance::kilometers(2574.47f64)
17840 )
17841 );
17842 assert_eq!(
17843 DynOrigin::Titan.try_radii(),
17844 Ok((
17845 Distance::kilometers(2575.15f64),
17846 Distance::kilometers(2574.78f64),
17847 Distance::kilometers(2574.47f64)
17848 ))
17849 );
17850 }
17851 #[test]
17852 fn test_origin_607() {
17853 assert_eq!(Hyperion.id().0, 607i32);
17854 assert_eq!(Hyperion.to_string(), "Hyperion");
17855 assert_eq!(DynOrigin::from(Hyperion), DynOrigin::Hyperion);
17856 }
17857 #[test]
17858 fn test_point_mass_607() {
17859 assert_eq!(
17860 Hyperion.gravitational_parameter(),
17861 GravitationalParameter::km3_per_s2(0.3704913747932265f64)
17862 );
17863 assert_eq!(
17864 DynOrigin::Hyperion.try_gravitational_parameter(),
17865 Ok(GravitationalParameter::km3_per_s2(0.3704913747932265f64))
17866 );
17867 }
17868 #[test]
17869 fn test_mean_radius_607() {
17870 assert_eq!(Hyperion.mean_radius(), Distance::kilometers(135f64));
17871 assert_eq!(
17872 DynOrigin::Hyperion.try_mean_radius(),
17873 Ok(Distance::kilometers(135f64))
17874 );
17875 }
17876 #[test]
17877 fn test_spheroid_607() {
17878 assert!(DynOrigin::Hyperion.try_polar_radius().is_err());
17879 assert!(DynOrigin::Hyperion.try_equatorial_radius().is_err());
17880 }
17881 #[test]
17882 fn test_tri_axial_607() {
17883 assert_eq!(
17884 Hyperion.radii(),
17885 (
17886 Distance::kilometers(180.1f64),
17887 Distance::kilometers(133f64),
17888 Distance::kilometers(102.7f64)
17889 )
17890 );
17891 assert_eq!(
17892 DynOrigin::Hyperion.try_radii(),
17893 Ok((
17894 Distance::kilometers(180.1f64),
17895 Distance::kilometers(133f64),
17896 Distance::kilometers(102.7f64)
17897 ))
17898 );
17899 }
17900 #[test]
17901 fn test_origin_608() {
17902 assert_eq!(Iapetus.id().0, 608i32);
17903 assert_eq!(Iapetus.to_string(), "Iapetus");
17904 assert_eq!(DynOrigin::from(Iapetus), DynOrigin::Iapetus);
17905 }
17906 #[test]
17907 fn test_point_mass_608() {
17908 assert_eq!(
17909 Iapetus.gravitational_parameter(),
17910 GravitationalParameter::km3_per_s2(120.5151060137642f64)
17911 );
17912 assert_eq!(
17913 DynOrigin::Iapetus.try_gravitational_parameter(),
17914 Ok(GravitationalParameter::km3_per_s2(120.5151060137642f64))
17915 );
17916 }
17917 #[test]
17918 fn test_mean_radius_608() {
17919 assert_eq!(Iapetus.mean_radius(), Distance::kilometers(734.3f64));
17920 assert_eq!(
17921 DynOrigin::Iapetus.try_mean_radius(),
17922 Ok(Distance::kilometers(734.3f64))
17923 );
17924 }
17925 #[test]
17926 fn test_spheroid_608() {
17927 assert_eq!(Iapetus.polar_radius(), Distance::kilometers(712.1f64));
17928 assert_eq!(
17929 DynOrigin::Iapetus.try_polar_radius(),
17930 Ok(Distance::kilometers(712.1f64))
17931 );
17932 assert_eq!(Iapetus.equatorial_radius(), Distance::kilometers(745.7f64));
17933 assert_eq!(
17934 DynOrigin::Iapetus.try_equatorial_radius(),
17935 Ok(Distance::kilometers(745.7f64))
17936 );
17937 }
17938 #[test]
17939 fn test_tri_axial_608() {
17940 assert_eq!(
17941 Iapetus.radii(),
17942 (
17943 Distance::kilometers(745.7f64),
17944 Distance::kilometers(745.7f64),
17945 Distance::kilometers(712.1f64)
17946 )
17947 );
17948 assert_eq!(
17949 DynOrigin::Iapetus.try_radii(),
17950 Ok((
17951 Distance::kilometers(745.7f64),
17952 Distance::kilometers(745.7f64),
17953 Distance::kilometers(712.1f64)
17954 ))
17955 );
17956 }
17957 #[test]
17958 fn test_origin_609() {
17959 assert_eq!(Phoebe.id().0, 609i32);
17960 assert_eq!(Phoebe.to_string(), "Phoebe");
17961 assert_eq!(DynOrigin::from(Phoebe), DynOrigin::Phoebe);
17962 }
17963 #[test]
17964 fn test_point_mass_609() {
17965 assert_eq!(
17966 Phoebe.gravitational_parameter(),
17967 GravitationalParameter::km3_per_s2(0.5547860052791678f64)
17968 );
17969 assert_eq!(
17970 DynOrigin::Phoebe.try_gravitational_parameter(),
17971 Ok(GravitationalParameter::km3_per_s2(0.5547860052791678f64))
17972 );
17973 }
17974 #[test]
17975 fn test_mean_radius_609() {
17976 assert_eq!(Phoebe.mean_radius(), Distance::kilometers(106.5f64));
17977 assert_eq!(
17978 DynOrigin::Phoebe.try_mean_radius(),
17979 Ok(Distance::kilometers(106.5f64))
17980 );
17981 }
17982 #[test]
17983 fn test_spheroid_609() {
17984 assert!(DynOrigin::Phoebe.try_polar_radius().is_err());
17985 assert!(DynOrigin::Phoebe.try_equatorial_radius().is_err());
17986 }
17987 #[test]
17988 fn test_tri_axial_609() {
17989 assert_eq!(
17990 Phoebe.radii(),
17991 (
17992 Distance::kilometers(109.4f64),
17993 Distance::kilometers(108.5f64),
17994 Distance::kilometers(101.8f64)
17995 )
17996 );
17997 assert_eq!(
17998 DynOrigin::Phoebe.try_radii(),
17999 Ok((
18000 Distance::kilometers(109.4f64),
18001 Distance::kilometers(108.5f64),
18002 Distance::kilometers(101.8f64)
18003 ))
18004 );
18005 }
18006 #[test]
18007 fn test_origin_610() {
18008 assert_eq!(Janus.id().0, 610i32);
18009 assert_eq!(Janus.to_string(), "Janus");
18010 assert_eq!(DynOrigin::from(Janus), DynOrigin::Janus);
18011 }
18012 #[test]
18013 fn test_point_mass_610() {
18014 assert_eq!(
18015 Janus.gravitational_parameter(),
18016 GravitationalParameter::km3_per_s2(0.1265765099012197f64)
18017 );
18018 assert_eq!(
18019 DynOrigin::Janus.try_gravitational_parameter(),
18020 Ok(GravitationalParameter::km3_per_s2(0.1265765099012197f64))
18021 );
18022 }
18023 #[test]
18024 fn test_mean_radius_610() {
18025 assert_eq!(Janus.mean_radius(), Distance::kilometers(89.2f64));
18026 assert_eq!(
18027 DynOrigin::Janus.try_mean_radius(),
18028 Ok(Distance::kilometers(89.2f64))
18029 );
18030 }
18031 #[test]
18032 fn test_spheroid_610() {
18033 assert!(DynOrigin::Janus.try_polar_radius().is_err());
18034 assert!(DynOrigin::Janus.try_equatorial_radius().is_err());
18035 }
18036 #[test]
18037 fn test_tri_axial_610() {
18038 assert_eq!(
18039 Janus.radii(),
18040 (
18041 Distance::kilometers(101.7f64),
18042 Distance::kilometers(93f64),
18043 Distance::kilometers(76.3f64)
18044 )
18045 );
18046 assert_eq!(
18047 DynOrigin::Janus.try_radii(),
18048 Ok((
18049 Distance::kilometers(101.7f64),
18050 Distance::kilometers(93f64),
18051 Distance::kilometers(76.3f64)
18052 ))
18053 );
18054 }
18055 #[test]
18056 fn test_origin_611() {
18057 assert_eq!(Epimetheus.id().0, 611i32);
18058 assert_eq!(Epimetheus.to_string(), "Epimetheus");
18059 assert_eq!(DynOrigin::from(Epimetheus), DynOrigin::Epimetheus);
18060 }
18061 #[test]
18062 fn test_point_mass_611() {
18063 assert_eq!(
18064 Epimetheus.gravitational_parameter(),
18065 GravitationalParameter::km3_per_s2(0.03512333288208074f64)
18066 );
18067 assert_eq!(
18068 DynOrigin::Epimetheus.try_gravitational_parameter(),
18069 Ok(GravitationalParameter::km3_per_s2(0.03512333288208074f64))
18070 );
18071 }
18072 #[test]
18073 fn test_mean_radius_611() {
18074 assert_eq!(Epimetheus.mean_radius(), Distance::kilometers(58.2f64));
18075 assert_eq!(
18076 DynOrigin::Epimetheus.try_mean_radius(),
18077 Ok(Distance::kilometers(58.2f64))
18078 );
18079 }
18080 #[test]
18081 fn test_spheroid_611() {
18082 assert!(DynOrigin::Epimetheus.try_polar_radius().is_err());
18083 assert!(DynOrigin::Epimetheus.try_equatorial_radius().is_err());
18084 }
18085 #[test]
18086 fn test_tri_axial_611() {
18087 assert_eq!(
18088 Epimetheus.radii(),
18089 (
18090 Distance::kilometers(64.9f64),
18091 Distance::kilometers(57.3f64),
18092 Distance::kilometers(53f64)
18093 )
18094 );
18095 assert_eq!(
18096 DynOrigin::Epimetheus.try_radii(),
18097 Ok((
18098 Distance::kilometers(64.9f64),
18099 Distance::kilometers(57.3f64),
18100 Distance::kilometers(53f64)
18101 ))
18102 );
18103 }
18104 #[test]
18105 fn test_origin_612() {
18106 assert_eq!(Helene.id().0, 612i32);
18107 assert_eq!(Helene.to_string(), "Helene");
18108 assert_eq!(DynOrigin::from(Helene), DynOrigin::Helene);
18109 }
18110 #[test]
18111 fn test_point_mass_612() {
18112 assert_eq!(
18113 Helene.gravitational_parameter(),
18114 GravitationalParameter::km3_per_s2(0.0004757419551776972f64)
18115 );
18116 assert_eq!(
18117 DynOrigin::Helene.try_gravitational_parameter(),
18118 Ok(GravitationalParameter::km3_per_s2(0.0004757419551776972f64))
18119 );
18120 }
18121 #[test]
18122 fn test_mean_radius_612() {
18123 assert_eq!(Helene.mean_radius(), Distance::kilometers(18f64));
18124 assert_eq!(
18125 DynOrigin::Helene.try_mean_radius(),
18126 Ok(Distance::kilometers(18f64))
18127 );
18128 }
18129 #[test]
18130 fn test_spheroid_612() {
18131 assert!(DynOrigin::Helene.try_polar_radius().is_err());
18132 assert!(DynOrigin::Helene.try_equatorial_radius().is_err());
18133 }
18134 #[test]
18135 fn test_tri_axial_612() {
18136 assert_eq!(
18137 Helene.radii(),
18138 (
18139 Distance::kilometers(22.5f64),
18140 Distance::kilometers(19.6f64),
18141 Distance::kilometers(13.3f64)
18142 )
18143 );
18144 assert_eq!(
18145 DynOrigin::Helene.try_radii(),
18146 Ok((
18147 Distance::kilometers(22.5f64),
18148 Distance::kilometers(19.6f64),
18149 Distance::kilometers(13.3f64)
18150 ))
18151 );
18152 }
18153 #[test]
18154 fn test_origin_613() {
18155 assert_eq!(Telesto.id().0, 613i32);
18156 assert_eq!(Telesto.to_string(), "Telesto");
18157 assert_eq!(DynOrigin::from(Telesto), DynOrigin::Telesto);
18158 }
18159 #[test]
18160 fn test_point_mass_613() {
18161 assert!(DynOrigin::Telesto.try_gravitational_parameter().is_err());
18162 }
18163 #[test]
18164 fn test_mean_radius_613() {
18165 assert_eq!(Telesto.mean_radius(), Distance::kilometers(12.4f64));
18166 assert_eq!(
18167 DynOrigin::Telesto.try_mean_radius(),
18168 Ok(Distance::kilometers(12.4f64))
18169 );
18170 }
18171 #[test]
18172 fn test_spheroid_613() {
18173 assert!(DynOrigin::Telesto.try_polar_radius().is_err());
18174 assert!(DynOrigin::Telesto.try_equatorial_radius().is_err());
18175 }
18176 #[test]
18177 fn test_tri_axial_613() {
18178 assert_eq!(
18179 Telesto.radii(),
18180 (
18181 Distance::kilometers(16.3f64),
18182 Distance::kilometers(11.8f64),
18183 Distance::kilometers(9.8f64)
18184 )
18185 );
18186 assert_eq!(
18187 DynOrigin::Telesto.try_radii(),
18188 Ok((
18189 Distance::kilometers(16.3f64),
18190 Distance::kilometers(11.8f64),
18191 Distance::kilometers(9.8f64)
18192 ))
18193 );
18194 }
18195 #[test]
18196 fn test_origin_614() {
18197 assert_eq!(Calypso.id().0, 614i32);
18198 assert_eq!(Calypso.to_string(), "Calypso");
18199 assert_eq!(DynOrigin::from(Calypso), DynOrigin::Calypso);
18200 }
18201 #[test]
18202 fn test_point_mass_614() {
18203 assert!(DynOrigin::Calypso.try_gravitational_parameter().is_err());
18204 }
18205 #[test]
18206 fn test_mean_radius_614() {
18207 assert_eq!(Calypso.mean_radius(), Distance::kilometers(9.6f64));
18208 assert_eq!(
18209 DynOrigin::Calypso.try_mean_radius(),
18210 Ok(Distance::kilometers(9.6f64))
18211 );
18212 }
18213 #[test]
18214 fn test_spheroid_614() {
18215 assert!(DynOrigin::Calypso.try_polar_radius().is_err());
18216 assert!(DynOrigin::Calypso.try_equatorial_radius().is_err());
18217 }
18218 #[test]
18219 fn test_tri_axial_614() {
18220 assert_eq!(
18221 Calypso.radii(),
18222 (
18223 Distance::kilometers(15.3f64),
18224 Distance::kilometers(9.3f64),
18225 Distance::kilometers(6.3f64)
18226 )
18227 );
18228 assert_eq!(
18229 DynOrigin::Calypso.try_radii(),
18230 Ok((
18231 Distance::kilometers(15.3f64),
18232 Distance::kilometers(9.3f64),
18233 Distance::kilometers(6.3f64)
18234 ))
18235 );
18236 }
18237 #[test]
18238 fn test_origin_615() {
18239 assert_eq!(Atlas.id().0, 615i32);
18240 assert_eq!(Atlas.to_string(), "Atlas");
18241 assert_eq!(DynOrigin::from(Atlas), DynOrigin::Atlas);
18242 }
18243 #[test]
18244 fn test_point_mass_615() {
18245 assert_eq!(
18246 Atlas.gravitational_parameter(),
18247 GravitationalParameter::km3_per_s2(0.0003718871247516475f64)
18248 );
18249 assert_eq!(
18250 DynOrigin::Atlas.try_gravitational_parameter(),
18251 Ok(GravitationalParameter::km3_per_s2(0.0003718871247516475f64))
18252 );
18253 }
18254 #[test]
18255 fn test_mean_radius_615() {
18256 assert_eq!(Atlas.mean_radius(), Distance::kilometers(15.1f64));
18257 assert_eq!(
18258 DynOrigin::Atlas.try_mean_radius(),
18259 Ok(Distance::kilometers(15.1f64))
18260 );
18261 }
18262 #[test]
18263 fn test_spheroid_615() {
18264 assert!(DynOrigin::Atlas.try_polar_radius().is_err());
18265 assert!(DynOrigin::Atlas.try_equatorial_radius().is_err());
18266 }
18267 #[test]
18268 fn test_tri_axial_615() {
18269 assert_eq!(
18270 Atlas.radii(),
18271 (
18272 Distance::kilometers(20.5f64),
18273 Distance::kilometers(17.8f64),
18274 Distance::kilometers(9.4f64)
18275 )
18276 );
18277 assert_eq!(
18278 DynOrigin::Atlas.try_radii(),
18279 Ok((
18280 Distance::kilometers(20.5f64),
18281 Distance::kilometers(17.8f64),
18282 Distance::kilometers(9.4f64)
18283 ))
18284 );
18285 }
18286 #[test]
18287 fn test_origin_616() {
18288 assert_eq!(Prometheus.id().0, 616i32);
18289 assert_eq!(Prometheus.to_string(), "Prometheus");
18290 assert_eq!(DynOrigin::from(Prometheus), DynOrigin::Prometheus);
18291 }
18292 #[test]
18293 fn test_point_mass_616() {
18294 assert_eq!(
18295 Prometheus.gravitational_parameter(),
18296 GravitationalParameter::km3_per_s2(0.0107520800100761f64)
18297 );
18298 assert_eq!(
18299 DynOrigin::Prometheus.try_gravitational_parameter(),
18300 Ok(GravitationalParameter::km3_per_s2(0.0107520800100761f64))
18301 );
18302 }
18303 #[test]
18304 fn test_mean_radius_616() {
18305 assert_eq!(Prometheus.mean_radius(), Distance::kilometers(43.1f64));
18306 assert_eq!(
18307 DynOrigin::Prometheus.try_mean_radius(),
18308 Ok(Distance::kilometers(43.1f64))
18309 );
18310 }
18311 #[test]
18312 fn test_spheroid_616() {
18313 assert!(DynOrigin::Prometheus.try_polar_radius().is_err());
18314 assert!(DynOrigin::Prometheus.try_equatorial_radius().is_err());
18315 }
18316 #[test]
18317 fn test_tri_axial_616() {
18318 assert_eq!(
18319 Prometheus.radii(),
18320 (
18321 Distance::kilometers(68.2f64),
18322 Distance::kilometers(41.6f64),
18323 Distance::kilometers(28.2f64)
18324 )
18325 );
18326 assert_eq!(
18327 DynOrigin::Prometheus.try_radii(),
18328 Ok((
18329 Distance::kilometers(68.2f64),
18330 Distance::kilometers(41.6f64),
18331 Distance::kilometers(28.2f64)
18332 ))
18333 );
18334 }
18335 #[test]
18336 fn test_origin_617() {
18337 assert_eq!(Pandora.id().0, 617i32);
18338 assert_eq!(Pandora.to_string(), "Pandora");
18339 assert_eq!(DynOrigin::from(Pandora), DynOrigin::Pandora);
18340 }
18341 #[test]
18342 fn test_point_mass_617() {
18343 assert_eq!(
18344 Pandora.gravitational_parameter(),
18345 GravitationalParameter::km3_per_s2(0.009290325122028795f64)
18346 );
18347 assert_eq!(
18348 DynOrigin::Pandora.try_gravitational_parameter(),
18349 Ok(GravitationalParameter::km3_per_s2(0.009290325122028795f64))
18350 );
18351 }
18352 #[test]
18353 fn test_mean_radius_617() {
18354 assert_eq!(Pandora.mean_radius(), Distance::kilometers(40.6f64));
18355 assert_eq!(
18356 DynOrigin::Pandora.try_mean_radius(),
18357 Ok(Distance::kilometers(40.6f64))
18358 );
18359 }
18360 #[test]
18361 fn test_spheroid_617() {
18362 assert!(DynOrigin::Pandora.try_polar_radius().is_err());
18363 assert!(DynOrigin::Pandora.try_equatorial_radius().is_err());
18364 }
18365 #[test]
18366 fn test_tri_axial_617() {
18367 assert_eq!(
18368 Pandora.radii(),
18369 (
18370 Distance::kilometers(52.2f64),
18371 Distance::kilometers(40.8f64),
18372 Distance::kilometers(31.5f64)
18373 )
18374 );
18375 assert_eq!(
18376 DynOrigin::Pandora.try_radii(),
18377 Ok((
18378 Distance::kilometers(52.2f64),
18379 Distance::kilometers(40.8f64),
18380 Distance::kilometers(31.5f64)
18381 ))
18382 );
18383 }
18384 #[test]
18385 fn test_origin_618() {
18386 assert_eq!(Pan.id().0, 618i32);
18387 assert_eq!(Pan.to_string(), "Pan");
18388 assert_eq!(DynOrigin::from(Pan), DynOrigin::Pan);
18389 }
18390 #[test]
18391 fn test_point_mass_618() {
18392 assert!(DynOrigin::Pan.try_gravitational_parameter().is_err());
18393 }
18394 #[test]
18395 fn test_mean_radius_618() {
18396 assert_eq!(Pan.mean_radius(), Distance::kilometers(14f64));
18397 assert_eq!(
18398 DynOrigin::Pan.try_mean_radius(),
18399 Ok(Distance::kilometers(14f64))
18400 );
18401 }
18402 #[test]
18403 fn test_spheroid_618() {
18404 assert!(DynOrigin::Pan.try_polar_radius().is_err());
18405 assert!(DynOrigin::Pan.try_equatorial_radius().is_err());
18406 }
18407 #[test]
18408 fn test_tri_axial_618() {
18409 assert_eq!(
18410 Pan.radii(),
18411 (
18412 Distance::kilometers(17.2f64),
18413 Distance::kilometers(15.4f64),
18414 Distance::kilometers(10.4f64)
18415 )
18416 );
18417 assert_eq!(
18418 DynOrigin::Pan.try_radii(),
18419 Ok((
18420 Distance::kilometers(17.2f64),
18421 Distance::kilometers(15.4f64),
18422 Distance::kilometers(10.4f64)
18423 ))
18424 );
18425 }
18426 #[test]
18427 fn test_origin_619() {
18428 assert_eq!(Ymir.id().0, 619i32);
18429 assert_eq!(Ymir.to_string(), "Ymir");
18430 assert_eq!(DynOrigin::from(Ymir), DynOrigin::Ymir);
18431 }
18432 #[test]
18433 fn test_point_mass_619() {
18434 assert!(DynOrigin::Ymir.try_gravitational_parameter().is_err());
18435 }
18436 #[test]
18437 fn test_mean_radius_619() {
18438 assert!(DynOrigin::Ymir.try_mean_radius().is_err());
18439 }
18440 #[test]
18441 fn test_tri_axial_619() {
18442 assert!(DynOrigin::Ymir.try_radii().is_err());
18443 }
18444 #[test]
18445 fn test_spheroid_619() {
18446 assert!(DynOrigin::Ymir.try_polar_radius().is_err());
18447 assert!(DynOrigin::Ymir.try_equatorial_radius().is_err());
18448 }
18449 #[test]
18450 fn test_origin_620() {
18451 assert_eq!(Paaliaq.id().0, 620i32);
18452 assert_eq!(Paaliaq.to_string(), "Paaliaq");
18453 assert_eq!(DynOrigin::from(Paaliaq), DynOrigin::Paaliaq);
18454 }
18455 #[test]
18456 fn test_point_mass_620() {
18457 assert!(DynOrigin::Paaliaq.try_gravitational_parameter().is_err());
18458 }
18459 #[test]
18460 fn test_mean_radius_620() {
18461 assert!(DynOrigin::Paaliaq.try_mean_radius().is_err());
18462 }
18463 #[test]
18464 fn test_tri_axial_620() {
18465 assert!(DynOrigin::Paaliaq.try_radii().is_err());
18466 }
18467 #[test]
18468 fn test_spheroid_620() {
18469 assert!(DynOrigin::Paaliaq.try_polar_radius().is_err());
18470 assert!(DynOrigin::Paaliaq.try_equatorial_radius().is_err());
18471 }
18472 #[test]
18473 fn test_origin_621() {
18474 assert_eq!(Tarvos.id().0, 621i32);
18475 assert_eq!(Tarvos.to_string(), "Tarvos");
18476 assert_eq!(DynOrigin::from(Tarvos), DynOrigin::Tarvos);
18477 }
18478 #[test]
18479 fn test_point_mass_621() {
18480 assert!(DynOrigin::Tarvos.try_gravitational_parameter().is_err());
18481 }
18482 #[test]
18483 fn test_mean_radius_621() {
18484 assert!(DynOrigin::Tarvos.try_mean_radius().is_err());
18485 }
18486 #[test]
18487 fn test_tri_axial_621() {
18488 assert!(DynOrigin::Tarvos.try_radii().is_err());
18489 }
18490 #[test]
18491 fn test_spheroid_621() {
18492 assert!(DynOrigin::Tarvos.try_polar_radius().is_err());
18493 assert!(DynOrigin::Tarvos.try_equatorial_radius().is_err());
18494 }
18495 #[test]
18496 fn test_origin_622() {
18497 assert_eq!(Ijiraq.id().0, 622i32);
18498 assert_eq!(Ijiraq.to_string(), "Ijiraq");
18499 assert_eq!(DynOrigin::from(Ijiraq), DynOrigin::Ijiraq);
18500 }
18501 #[test]
18502 fn test_point_mass_622() {
18503 assert!(DynOrigin::Ijiraq.try_gravitational_parameter().is_err());
18504 }
18505 #[test]
18506 fn test_mean_radius_622() {
18507 assert!(DynOrigin::Ijiraq.try_mean_radius().is_err());
18508 }
18509 #[test]
18510 fn test_tri_axial_622() {
18511 assert!(DynOrigin::Ijiraq.try_radii().is_err());
18512 }
18513 #[test]
18514 fn test_spheroid_622() {
18515 assert!(DynOrigin::Ijiraq.try_polar_radius().is_err());
18516 assert!(DynOrigin::Ijiraq.try_equatorial_radius().is_err());
18517 }
18518 #[test]
18519 fn test_origin_623() {
18520 assert_eq!(Suttungr.id().0, 623i32);
18521 assert_eq!(Suttungr.to_string(), "Suttungr");
18522 assert_eq!(DynOrigin::from(Suttungr), DynOrigin::Suttungr);
18523 }
18524 #[test]
18525 fn test_point_mass_623() {
18526 assert!(DynOrigin::Suttungr.try_gravitational_parameter().is_err());
18527 }
18528 #[test]
18529 fn test_mean_radius_623() {
18530 assert!(DynOrigin::Suttungr.try_mean_radius().is_err());
18531 }
18532 #[test]
18533 fn test_tri_axial_623() {
18534 assert!(DynOrigin::Suttungr.try_radii().is_err());
18535 }
18536 #[test]
18537 fn test_spheroid_623() {
18538 assert!(DynOrigin::Suttungr.try_polar_radius().is_err());
18539 assert!(DynOrigin::Suttungr.try_equatorial_radius().is_err());
18540 }
18541 #[test]
18542 fn test_origin_624() {
18543 assert_eq!(Kiviuq.id().0, 624i32);
18544 assert_eq!(Kiviuq.to_string(), "Kiviuq");
18545 assert_eq!(DynOrigin::from(Kiviuq), DynOrigin::Kiviuq);
18546 }
18547 #[test]
18548 fn test_point_mass_624() {
18549 assert!(DynOrigin::Kiviuq.try_gravitational_parameter().is_err());
18550 }
18551 #[test]
18552 fn test_mean_radius_624() {
18553 assert!(DynOrigin::Kiviuq.try_mean_radius().is_err());
18554 }
18555 #[test]
18556 fn test_tri_axial_624() {
18557 assert!(DynOrigin::Kiviuq.try_radii().is_err());
18558 }
18559 #[test]
18560 fn test_spheroid_624() {
18561 assert!(DynOrigin::Kiviuq.try_polar_radius().is_err());
18562 assert!(DynOrigin::Kiviuq.try_equatorial_radius().is_err());
18563 }
18564 #[test]
18565 fn test_origin_625() {
18566 assert_eq!(Mundilfari.id().0, 625i32);
18567 assert_eq!(Mundilfari.to_string(), "Mundilfari");
18568 assert_eq!(DynOrigin::from(Mundilfari), DynOrigin::Mundilfari);
18569 }
18570 #[test]
18571 fn test_point_mass_625() {
18572 assert!(DynOrigin::Mundilfari.try_gravitational_parameter().is_err());
18573 }
18574 #[test]
18575 fn test_mean_radius_625() {
18576 assert!(DynOrigin::Mundilfari.try_mean_radius().is_err());
18577 }
18578 #[test]
18579 fn test_tri_axial_625() {
18580 assert!(DynOrigin::Mundilfari.try_radii().is_err());
18581 }
18582 #[test]
18583 fn test_spheroid_625() {
18584 assert!(DynOrigin::Mundilfari.try_polar_radius().is_err());
18585 assert!(DynOrigin::Mundilfari.try_equatorial_radius().is_err());
18586 }
18587 #[test]
18588 fn test_origin_626() {
18589 assert_eq!(Albiorix.id().0, 626i32);
18590 assert_eq!(Albiorix.to_string(), "Albiorix");
18591 assert_eq!(DynOrigin::from(Albiorix), DynOrigin::Albiorix);
18592 }
18593 #[test]
18594 fn test_point_mass_626() {
18595 assert!(DynOrigin::Albiorix.try_gravitational_parameter().is_err());
18596 }
18597 #[test]
18598 fn test_mean_radius_626() {
18599 assert!(DynOrigin::Albiorix.try_mean_radius().is_err());
18600 }
18601 #[test]
18602 fn test_tri_axial_626() {
18603 assert!(DynOrigin::Albiorix.try_radii().is_err());
18604 }
18605 #[test]
18606 fn test_spheroid_626() {
18607 assert!(DynOrigin::Albiorix.try_polar_radius().is_err());
18608 assert!(DynOrigin::Albiorix.try_equatorial_radius().is_err());
18609 }
18610 #[test]
18611 fn test_origin_627() {
18612 assert_eq!(Skathi.id().0, 627i32);
18613 assert_eq!(Skathi.to_string(), "Skathi");
18614 assert_eq!(DynOrigin::from(Skathi), DynOrigin::Skathi);
18615 }
18616 #[test]
18617 fn test_point_mass_627() {
18618 assert!(DynOrigin::Skathi.try_gravitational_parameter().is_err());
18619 }
18620 #[test]
18621 fn test_mean_radius_627() {
18622 assert!(DynOrigin::Skathi.try_mean_radius().is_err());
18623 }
18624 #[test]
18625 fn test_tri_axial_627() {
18626 assert!(DynOrigin::Skathi.try_radii().is_err());
18627 }
18628 #[test]
18629 fn test_spheroid_627() {
18630 assert!(DynOrigin::Skathi.try_polar_radius().is_err());
18631 assert!(DynOrigin::Skathi.try_equatorial_radius().is_err());
18632 }
18633 #[test]
18634 fn test_origin_628() {
18635 assert_eq!(Erriapus.id().0, 628i32);
18636 assert_eq!(Erriapus.to_string(), "Erriapus");
18637 assert_eq!(DynOrigin::from(Erriapus), DynOrigin::Erriapus);
18638 }
18639 #[test]
18640 fn test_point_mass_628() {
18641 assert!(DynOrigin::Erriapus.try_gravitational_parameter().is_err());
18642 }
18643 #[test]
18644 fn test_mean_radius_628() {
18645 assert!(DynOrigin::Erriapus.try_mean_radius().is_err());
18646 }
18647 #[test]
18648 fn test_tri_axial_628() {
18649 assert!(DynOrigin::Erriapus.try_radii().is_err());
18650 }
18651 #[test]
18652 fn test_spheroid_628() {
18653 assert!(DynOrigin::Erriapus.try_polar_radius().is_err());
18654 assert!(DynOrigin::Erriapus.try_equatorial_radius().is_err());
18655 }
18656 #[test]
18657 fn test_origin_629() {
18658 assert_eq!(Siarnaq.id().0, 629i32);
18659 assert_eq!(Siarnaq.to_string(), "Siarnaq");
18660 assert_eq!(DynOrigin::from(Siarnaq), DynOrigin::Siarnaq);
18661 }
18662 #[test]
18663 fn test_point_mass_629() {
18664 assert!(DynOrigin::Siarnaq.try_gravitational_parameter().is_err());
18665 }
18666 #[test]
18667 fn test_mean_radius_629() {
18668 assert!(DynOrigin::Siarnaq.try_mean_radius().is_err());
18669 }
18670 #[test]
18671 fn test_tri_axial_629() {
18672 assert!(DynOrigin::Siarnaq.try_radii().is_err());
18673 }
18674 #[test]
18675 fn test_spheroid_629() {
18676 assert!(DynOrigin::Siarnaq.try_polar_radius().is_err());
18677 assert!(DynOrigin::Siarnaq.try_equatorial_radius().is_err());
18678 }
18679 #[test]
18680 fn test_origin_630() {
18681 assert_eq!(Thrymr.id().0, 630i32);
18682 assert_eq!(Thrymr.to_string(), "Thrymr");
18683 assert_eq!(DynOrigin::from(Thrymr), DynOrigin::Thrymr);
18684 }
18685 #[test]
18686 fn test_point_mass_630() {
18687 assert!(DynOrigin::Thrymr.try_gravitational_parameter().is_err());
18688 }
18689 #[test]
18690 fn test_mean_radius_630() {
18691 assert!(DynOrigin::Thrymr.try_mean_radius().is_err());
18692 }
18693 #[test]
18694 fn test_tri_axial_630() {
18695 assert!(DynOrigin::Thrymr.try_radii().is_err());
18696 }
18697 #[test]
18698 fn test_spheroid_630() {
18699 assert!(DynOrigin::Thrymr.try_polar_radius().is_err());
18700 assert!(DynOrigin::Thrymr.try_equatorial_radius().is_err());
18701 }
18702 #[test]
18703 fn test_origin_631() {
18704 assert_eq!(Narvi.id().0, 631i32);
18705 assert_eq!(Narvi.to_string(), "Narvi");
18706 assert_eq!(DynOrigin::from(Narvi), DynOrigin::Narvi);
18707 }
18708 #[test]
18709 fn test_point_mass_631() {
18710 assert!(DynOrigin::Narvi.try_gravitational_parameter().is_err());
18711 }
18712 #[test]
18713 fn test_mean_radius_631() {
18714 assert!(DynOrigin::Narvi.try_mean_radius().is_err());
18715 }
18716 #[test]
18717 fn test_tri_axial_631() {
18718 assert!(DynOrigin::Narvi.try_radii().is_err());
18719 }
18720 #[test]
18721 fn test_spheroid_631() {
18722 assert!(DynOrigin::Narvi.try_polar_radius().is_err());
18723 assert!(DynOrigin::Narvi.try_equatorial_radius().is_err());
18724 }
18725 #[test]
18726 fn test_origin_632() {
18727 assert_eq!(Methone.id().0, 632i32);
18728 assert_eq!(Methone.to_string(), "Methone");
18729 assert_eq!(DynOrigin::from(Methone), DynOrigin::Methone);
18730 }
18731 #[test]
18732 fn test_point_mass_632() {
18733 assert!(DynOrigin::Methone.try_gravitational_parameter().is_err());
18734 }
18735 #[test]
18736 fn test_mean_radius_632() {
18737 assert_eq!(Methone.mean_radius(), Distance::kilometers(1.45f64));
18738 assert_eq!(
18739 DynOrigin::Methone.try_mean_radius(),
18740 Ok(Distance::kilometers(1.45f64))
18741 );
18742 }
18743 #[test]
18744 fn test_spheroid_632() {
18745 assert!(DynOrigin::Methone.try_polar_radius().is_err());
18746 assert!(DynOrigin::Methone.try_equatorial_radius().is_err());
18747 }
18748 #[test]
18749 fn test_tri_axial_632() {
18750 assert_eq!(
18751 Methone.radii(),
18752 (
18753 Distance::kilometers(1.94f64),
18754 Distance::kilometers(1.29f64),
18755 Distance::kilometers(1.21f64)
18756 )
18757 );
18758 assert_eq!(
18759 DynOrigin::Methone.try_radii(),
18760 Ok((
18761 Distance::kilometers(1.94f64),
18762 Distance::kilometers(1.29f64),
18763 Distance::kilometers(1.21f64)
18764 ))
18765 );
18766 }
18767 #[test]
18768 fn test_origin_633() {
18769 assert_eq!(Pallene.id().0, 633i32);
18770 assert_eq!(Pallene.to_string(), "Pallene");
18771 assert_eq!(DynOrigin::from(Pallene), DynOrigin::Pallene);
18772 }
18773 #[test]
18774 fn test_point_mass_633() {
18775 assert!(DynOrigin::Pallene.try_gravitational_parameter().is_err());
18776 }
18777 #[test]
18778 fn test_mean_radius_633() {
18779 assert_eq!(Pallene.mean_radius(), Distance::kilometers(2.23f64));
18780 assert_eq!(
18781 DynOrigin::Pallene.try_mean_radius(),
18782 Ok(Distance::kilometers(2.23f64))
18783 );
18784 }
18785 #[test]
18786 fn test_spheroid_633() {
18787 assert!(DynOrigin::Pallene.try_polar_radius().is_err());
18788 assert!(DynOrigin::Pallene.try_equatorial_radius().is_err());
18789 }
18790 #[test]
18791 fn test_tri_axial_633() {
18792 assert_eq!(
18793 Pallene.radii(),
18794 (
18795 Distance::kilometers(2.88f64),
18796 Distance::kilometers(2.08f64),
18797 Distance::kilometers(1.8f64)
18798 )
18799 );
18800 assert_eq!(
18801 DynOrigin::Pallene.try_radii(),
18802 Ok((
18803 Distance::kilometers(2.88f64),
18804 Distance::kilometers(2.08f64),
18805 Distance::kilometers(1.8f64)
18806 ))
18807 );
18808 }
18809 #[test]
18810 fn test_origin_634() {
18811 assert_eq!(Polydeuces.id().0, 634i32);
18812 assert_eq!(Polydeuces.to_string(), "Polydeuces");
18813 assert_eq!(DynOrigin::from(Polydeuces), DynOrigin::Polydeuces);
18814 }
18815 #[test]
18816 fn test_point_mass_634() {
18817 assert!(DynOrigin::Polydeuces.try_gravitational_parameter().is_err());
18818 }
18819 #[test]
18820 fn test_mean_radius_634() {
18821 assert_eq!(Polydeuces.mean_radius(), Distance::kilometers(1.3f64));
18822 assert_eq!(
18823 DynOrigin::Polydeuces.try_mean_radius(),
18824 Ok(Distance::kilometers(1.3f64))
18825 );
18826 }
18827 #[test]
18828 fn test_spheroid_634() {
18829 assert!(DynOrigin::Polydeuces.try_polar_radius().is_err());
18830 assert!(DynOrigin::Polydeuces.try_equatorial_radius().is_err());
18831 }
18832 #[test]
18833 fn test_tri_axial_634() {
18834 assert_eq!(
18835 Polydeuces.radii(),
18836 (
18837 Distance::kilometers(1.5f64),
18838 Distance::kilometers(1.2f64),
18839 Distance::kilometers(1f64)
18840 )
18841 );
18842 assert_eq!(
18843 DynOrigin::Polydeuces.try_radii(),
18844 Ok((
18845 Distance::kilometers(1.5f64),
18846 Distance::kilometers(1.2f64),
18847 Distance::kilometers(1f64)
18848 ))
18849 );
18850 }
18851 #[test]
18852 fn test_origin_635() {
18853 assert_eq!(Daphnis.id().0, 635i32);
18854 assert_eq!(Daphnis.to_string(), "Daphnis");
18855 assert_eq!(DynOrigin::from(Daphnis), DynOrigin::Daphnis);
18856 }
18857 #[test]
18858 fn test_point_mass_635() {
18859 assert!(DynOrigin::Daphnis.try_gravitational_parameter().is_err());
18860 }
18861 #[test]
18862 fn test_mean_radius_635() {
18863 assert_eq!(Daphnis.mean_radius(), Distance::kilometers(3.8f64));
18864 assert_eq!(
18865 DynOrigin::Daphnis.try_mean_radius(),
18866 Ok(Distance::kilometers(3.8f64))
18867 );
18868 }
18869 #[test]
18870 fn test_spheroid_635() {
18871 assert!(DynOrigin::Daphnis.try_polar_radius().is_err());
18872 assert!(DynOrigin::Daphnis.try_equatorial_radius().is_err());
18873 }
18874 #[test]
18875 fn test_tri_axial_635() {
18876 assert_eq!(
18877 Daphnis.radii(),
18878 (
18879 Distance::kilometers(4.6f64),
18880 Distance::kilometers(4.5f64),
18881 Distance::kilometers(2.8f64)
18882 )
18883 );
18884 assert_eq!(
18885 DynOrigin::Daphnis.try_radii(),
18886 Ok((
18887 Distance::kilometers(4.6f64),
18888 Distance::kilometers(4.5f64),
18889 Distance::kilometers(2.8f64)
18890 ))
18891 );
18892 }
18893 #[test]
18894 fn test_origin_636() {
18895 assert_eq!(Aegir.id().0, 636i32);
18896 assert_eq!(Aegir.to_string(), "Aegir");
18897 assert_eq!(DynOrigin::from(Aegir), DynOrigin::Aegir);
18898 }
18899 #[test]
18900 fn test_point_mass_636() {
18901 assert!(DynOrigin::Aegir.try_gravitational_parameter().is_err());
18902 }
18903 #[test]
18904 fn test_mean_radius_636() {
18905 assert!(DynOrigin::Aegir.try_mean_radius().is_err());
18906 }
18907 #[test]
18908 fn test_tri_axial_636() {
18909 assert!(DynOrigin::Aegir.try_radii().is_err());
18910 }
18911 #[test]
18912 fn test_spheroid_636() {
18913 assert!(DynOrigin::Aegir.try_polar_radius().is_err());
18914 assert!(DynOrigin::Aegir.try_equatorial_radius().is_err());
18915 }
18916 #[test]
18917 fn test_origin_637() {
18918 assert_eq!(Bebhionn.id().0, 637i32);
18919 assert_eq!(Bebhionn.to_string(), "Bebhionn");
18920 assert_eq!(DynOrigin::from(Bebhionn), DynOrigin::Bebhionn);
18921 }
18922 #[test]
18923 fn test_point_mass_637() {
18924 assert!(DynOrigin::Bebhionn.try_gravitational_parameter().is_err());
18925 }
18926 #[test]
18927 fn test_mean_radius_637() {
18928 assert!(DynOrigin::Bebhionn.try_mean_radius().is_err());
18929 }
18930 #[test]
18931 fn test_tri_axial_637() {
18932 assert!(DynOrigin::Bebhionn.try_radii().is_err());
18933 }
18934 #[test]
18935 fn test_spheroid_637() {
18936 assert!(DynOrigin::Bebhionn.try_polar_radius().is_err());
18937 assert!(DynOrigin::Bebhionn.try_equatorial_radius().is_err());
18938 }
18939 #[test]
18940 fn test_origin_638() {
18941 assert_eq!(Bergelmir.id().0, 638i32);
18942 assert_eq!(Bergelmir.to_string(), "Bergelmir");
18943 assert_eq!(DynOrigin::from(Bergelmir), DynOrigin::Bergelmir);
18944 }
18945 #[test]
18946 fn test_point_mass_638() {
18947 assert!(DynOrigin::Bergelmir.try_gravitational_parameter().is_err());
18948 }
18949 #[test]
18950 fn test_mean_radius_638() {
18951 assert!(DynOrigin::Bergelmir.try_mean_radius().is_err());
18952 }
18953 #[test]
18954 fn test_tri_axial_638() {
18955 assert!(DynOrigin::Bergelmir.try_radii().is_err());
18956 }
18957 #[test]
18958 fn test_spheroid_638() {
18959 assert!(DynOrigin::Bergelmir.try_polar_radius().is_err());
18960 assert!(DynOrigin::Bergelmir.try_equatorial_radius().is_err());
18961 }
18962 #[test]
18963 fn test_origin_639() {
18964 assert_eq!(Bestla.id().0, 639i32);
18965 assert_eq!(Bestla.to_string(), "Bestla");
18966 assert_eq!(DynOrigin::from(Bestla), DynOrigin::Bestla);
18967 }
18968 #[test]
18969 fn test_point_mass_639() {
18970 assert!(DynOrigin::Bestla.try_gravitational_parameter().is_err());
18971 }
18972 #[test]
18973 fn test_mean_radius_639() {
18974 assert!(DynOrigin::Bestla.try_mean_radius().is_err());
18975 }
18976 #[test]
18977 fn test_tri_axial_639() {
18978 assert!(DynOrigin::Bestla.try_radii().is_err());
18979 }
18980 #[test]
18981 fn test_spheroid_639() {
18982 assert!(DynOrigin::Bestla.try_polar_radius().is_err());
18983 assert!(DynOrigin::Bestla.try_equatorial_radius().is_err());
18984 }
18985 #[test]
18986 fn test_origin_640() {
18987 assert_eq!(Farbauti.id().0, 640i32);
18988 assert_eq!(Farbauti.to_string(), "Farbauti");
18989 assert_eq!(DynOrigin::from(Farbauti), DynOrigin::Farbauti);
18990 }
18991 #[test]
18992 fn test_point_mass_640() {
18993 assert!(DynOrigin::Farbauti.try_gravitational_parameter().is_err());
18994 }
18995 #[test]
18996 fn test_mean_radius_640() {
18997 assert!(DynOrigin::Farbauti.try_mean_radius().is_err());
18998 }
18999 #[test]
19000 fn test_tri_axial_640() {
19001 assert!(DynOrigin::Farbauti.try_radii().is_err());
19002 }
19003 #[test]
19004 fn test_spheroid_640() {
19005 assert!(DynOrigin::Farbauti.try_polar_radius().is_err());
19006 assert!(DynOrigin::Farbauti.try_equatorial_radius().is_err());
19007 }
19008 #[test]
19009 fn test_origin_641() {
19010 assert_eq!(Fenrir.id().0, 641i32);
19011 assert_eq!(Fenrir.to_string(), "Fenrir");
19012 assert_eq!(DynOrigin::from(Fenrir), DynOrigin::Fenrir);
19013 }
19014 #[test]
19015 fn test_point_mass_641() {
19016 assert!(DynOrigin::Fenrir.try_gravitational_parameter().is_err());
19017 }
19018 #[test]
19019 fn test_mean_radius_641() {
19020 assert!(DynOrigin::Fenrir.try_mean_radius().is_err());
19021 }
19022 #[test]
19023 fn test_tri_axial_641() {
19024 assert!(DynOrigin::Fenrir.try_radii().is_err());
19025 }
19026 #[test]
19027 fn test_spheroid_641() {
19028 assert!(DynOrigin::Fenrir.try_polar_radius().is_err());
19029 assert!(DynOrigin::Fenrir.try_equatorial_radius().is_err());
19030 }
19031 #[test]
19032 fn test_origin_642() {
19033 assert_eq!(Fornjot.id().0, 642i32);
19034 assert_eq!(Fornjot.to_string(), "Fornjot");
19035 assert_eq!(DynOrigin::from(Fornjot), DynOrigin::Fornjot);
19036 }
19037 #[test]
19038 fn test_point_mass_642() {
19039 assert!(DynOrigin::Fornjot.try_gravitational_parameter().is_err());
19040 }
19041 #[test]
19042 fn test_mean_radius_642() {
19043 assert!(DynOrigin::Fornjot.try_mean_radius().is_err());
19044 }
19045 #[test]
19046 fn test_tri_axial_642() {
19047 assert!(DynOrigin::Fornjot.try_radii().is_err());
19048 }
19049 #[test]
19050 fn test_spheroid_642() {
19051 assert!(DynOrigin::Fornjot.try_polar_radius().is_err());
19052 assert!(DynOrigin::Fornjot.try_equatorial_radius().is_err());
19053 }
19054 #[test]
19055 fn test_origin_643() {
19056 assert_eq!(Hati.id().0, 643i32);
19057 assert_eq!(Hati.to_string(), "Hati");
19058 assert_eq!(DynOrigin::from(Hati), DynOrigin::Hati);
19059 }
19060 #[test]
19061 fn test_point_mass_643() {
19062 assert!(DynOrigin::Hati.try_gravitational_parameter().is_err());
19063 }
19064 #[test]
19065 fn test_mean_radius_643() {
19066 assert!(DynOrigin::Hati.try_mean_radius().is_err());
19067 }
19068 #[test]
19069 fn test_tri_axial_643() {
19070 assert!(DynOrigin::Hati.try_radii().is_err());
19071 }
19072 #[test]
19073 fn test_spheroid_643() {
19074 assert!(DynOrigin::Hati.try_polar_radius().is_err());
19075 assert!(DynOrigin::Hati.try_equatorial_radius().is_err());
19076 }
19077 #[test]
19078 fn test_origin_644() {
19079 assert_eq!(Hyrrokkin.id().0, 644i32);
19080 assert_eq!(Hyrrokkin.to_string(), "Hyrrokkin");
19081 assert_eq!(DynOrigin::from(Hyrrokkin), DynOrigin::Hyrrokkin);
19082 }
19083 #[test]
19084 fn test_point_mass_644() {
19085 assert!(DynOrigin::Hyrrokkin.try_gravitational_parameter().is_err());
19086 }
19087 #[test]
19088 fn test_mean_radius_644() {
19089 assert!(DynOrigin::Hyrrokkin.try_mean_radius().is_err());
19090 }
19091 #[test]
19092 fn test_tri_axial_644() {
19093 assert!(DynOrigin::Hyrrokkin.try_radii().is_err());
19094 }
19095 #[test]
19096 fn test_spheroid_644() {
19097 assert!(DynOrigin::Hyrrokkin.try_polar_radius().is_err());
19098 assert!(DynOrigin::Hyrrokkin.try_equatorial_radius().is_err());
19099 }
19100 #[test]
19101 fn test_origin_645() {
19102 assert_eq!(Kari.id().0, 645i32);
19103 assert_eq!(Kari.to_string(), "Kari");
19104 assert_eq!(DynOrigin::from(Kari), DynOrigin::Kari);
19105 }
19106 #[test]
19107 fn test_point_mass_645() {
19108 assert!(DynOrigin::Kari.try_gravitational_parameter().is_err());
19109 }
19110 #[test]
19111 fn test_mean_radius_645() {
19112 assert!(DynOrigin::Kari.try_mean_radius().is_err());
19113 }
19114 #[test]
19115 fn test_tri_axial_645() {
19116 assert!(DynOrigin::Kari.try_radii().is_err());
19117 }
19118 #[test]
19119 fn test_spheroid_645() {
19120 assert!(DynOrigin::Kari.try_polar_radius().is_err());
19121 assert!(DynOrigin::Kari.try_equatorial_radius().is_err());
19122 }
19123 #[test]
19124 fn test_origin_646() {
19125 assert_eq!(Loge.id().0, 646i32);
19126 assert_eq!(Loge.to_string(), "Loge");
19127 assert_eq!(DynOrigin::from(Loge), DynOrigin::Loge);
19128 }
19129 #[test]
19130 fn test_point_mass_646() {
19131 assert!(DynOrigin::Loge.try_gravitational_parameter().is_err());
19132 }
19133 #[test]
19134 fn test_mean_radius_646() {
19135 assert!(DynOrigin::Loge.try_mean_radius().is_err());
19136 }
19137 #[test]
19138 fn test_tri_axial_646() {
19139 assert!(DynOrigin::Loge.try_radii().is_err());
19140 }
19141 #[test]
19142 fn test_spheroid_646() {
19143 assert!(DynOrigin::Loge.try_polar_radius().is_err());
19144 assert!(DynOrigin::Loge.try_equatorial_radius().is_err());
19145 }
19146 #[test]
19147 fn test_origin_647() {
19148 assert_eq!(Skoll.id().0, 647i32);
19149 assert_eq!(Skoll.to_string(), "Skoll");
19150 assert_eq!(DynOrigin::from(Skoll), DynOrigin::Skoll);
19151 }
19152 #[test]
19153 fn test_point_mass_647() {
19154 assert!(DynOrigin::Skoll.try_gravitational_parameter().is_err());
19155 }
19156 #[test]
19157 fn test_mean_radius_647() {
19158 assert!(DynOrigin::Skoll.try_mean_radius().is_err());
19159 }
19160 #[test]
19161 fn test_tri_axial_647() {
19162 assert!(DynOrigin::Skoll.try_radii().is_err());
19163 }
19164 #[test]
19165 fn test_spheroid_647() {
19166 assert!(DynOrigin::Skoll.try_polar_radius().is_err());
19167 assert!(DynOrigin::Skoll.try_equatorial_radius().is_err());
19168 }
19169 #[test]
19170 fn test_origin_648() {
19171 assert_eq!(Surtur.id().0, 648i32);
19172 assert_eq!(Surtur.to_string(), "Surtur");
19173 assert_eq!(DynOrigin::from(Surtur), DynOrigin::Surtur);
19174 }
19175 #[test]
19176 fn test_point_mass_648() {
19177 assert!(DynOrigin::Surtur.try_gravitational_parameter().is_err());
19178 }
19179 #[test]
19180 fn test_mean_radius_648() {
19181 assert!(DynOrigin::Surtur.try_mean_radius().is_err());
19182 }
19183 #[test]
19184 fn test_tri_axial_648() {
19185 assert!(DynOrigin::Surtur.try_radii().is_err());
19186 }
19187 #[test]
19188 fn test_spheroid_648() {
19189 assert!(DynOrigin::Surtur.try_polar_radius().is_err());
19190 assert!(DynOrigin::Surtur.try_equatorial_radius().is_err());
19191 }
19192 #[test]
19193 fn test_origin_649() {
19194 assert_eq!(Anthe.id().0, 649i32);
19195 assert_eq!(Anthe.to_string(), "Anthe");
19196 assert_eq!(DynOrigin::from(Anthe), DynOrigin::Anthe);
19197 }
19198 #[test]
19199 fn test_point_mass_649() {
19200 assert!(DynOrigin::Anthe.try_gravitational_parameter().is_err());
19201 }
19202 #[test]
19203 fn test_mean_radius_649() {
19204 assert_eq!(Anthe.mean_radius(), Distance::kilometers(0.5f64));
19205 assert_eq!(
19206 DynOrigin::Anthe.try_mean_radius(),
19207 Ok(Distance::kilometers(0.5f64))
19208 );
19209 }
19210 #[test]
19211 fn test_spheroid_649() {
19212 assert_eq!(Anthe.polar_radius(), Distance::kilometers(0.5f64));
19213 assert_eq!(
19214 DynOrigin::Anthe.try_polar_radius(),
19215 Ok(Distance::kilometers(0.5f64))
19216 );
19217 assert_eq!(Anthe.equatorial_radius(), Distance::kilometers(0.5f64));
19218 assert_eq!(
19219 DynOrigin::Anthe.try_equatorial_radius(),
19220 Ok(Distance::kilometers(0.5f64))
19221 );
19222 }
19223 #[test]
19224 fn test_tri_axial_649() {
19225 assert_eq!(
19226 Anthe.radii(),
19227 (
19228 Distance::kilometers(0.5f64),
19229 Distance::kilometers(0.5f64),
19230 Distance::kilometers(0.5f64)
19231 )
19232 );
19233 assert_eq!(
19234 DynOrigin::Anthe.try_radii(),
19235 Ok((
19236 Distance::kilometers(0.5f64),
19237 Distance::kilometers(0.5f64),
19238 Distance::kilometers(0.5f64)
19239 ))
19240 );
19241 }
19242 #[test]
19243 fn test_origin_650() {
19244 assert_eq!(Jarnsaxa.id().0, 650i32);
19245 assert_eq!(Jarnsaxa.to_string(), "Jarnsaxa");
19246 assert_eq!(DynOrigin::from(Jarnsaxa), DynOrigin::Jarnsaxa);
19247 }
19248 #[test]
19249 fn test_point_mass_650() {
19250 assert!(DynOrigin::Jarnsaxa.try_gravitational_parameter().is_err());
19251 }
19252 #[test]
19253 fn test_mean_radius_650() {
19254 assert!(DynOrigin::Jarnsaxa.try_mean_radius().is_err());
19255 }
19256 #[test]
19257 fn test_tri_axial_650() {
19258 assert!(DynOrigin::Jarnsaxa.try_radii().is_err());
19259 }
19260 #[test]
19261 fn test_spheroid_650() {
19262 assert!(DynOrigin::Jarnsaxa.try_polar_radius().is_err());
19263 assert!(DynOrigin::Jarnsaxa.try_equatorial_radius().is_err());
19264 }
19265 #[test]
19266 fn test_origin_651() {
19267 assert_eq!(Greip.id().0, 651i32);
19268 assert_eq!(Greip.to_string(), "Greip");
19269 assert_eq!(DynOrigin::from(Greip), DynOrigin::Greip);
19270 }
19271 #[test]
19272 fn test_point_mass_651() {
19273 assert!(DynOrigin::Greip.try_gravitational_parameter().is_err());
19274 }
19275 #[test]
19276 fn test_mean_radius_651() {
19277 assert!(DynOrigin::Greip.try_mean_radius().is_err());
19278 }
19279 #[test]
19280 fn test_tri_axial_651() {
19281 assert!(DynOrigin::Greip.try_radii().is_err());
19282 }
19283 #[test]
19284 fn test_spheroid_651() {
19285 assert!(DynOrigin::Greip.try_polar_radius().is_err());
19286 assert!(DynOrigin::Greip.try_equatorial_radius().is_err());
19287 }
19288 #[test]
19289 fn test_origin_652() {
19290 assert_eq!(Tarqeq.id().0, 652i32);
19291 assert_eq!(Tarqeq.to_string(), "Tarqeq");
19292 assert_eq!(DynOrigin::from(Tarqeq), DynOrigin::Tarqeq);
19293 }
19294 #[test]
19295 fn test_point_mass_652() {
19296 assert!(DynOrigin::Tarqeq.try_gravitational_parameter().is_err());
19297 }
19298 #[test]
19299 fn test_mean_radius_652() {
19300 assert!(DynOrigin::Tarqeq.try_mean_radius().is_err());
19301 }
19302 #[test]
19303 fn test_tri_axial_652() {
19304 assert!(DynOrigin::Tarqeq.try_radii().is_err());
19305 }
19306 #[test]
19307 fn test_spheroid_652() {
19308 assert!(DynOrigin::Tarqeq.try_polar_radius().is_err());
19309 assert!(DynOrigin::Tarqeq.try_equatorial_radius().is_err());
19310 }
19311 #[test]
19312 fn test_origin_653() {
19313 assert_eq!(Aegaeon.id().0, 653i32);
19314 assert_eq!(Aegaeon.to_string(), "Aegaeon");
19315 assert_eq!(DynOrigin::from(Aegaeon), DynOrigin::Aegaeon);
19316 }
19317 #[test]
19318 fn test_point_mass_653() {
19319 assert!(DynOrigin::Aegaeon.try_gravitational_parameter().is_err());
19320 }
19321 #[test]
19322 fn test_mean_radius_653() {
19323 assert_eq!(Aegaeon.mean_radius(), Distance::kilometers(0.33f64));
19324 assert_eq!(
19325 DynOrigin::Aegaeon.try_mean_radius(),
19326 Ok(Distance::kilometers(0.33f64))
19327 );
19328 }
19329 #[test]
19330 fn test_spheroid_653() {
19331 assert!(DynOrigin::Aegaeon.try_polar_radius().is_err());
19332 assert!(DynOrigin::Aegaeon.try_equatorial_radius().is_err());
19333 }
19334 #[test]
19335 fn test_tri_axial_653() {
19336 assert_eq!(
19337 Aegaeon.radii(),
19338 (
19339 Distance::kilometers(0.7f64),
19340 Distance::kilometers(0.25f64),
19341 Distance::kilometers(0.2f64)
19342 )
19343 );
19344 assert_eq!(
19345 DynOrigin::Aegaeon.try_radii(),
19346 Ok((
19347 Distance::kilometers(0.7f64),
19348 Distance::kilometers(0.25f64),
19349 Distance::kilometers(0.2f64)
19350 ))
19351 );
19352 }
19353 #[test]
19354 fn test_origin_701() {
19355 assert_eq!(Ariel.id().0, 701i32);
19356 assert_eq!(Ariel.to_string(), "Ariel");
19357 assert_eq!(DynOrigin::from(Ariel), DynOrigin::Ariel);
19358 }
19359 #[test]
19360 fn test_point_mass_701() {
19361 assert_eq!(
19362 Ariel.gravitational_parameter(),
19363 GravitationalParameter::km3_per_s2(83.46344431770477f64)
19364 );
19365 assert_eq!(
19366 DynOrigin::Ariel.try_gravitational_parameter(),
19367 Ok(GravitationalParameter::km3_per_s2(83.46344431770477f64))
19368 );
19369 }
19370 #[test]
19371 fn test_mean_radius_701() {
19372 assert_eq!(Ariel.mean_radius(), Distance::kilometers(578.9f64));
19373 assert_eq!(
19374 DynOrigin::Ariel.try_mean_radius(),
19375 Ok(Distance::kilometers(578.9f64))
19376 );
19377 }
19378 #[test]
19379 fn test_spheroid_701() {
19380 assert!(DynOrigin::Ariel.try_polar_radius().is_err());
19381 assert!(DynOrigin::Ariel.try_equatorial_radius().is_err());
19382 }
19383 #[test]
19384 fn test_tri_axial_701() {
19385 assert_eq!(
19386 Ariel.radii(),
19387 (
19388 Distance::kilometers(581.1f64),
19389 Distance::kilometers(577.9f64),
19390 Distance::kilometers(577.7f64)
19391 )
19392 );
19393 assert_eq!(
19394 DynOrigin::Ariel.try_radii(),
19395 Ok((
19396 Distance::kilometers(581.1f64),
19397 Distance::kilometers(577.9f64),
19398 Distance::kilometers(577.7f64)
19399 ))
19400 );
19401 }
19402 #[test]
19403 fn test_origin_702() {
19404 assert_eq!(Umbriel.id().0, 702i32);
19405 assert_eq!(Umbriel.to_string(), "Umbriel");
19406 assert_eq!(DynOrigin::from(Umbriel), DynOrigin::Umbriel);
19407 }
19408 #[test]
19409 fn test_point_mass_702() {
19410 assert_eq!(
19411 Umbriel.gravitational_parameter(),
19412 GravitationalParameter::km3_per_s2(85.09338094489388f64)
19413 );
19414 assert_eq!(
19415 DynOrigin::Umbriel.try_gravitational_parameter(),
19416 Ok(GravitationalParameter::km3_per_s2(85.09338094489388f64))
19417 );
19418 }
19419 #[test]
19420 fn test_mean_radius_702() {
19421 assert_eq!(Umbriel.mean_radius(), Distance::kilometers(584.7f64));
19422 assert_eq!(
19423 DynOrigin::Umbriel.try_mean_radius(),
19424 Ok(Distance::kilometers(584.7f64))
19425 );
19426 }
19427 #[test]
19428 fn test_spheroid_702() {
19429 assert_eq!(Umbriel.polar_radius(), Distance::kilometers(584.7f64));
19430 assert_eq!(
19431 DynOrigin::Umbriel.try_polar_radius(),
19432 Ok(Distance::kilometers(584.7f64))
19433 );
19434 assert_eq!(Umbriel.equatorial_radius(), Distance::kilometers(584.7f64));
19435 assert_eq!(
19436 DynOrigin::Umbriel.try_equatorial_radius(),
19437 Ok(Distance::kilometers(584.7f64))
19438 );
19439 }
19440 #[test]
19441 fn test_tri_axial_702() {
19442 assert_eq!(
19443 Umbriel.radii(),
19444 (
19445 Distance::kilometers(584.7f64),
19446 Distance::kilometers(584.7f64),
19447 Distance::kilometers(584.7f64)
19448 )
19449 );
19450 assert_eq!(
19451 DynOrigin::Umbriel.try_radii(),
19452 Ok((
19453 Distance::kilometers(584.7f64),
19454 Distance::kilometers(584.7f64),
19455 Distance::kilometers(584.7f64)
19456 ))
19457 );
19458 }
19459 #[test]
19460 fn test_origin_703() {
19461 assert_eq!(Titania.id().0, 703i32);
19462 assert_eq!(Titania.to_string(), "Titania");
19463 assert_eq!(DynOrigin::from(Titania), DynOrigin::Titania);
19464 }
19465 #[test]
19466 fn test_point_mass_703() {
19467 assert_eq!(
19468 Titania.gravitational_parameter(),
19469 GravitationalParameter::km3_per_s2(226.9437003741248f64)
19470 );
19471 assert_eq!(
19472 DynOrigin::Titania.try_gravitational_parameter(),
19473 Ok(GravitationalParameter::km3_per_s2(226.9437003741248f64))
19474 );
19475 }
19476 #[test]
19477 fn test_mean_radius_703() {
19478 assert_eq!(Titania.mean_radius(), Distance::kilometers(788.9f64));
19479 assert_eq!(
19480 DynOrigin::Titania.try_mean_radius(),
19481 Ok(Distance::kilometers(788.9f64))
19482 );
19483 }
19484 #[test]
19485 fn test_spheroid_703() {
19486 assert_eq!(Titania.polar_radius(), Distance::kilometers(788.9f64));
19487 assert_eq!(
19488 DynOrigin::Titania.try_polar_radius(),
19489 Ok(Distance::kilometers(788.9f64))
19490 );
19491 assert_eq!(Titania.equatorial_radius(), Distance::kilometers(788.9f64));
19492 assert_eq!(
19493 DynOrigin::Titania.try_equatorial_radius(),
19494 Ok(Distance::kilometers(788.9f64))
19495 );
19496 }
19497 #[test]
19498 fn test_tri_axial_703() {
19499 assert_eq!(
19500 Titania.radii(),
19501 (
19502 Distance::kilometers(788.9f64),
19503 Distance::kilometers(788.9f64),
19504 Distance::kilometers(788.9f64)
19505 )
19506 );
19507 assert_eq!(
19508 DynOrigin::Titania.try_radii(),
19509 Ok((
19510 Distance::kilometers(788.9f64),
19511 Distance::kilometers(788.9f64),
19512 Distance::kilometers(788.9f64)
19513 ))
19514 );
19515 }
19516 #[test]
19517 fn test_origin_704() {
19518 assert_eq!(Oberon.id().0, 704i32);
19519 assert_eq!(Oberon.to_string(), "Oberon");
19520 assert_eq!(DynOrigin::from(Oberon), DynOrigin::Oberon);
19521 }
19522 #[test]
19523 fn test_point_mass_704() {
19524 assert_eq!(
19525 Oberon.gravitational_parameter(),
19526 GravitationalParameter::km3_per_s2(205.3234302535623f64)
19527 );
19528 assert_eq!(
19529 DynOrigin::Oberon.try_gravitational_parameter(),
19530 Ok(GravitationalParameter::km3_per_s2(205.3234302535623f64))
19531 );
19532 }
19533 #[test]
19534 fn test_mean_radius_704() {
19535 assert_eq!(Oberon.mean_radius(), Distance::kilometers(761.4f64));
19536 assert_eq!(
19537 DynOrigin::Oberon.try_mean_radius(),
19538 Ok(Distance::kilometers(761.4f64))
19539 );
19540 }
19541 #[test]
19542 fn test_spheroid_704() {
19543 assert_eq!(Oberon.polar_radius(), Distance::kilometers(761.4f64));
19544 assert_eq!(
19545 DynOrigin::Oberon.try_polar_radius(),
19546 Ok(Distance::kilometers(761.4f64))
19547 );
19548 assert_eq!(Oberon.equatorial_radius(), Distance::kilometers(761.4f64));
19549 assert_eq!(
19550 DynOrigin::Oberon.try_equatorial_radius(),
19551 Ok(Distance::kilometers(761.4f64))
19552 );
19553 }
19554 #[test]
19555 fn test_tri_axial_704() {
19556 assert_eq!(
19557 Oberon.radii(),
19558 (
19559 Distance::kilometers(761.4f64),
19560 Distance::kilometers(761.4f64),
19561 Distance::kilometers(761.4f64)
19562 )
19563 );
19564 assert_eq!(
19565 DynOrigin::Oberon.try_radii(),
19566 Ok((
19567 Distance::kilometers(761.4f64),
19568 Distance::kilometers(761.4f64),
19569 Distance::kilometers(761.4f64)
19570 ))
19571 );
19572 }
19573 #[test]
19574 fn test_origin_705() {
19575 assert_eq!(Miranda.id().0, 705i32);
19576 assert_eq!(Miranda.to_string(), "Miranda");
19577 assert_eq!(DynOrigin::from(Miranda), DynOrigin::Miranda);
19578 }
19579 #[test]
19580 fn test_point_mass_705() {
19581 assert_eq!(
19582 Miranda.gravitational_parameter(),
19583 GravitationalParameter::km3_per_s2(4.3195168992321f64)
19584 );
19585 assert_eq!(
19586 DynOrigin::Miranda.try_gravitational_parameter(),
19587 Ok(GravitationalParameter::km3_per_s2(4.3195168992321f64))
19588 );
19589 }
19590 #[test]
19591 fn test_mean_radius_705() {
19592 assert_eq!(Miranda.mean_radius(), Distance::kilometers(235.8f64));
19593 assert_eq!(
19594 DynOrigin::Miranda.try_mean_radius(),
19595 Ok(Distance::kilometers(235.8f64))
19596 );
19597 }
19598 #[test]
19599 fn test_spheroid_705() {
19600 assert!(DynOrigin::Miranda.try_polar_radius().is_err());
19601 assert!(DynOrigin::Miranda.try_equatorial_radius().is_err());
19602 }
19603 #[test]
19604 fn test_tri_axial_705() {
19605 assert_eq!(
19606 Miranda.radii(),
19607 (
19608 Distance::kilometers(240.4f64),
19609 Distance::kilometers(234.2f64),
19610 Distance::kilometers(232.9f64)
19611 )
19612 );
19613 assert_eq!(
19614 DynOrigin::Miranda.try_radii(),
19615 Ok((
19616 Distance::kilometers(240.4f64),
19617 Distance::kilometers(234.2f64),
19618 Distance::kilometers(232.9f64)
19619 ))
19620 );
19621 }
19622 #[test]
19623 fn test_origin_706() {
19624 assert_eq!(Cordelia.id().0, 706i32);
19625 assert_eq!(Cordelia.to_string(), "Cordelia");
19626 assert_eq!(DynOrigin::from(Cordelia), DynOrigin::Cordelia);
19627 }
19628 #[test]
19629 fn test_point_mass_706() {
19630 assert!(DynOrigin::Cordelia.try_gravitational_parameter().is_err());
19631 }
19632 #[test]
19633 fn test_mean_radius_706() {
19634 assert_eq!(Cordelia.mean_radius(), Distance::kilometers(13f64));
19635 assert_eq!(
19636 DynOrigin::Cordelia.try_mean_radius(),
19637 Ok(Distance::kilometers(13f64))
19638 );
19639 }
19640 #[test]
19641 fn test_spheroid_706() {
19642 assert_eq!(Cordelia.polar_radius(), Distance::kilometers(13f64));
19643 assert_eq!(
19644 DynOrigin::Cordelia.try_polar_radius(),
19645 Ok(Distance::kilometers(13f64))
19646 );
19647 assert_eq!(Cordelia.equatorial_radius(), Distance::kilometers(13f64));
19648 assert_eq!(
19649 DynOrigin::Cordelia.try_equatorial_radius(),
19650 Ok(Distance::kilometers(13f64))
19651 );
19652 }
19653 #[test]
19654 fn test_tri_axial_706() {
19655 assert_eq!(
19656 Cordelia.radii(),
19657 (
19658 Distance::kilometers(13f64),
19659 Distance::kilometers(13f64),
19660 Distance::kilometers(13f64)
19661 )
19662 );
19663 assert_eq!(
19664 DynOrigin::Cordelia.try_radii(),
19665 Ok((
19666 Distance::kilometers(13f64),
19667 Distance::kilometers(13f64),
19668 Distance::kilometers(13f64)
19669 ))
19670 );
19671 }
19672 #[test]
19673 fn test_origin_707() {
19674 assert_eq!(Ophelia.id().0, 707i32);
19675 assert_eq!(Ophelia.to_string(), "Ophelia");
19676 assert_eq!(DynOrigin::from(Ophelia), DynOrigin::Ophelia);
19677 }
19678 #[test]
19679 fn test_point_mass_707() {
19680 assert!(DynOrigin::Ophelia.try_gravitational_parameter().is_err());
19681 }
19682 #[test]
19683 fn test_mean_radius_707() {
19684 assert_eq!(Ophelia.mean_radius(), Distance::kilometers(15f64));
19685 assert_eq!(
19686 DynOrigin::Ophelia.try_mean_radius(),
19687 Ok(Distance::kilometers(15f64))
19688 );
19689 }
19690 #[test]
19691 fn test_spheroid_707() {
19692 assert_eq!(Ophelia.polar_radius(), Distance::kilometers(15f64));
19693 assert_eq!(
19694 DynOrigin::Ophelia.try_polar_radius(),
19695 Ok(Distance::kilometers(15f64))
19696 );
19697 assert_eq!(Ophelia.equatorial_radius(), Distance::kilometers(15f64));
19698 assert_eq!(
19699 DynOrigin::Ophelia.try_equatorial_radius(),
19700 Ok(Distance::kilometers(15f64))
19701 );
19702 }
19703 #[test]
19704 fn test_tri_axial_707() {
19705 assert_eq!(
19706 Ophelia.radii(),
19707 (
19708 Distance::kilometers(15f64),
19709 Distance::kilometers(15f64),
19710 Distance::kilometers(15f64)
19711 )
19712 );
19713 assert_eq!(
19714 DynOrigin::Ophelia.try_radii(),
19715 Ok((
19716 Distance::kilometers(15f64),
19717 Distance::kilometers(15f64),
19718 Distance::kilometers(15f64)
19719 ))
19720 );
19721 }
19722 #[test]
19723 fn test_origin_708() {
19724 assert_eq!(Bianca.id().0, 708i32);
19725 assert_eq!(Bianca.to_string(), "Bianca");
19726 assert_eq!(DynOrigin::from(Bianca), DynOrigin::Bianca);
19727 }
19728 #[test]
19729 fn test_point_mass_708() {
19730 assert!(DynOrigin::Bianca.try_gravitational_parameter().is_err());
19731 }
19732 #[test]
19733 fn test_mean_radius_708() {
19734 assert_eq!(Bianca.mean_radius(), Distance::kilometers(21f64));
19735 assert_eq!(
19736 DynOrigin::Bianca.try_mean_radius(),
19737 Ok(Distance::kilometers(21f64))
19738 );
19739 }
19740 #[test]
19741 fn test_spheroid_708() {
19742 assert_eq!(Bianca.polar_radius(), Distance::kilometers(21f64));
19743 assert_eq!(
19744 DynOrigin::Bianca.try_polar_radius(),
19745 Ok(Distance::kilometers(21f64))
19746 );
19747 assert_eq!(Bianca.equatorial_radius(), Distance::kilometers(21f64));
19748 assert_eq!(
19749 DynOrigin::Bianca.try_equatorial_radius(),
19750 Ok(Distance::kilometers(21f64))
19751 );
19752 }
19753 #[test]
19754 fn test_tri_axial_708() {
19755 assert_eq!(
19756 Bianca.radii(),
19757 (
19758 Distance::kilometers(21f64),
19759 Distance::kilometers(21f64),
19760 Distance::kilometers(21f64)
19761 )
19762 );
19763 assert_eq!(
19764 DynOrigin::Bianca.try_radii(),
19765 Ok((
19766 Distance::kilometers(21f64),
19767 Distance::kilometers(21f64),
19768 Distance::kilometers(21f64)
19769 ))
19770 );
19771 }
19772 #[test]
19773 fn test_origin_709() {
19774 assert_eq!(Cressida.id().0, 709i32);
19775 assert_eq!(Cressida.to_string(), "Cressida");
19776 assert_eq!(DynOrigin::from(Cressida), DynOrigin::Cressida);
19777 }
19778 #[test]
19779 fn test_point_mass_709() {
19780 assert!(DynOrigin::Cressida.try_gravitational_parameter().is_err());
19781 }
19782 #[test]
19783 fn test_mean_radius_709() {
19784 assert_eq!(Cressida.mean_radius(), Distance::kilometers(31f64));
19785 assert_eq!(
19786 DynOrigin::Cressida.try_mean_radius(),
19787 Ok(Distance::kilometers(31f64))
19788 );
19789 }
19790 #[test]
19791 fn test_spheroid_709() {
19792 assert_eq!(Cressida.polar_radius(), Distance::kilometers(31f64));
19793 assert_eq!(
19794 DynOrigin::Cressida.try_polar_radius(),
19795 Ok(Distance::kilometers(31f64))
19796 );
19797 assert_eq!(Cressida.equatorial_radius(), Distance::kilometers(31f64));
19798 assert_eq!(
19799 DynOrigin::Cressida.try_equatorial_radius(),
19800 Ok(Distance::kilometers(31f64))
19801 );
19802 }
19803 #[test]
19804 fn test_tri_axial_709() {
19805 assert_eq!(
19806 Cressida.radii(),
19807 (
19808 Distance::kilometers(31f64),
19809 Distance::kilometers(31f64),
19810 Distance::kilometers(31f64)
19811 )
19812 );
19813 assert_eq!(
19814 DynOrigin::Cressida.try_radii(),
19815 Ok((
19816 Distance::kilometers(31f64),
19817 Distance::kilometers(31f64),
19818 Distance::kilometers(31f64)
19819 ))
19820 );
19821 }
19822 #[test]
19823 fn test_origin_710() {
19824 assert_eq!(Desdemona.id().0, 710i32);
19825 assert_eq!(Desdemona.to_string(), "Desdemona");
19826 assert_eq!(DynOrigin::from(Desdemona), DynOrigin::Desdemona);
19827 }
19828 #[test]
19829 fn test_point_mass_710() {
19830 assert!(DynOrigin::Desdemona.try_gravitational_parameter().is_err());
19831 }
19832 #[test]
19833 fn test_mean_radius_710() {
19834 assert_eq!(Desdemona.mean_radius(), Distance::kilometers(27f64));
19835 assert_eq!(
19836 DynOrigin::Desdemona.try_mean_radius(),
19837 Ok(Distance::kilometers(27f64))
19838 );
19839 }
19840 #[test]
19841 fn test_spheroid_710() {
19842 assert_eq!(Desdemona.polar_radius(), Distance::kilometers(27f64));
19843 assert_eq!(
19844 DynOrigin::Desdemona.try_polar_radius(),
19845 Ok(Distance::kilometers(27f64))
19846 );
19847 assert_eq!(Desdemona.equatorial_radius(), Distance::kilometers(27f64));
19848 assert_eq!(
19849 DynOrigin::Desdemona.try_equatorial_radius(),
19850 Ok(Distance::kilometers(27f64))
19851 );
19852 }
19853 #[test]
19854 fn test_tri_axial_710() {
19855 assert_eq!(
19856 Desdemona.radii(),
19857 (
19858 Distance::kilometers(27f64),
19859 Distance::kilometers(27f64),
19860 Distance::kilometers(27f64)
19861 )
19862 );
19863 assert_eq!(
19864 DynOrigin::Desdemona.try_radii(),
19865 Ok((
19866 Distance::kilometers(27f64),
19867 Distance::kilometers(27f64),
19868 Distance::kilometers(27f64)
19869 ))
19870 );
19871 }
19872 #[test]
19873 fn test_origin_711() {
19874 assert_eq!(Juliet.id().0, 711i32);
19875 assert_eq!(Juliet.to_string(), "Juliet");
19876 assert_eq!(DynOrigin::from(Juliet), DynOrigin::Juliet);
19877 }
19878 #[test]
19879 fn test_point_mass_711() {
19880 assert!(DynOrigin::Juliet.try_gravitational_parameter().is_err());
19881 }
19882 #[test]
19883 fn test_mean_radius_711() {
19884 assert_eq!(Juliet.mean_radius(), Distance::kilometers(42f64));
19885 assert_eq!(
19886 DynOrigin::Juliet.try_mean_radius(),
19887 Ok(Distance::kilometers(42f64))
19888 );
19889 }
19890 #[test]
19891 fn test_spheroid_711() {
19892 assert_eq!(Juliet.polar_radius(), Distance::kilometers(42f64));
19893 assert_eq!(
19894 DynOrigin::Juliet.try_polar_radius(),
19895 Ok(Distance::kilometers(42f64))
19896 );
19897 assert_eq!(Juliet.equatorial_radius(), Distance::kilometers(42f64));
19898 assert_eq!(
19899 DynOrigin::Juliet.try_equatorial_radius(),
19900 Ok(Distance::kilometers(42f64))
19901 );
19902 }
19903 #[test]
19904 fn test_tri_axial_711() {
19905 assert_eq!(
19906 Juliet.radii(),
19907 (
19908 Distance::kilometers(42f64),
19909 Distance::kilometers(42f64),
19910 Distance::kilometers(42f64)
19911 )
19912 );
19913 assert_eq!(
19914 DynOrigin::Juliet.try_radii(),
19915 Ok((
19916 Distance::kilometers(42f64),
19917 Distance::kilometers(42f64),
19918 Distance::kilometers(42f64)
19919 ))
19920 );
19921 }
19922 #[test]
19923 fn test_origin_712() {
19924 assert_eq!(Portia.id().0, 712i32);
19925 assert_eq!(Portia.to_string(), "Portia");
19926 assert_eq!(DynOrigin::from(Portia), DynOrigin::Portia);
19927 }
19928 #[test]
19929 fn test_point_mass_712() {
19930 assert!(DynOrigin::Portia.try_gravitational_parameter().is_err());
19931 }
19932 #[test]
19933 fn test_mean_radius_712() {
19934 assert_eq!(Portia.mean_radius(), Distance::kilometers(54f64));
19935 assert_eq!(
19936 DynOrigin::Portia.try_mean_radius(),
19937 Ok(Distance::kilometers(54f64))
19938 );
19939 }
19940 #[test]
19941 fn test_spheroid_712() {
19942 assert_eq!(Portia.polar_radius(), Distance::kilometers(54f64));
19943 assert_eq!(
19944 DynOrigin::Portia.try_polar_radius(),
19945 Ok(Distance::kilometers(54f64))
19946 );
19947 assert_eq!(Portia.equatorial_radius(), Distance::kilometers(54f64));
19948 assert_eq!(
19949 DynOrigin::Portia.try_equatorial_radius(),
19950 Ok(Distance::kilometers(54f64))
19951 );
19952 }
19953 #[test]
19954 fn test_tri_axial_712() {
19955 assert_eq!(
19956 Portia.radii(),
19957 (
19958 Distance::kilometers(54f64),
19959 Distance::kilometers(54f64),
19960 Distance::kilometers(54f64)
19961 )
19962 );
19963 assert_eq!(
19964 DynOrigin::Portia.try_radii(),
19965 Ok((
19966 Distance::kilometers(54f64),
19967 Distance::kilometers(54f64),
19968 Distance::kilometers(54f64)
19969 ))
19970 );
19971 }
19972 #[test]
19973 fn test_origin_713() {
19974 assert_eq!(Rosalind.id().0, 713i32);
19975 assert_eq!(Rosalind.to_string(), "Rosalind");
19976 assert_eq!(DynOrigin::from(Rosalind), DynOrigin::Rosalind);
19977 }
19978 #[test]
19979 fn test_point_mass_713() {
19980 assert!(DynOrigin::Rosalind.try_gravitational_parameter().is_err());
19981 }
19982 #[test]
19983 fn test_mean_radius_713() {
19984 assert_eq!(Rosalind.mean_radius(), Distance::kilometers(27f64));
19985 assert_eq!(
19986 DynOrigin::Rosalind.try_mean_radius(),
19987 Ok(Distance::kilometers(27f64))
19988 );
19989 }
19990 #[test]
19991 fn test_spheroid_713() {
19992 assert_eq!(Rosalind.polar_radius(), Distance::kilometers(27f64));
19993 assert_eq!(
19994 DynOrigin::Rosalind.try_polar_radius(),
19995 Ok(Distance::kilometers(27f64))
19996 );
19997 assert_eq!(Rosalind.equatorial_radius(), Distance::kilometers(27f64));
19998 assert_eq!(
19999 DynOrigin::Rosalind.try_equatorial_radius(),
20000 Ok(Distance::kilometers(27f64))
20001 );
20002 }
20003 #[test]
20004 fn test_tri_axial_713() {
20005 assert_eq!(
20006 Rosalind.radii(),
20007 (
20008 Distance::kilometers(27f64),
20009 Distance::kilometers(27f64),
20010 Distance::kilometers(27f64)
20011 )
20012 );
20013 assert_eq!(
20014 DynOrigin::Rosalind.try_radii(),
20015 Ok((
20016 Distance::kilometers(27f64),
20017 Distance::kilometers(27f64),
20018 Distance::kilometers(27f64)
20019 ))
20020 );
20021 }
20022 #[test]
20023 fn test_origin_714() {
20024 assert_eq!(Belinda.id().0, 714i32);
20025 assert_eq!(Belinda.to_string(), "Belinda");
20026 assert_eq!(DynOrigin::from(Belinda), DynOrigin::Belinda);
20027 }
20028 #[test]
20029 fn test_point_mass_714() {
20030 assert!(DynOrigin::Belinda.try_gravitational_parameter().is_err());
20031 }
20032 #[test]
20033 fn test_mean_radius_714() {
20034 assert_eq!(Belinda.mean_radius(), Distance::kilometers(33f64));
20035 assert_eq!(
20036 DynOrigin::Belinda.try_mean_radius(),
20037 Ok(Distance::kilometers(33f64))
20038 );
20039 }
20040 #[test]
20041 fn test_spheroid_714() {
20042 assert_eq!(Belinda.polar_radius(), Distance::kilometers(33f64));
20043 assert_eq!(
20044 DynOrigin::Belinda.try_polar_radius(),
20045 Ok(Distance::kilometers(33f64))
20046 );
20047 assert_eq!(Belinda.equatorial_radius(), Distance::kilometers(33f64));
20048 assert_eq!(
20049 DynOrigin::Belinda.try_equatorial_radius(),
20050 Ok(Distance::kilometers(33f64))
20051 );
20052 }
20053 #[test]
20054 fn test_tri_axial_714() {
20055 assert_eq!(
20056 Belinda.radii(),
20057 (
20058 Distance::kilometers(33f64),
20059 Distance::kilometers(33f64),
20060 Distance::kilometers(33f64)
20061 )
20062 );
20063 assert_eq!(
20064 DynOrigin::Belinda.try_radii(),
20065 Ok((
20066 Distance::kilometers(33f64),
20067 Distance::kilometers(33f64),
20068 Distance::kilometers(33f64)
20069 ))
20070 );
20071 }
20072 #[test]
20073 fn test_origin_715() {
20074 assert_eq!(Puck.id().0, 715i32);
20075 assert_eq!(Puck.to_string(), "Puck");
20076 assert_eq!(DynOrigin::from(Puck), DynOrigin::Puck);
20077 }
20078 #[test]
20079 fn test_point_mass_715() {
20080 assert!(DynOrigin::Puck.try_gravitational_parameter().is_err());
20081 }
20082 #[test]
20083 fn test_mean_radius_715() {
20084 assert_eq!(Puck.mean_radius(), Distance::kilometers(77f64));
20085 assert_eq!(
20086 DynOrigin::Puck.try_mean_radius(),
20087 Ok(Distance::kilometers(77f64))
20088 );
20089 }
20090 #[test]
20091 fn test_spheroid_715() {
20092 assert_eq!(Puck.polar_radius(), Distance::kilometers(77f64));
20093 assert_eq!(
20094 DynOrigin::Puck.try_polar_radius(),
20095 Ok(Distance::kilometers(77f64))
20096 );
20097 assert_eq!(Puck.equatorial_radius(), Distance::kilometers(77f64));
20098 assert_eq!(
20099 DynOrigin::Puck.try_equatorial_radius(),
20100 Ok(Distance::kilometers(77f64))
20101 );
20102 }
20103 #[test]
20104 fn test_tri_axial_715() {
20105 assert_eq!(
20106 Puck.radii(),
20107 (
20108 Distance::kilometers(77f64),
20109 Distance::kilometers(77f64),
20110 Distance::kilometers(77f64)
20111 )
20112 );
20113 assert_eq!(
20114 DynOrigin::Puck.try_radii(),
20115 Ok((
20116 Distance::kilometers(77f64),
20117 Distance::kilometers(77f64),
20118 Distance::kilometers(77f64)
20119 ))
20120 );
20121 }
20122 #[test]
20123 fn test_origin_716() {
20124 assert_eq!(Caliban.id().0, 716i32);
20125 assert_eq!(Caliban.to_string(), "Caliban");
20126 assert_eq!(DynOrigin::from(Caliban), DynOrigin::Caliban);
20127 }
20128 #[test]
20129 fn test_point_mass_716() {
20130 assert!(DynOrigin::Caliban.try_gravitational_parameter().is_err());
20131 }
20132 #[test]
20133 fn test_mean_radius_716() {
20134 assert!(DynOrigin::Caliban.try_mean_radius().is_err());
20135 }
20136 #[test]
20137 fn test_tri_axial_716() {
20138 assert!(DynOrigin::Caliban.try_radii().is_err());
20139 }
20140 #[test]
20141 fn test_spheroid_716() {
20142 assert!(DynOrigin::Caliban.try_polar_radius().is_err());
20143 assert!(DynOrigin::Caliban.try_equatorial_radius().is_err());
20144 }
20145 #[test]
20146 fn test_origin_717() {
20147 assert_eq!(Sycorax.id().0, 717i32);
20148 assert_eq!(Sycorax.to_string(), "Sycorax");
20149 assert_eq!(DynOrigin::from(Sycorax), DynOrigin::Sycorax);
20150 }
20151 #[test]
20152 fn test_point_mass_717() {
20153 assert!(DynOrigin::Sycorax.try_gravitational_parameter().is_err());
20154 }
20155 #[test]
20156 fn test_mean_radius_717() {
20157 assert!(DynOrigin::Sycorax.try_mean_radius().is_err());
20158 }
20159 #[test]
20160 fn test_tri_axial_717() {
20161 assert!(DynOrigin::Sycorax.try_radii().is_err());
20162 }
20163 #[test]
20164 fn test_spheroid_717() {
20165 assert!(DynOrigin::Sycorax.try_polar_radius().is_err());
20166 assert!(DynOrigin::Sycorax.try_equatorial_radius().is_err());
20167 }
20168 #[test]
20169 fn test_origin_718() {
20170 assert_eq!(Prospero.id().0, 718i32);
20171 assert_eq!(Prospero.to_string(), "Prospero");
20172 assert_eq!(DynOrigin::from(Prospero), DynOrigin::Prospero);
20173 }
20174 #[test]
20175 fn test_point_mass_718() {
20176 assert!(DynOrigin::Prospero.try_gravitational_parameter().is_err());
20177 }
20178 #[test]
20179 fn test_mean_radius_718() {
20180 assert!(DynOrigin::Prospero.try_mean_radius().is_err());
20181 }
20182 #[test]
20183 fn test_tri_axial_718() {
20184 assert!(DynOrigin::Prospero.try_radii().is_err());
20185 }
20186 #[test]
20187 fn test_spheroid_718() {
20188 assert!(DynOrigin::Prospero.try_polar_radius().is_err());
20189 assert!(DynOrigin::Prospero.try_equatorial_radius().is_err());
20190 }
20191 #[test]
20192 fn test_origin_719() {
20193 assert_eq!(Setebos.id().0, 719i32);
20194 assert_eq!(Setebos.to_string(), "Setebos");
20195 assert_eq!(DynOrigin::from(Setebos), DynOrigin::Setebos);
20196 }
20197 #[test]
20198 fn test_point_mass_719() {
20199 assert!(DynOrigin::Setebos.try_gravitational_parameter().is_err());
20200 }
20201 #[test]
20202 fn test_mean_radius_719() {
20203 assert!(DynOrigin::Setebos.try_mean_radius().is_err());
20204 }
20205 #[test]
20206 fn test_tri_axial_719() {
20207 assert!(DynOrigin::Setebos.try_radii().is_err());
20208 }
20209 #[test]
20210 fn test_spheroid_719() {
20211 assert!(DynOrigin::Setebos.try_polar_radius().is_err());
20212 assert!(DynOrigin::Setebos.try_equatorial_radius().is_err());
20213 }
20214 #[test]
20215 fn test_origin_720() {
20216 assert_eq!(Stephano.id().0, 720i32);
20217 assert_eq!(Stephano.to_string(), "Stephano");
20218 assert_eq!(DynOrigin::from(Stephano), DynOrigin::Stephano);
20219 }
20220 #[test]
20221 fn test_point_mass_720() {
20222 assert!(DynOrigin::Stephano.try_gravitational_parameter().is_err());
20223 }
20224 #[test]
20225 fn test_mean_radius_720() {
20226 assert!(DynOrigin::Stephano.try_mean_radius().is_err());
20227 }
20228 #[test]
20229 fn test_tri_axial_720() {
20230 assert!(DynOrigin::Stephano.try_radii().is_err());
20231 }
20232 #[test]
20233 fn test_spheroid_720() {
20234 assert!(DynOrigin::Stephano.try_polar_radius().is_err());
20235 assert!(DynOrigin::Stephano.try_equatorial_radius().is_err());
20236 }
20237 #[test]
20238 fn test_origin_721() {
20239 assert_eq!(Trinculo.id().0, 721i32);
20240 assert_eq!(Trinculo.to_string(), "Trinculo");
20241 assert_eq!(DynOrigin::from(Trinculo), DynOrigin::Trinculo);
20242 }
20243 #[test]
20244 fn test_point_mass_721() {
20245 assert!(DynOrigin::Trinculo.try_gravitational_parameter().is_err());
20246 }
20247 #[test]
20248 fn test_mean_radius_721() {
20249 assert!(DynOrigin::Trinculo.try_mean_radius().is_err());
20250 }
20251 #[test]
20252 fn test_tri_axial_721() {
20253 assert!(DynOrigin::Trinculo.try_radii().is_err());
20254 }
20255 #[test]
20256 fn test_spheroid_721() {
20257 assert!(DynOrigin::Trinculo.try_polar_radius().is_err());
20258 assert!(DynOrigin::Trinculo.try_equatorial_radius().is_err());
20259 }
20260 #[test]
20261 fn test_origin_722() {
20262 assert_eq!(Francisco.id().0, 722i32);
20263 assert_eq!(Francisco.to_string(), "Francisco");
20264 assert_eq!(DynOrigin::from(Francisco), DynOrigin::Francisco);
20265 }
20266 #[test]
20267 fn test_point_mass_722() {
20268 assert!(DynOrigin::Francisco.try_gravitational_parameter().is_err());
20269 }
20270 #[test]
20271 fn test_mean_radius_722() {
20272 assert!(DynOrigin::Francisco.try_mean_radius().is_err());
20273 }
20274 #[test]
20275 fn test_tri_axial_722() {
20276 assert!(DynOrigin::Francisco.try_radii().is_err());
20277 }
20278 #[test]
20279 fn test_spheroid_722() {
20280 assert!(DynOrigin::Francisco.try_polar_radius().is_err());
20281 assert!(DynOrigin::Francisco.try_equatorial_radius().is_err());
20282 }
20283 #[test]
20284 fn test_origin_723() {
20285 assert_eq!(Margaret.id().0, 723i32);
20286 assert_eq!(Margaret.to_string(), "Margaret");
20287 assert_eq!(DynOrigin::from(Margaret), DynOrigin::Margaret);
20288 }
20289 #[test]
20290 fn test_point_mass_723() {
20291 assert!(DynOrigin::Margaret.try_gravitational_parameter().is_err());
20292 }
20293 #[test]
20294 fn test_mean_radius_723() {
20295 assert!(DynOrigin::Margaret.try_mean_radius().is_err());
20296 }
20297 #[test]
20298 fn test_tri_axial_723() {
20299 assert!(DynOrigin::Margaret.try_radii().is_err());
20300 }
20301 #[test]
20302 fn test_spheroid_723() {
20303 assert!(DynOrigin::Margaret.try_polar_radius().is_err());
20304 assert!(DynOrigin::Margaret.try_equatorial_radius().is_err());
20305 }
20306 #[test]
20307 fn test_origin_724() {
20308 assert_eq!(Ferdinand.id().0, 724i32);
20309 assert_eq!(Ferdinand.to_string(), "Ferdinand");
20310 assert_eq!(DynOrigin::from(Ferdinand), DynOrigin::Ferdinand);
20311 }
20312 #[test]
20313 fn test_point_mass_724() {
20314 assert!(DynOrigin::Ferdinand.try_gravitational_parameter().is_err());
20315 }
20316 #[test]
20317 fn test_mean_radius_724() {
20318 assert!(DynOrigin::Ferdinand.try_mean_radius().is_err());
20319 }
20320 #[test]
20321 fn test_tri_axial_724() {
20322 assert!(DynOrigin::Ferdinand.try_radii().is_err());
20323 }
20324 #[test]
20325 fn test_spheroid_724() {
20326 assert!(DynOrigin::Ferdinand.try_polar_radius().is_err());
20327 assert!(DynOrigin::Ferdinand.try_equatorial_radius().is_err());
20328 }
20329 #[test]
20330 fn test_origin_725() {
20331 assert_eq!(Perdita.id().0, 725i32);
20332 assert_eq!(Perdita.to_string(), "Perdita");
20333 assert_eq!(DynOrigin::from(Perdita), DynOrigin::Perdita);
20334 }
20335 #[test]
20336 fn test_point_mass_725() {
20337 assert!(DynOrigin::Perdita.try_gravitational_parameter().is_err());
20338 }
20339 #[test]
20340 fn test_mean_radius_725() {
20341 assert!(DynOrigin::Perdita.try_mean_radius().is_err());
20342 }
20343 #[test]
20344 fn test_tri_axial_725() {
20345 assert!(DynOrigin::Perdita.try_radii().is_err());
20346 }
20347 #[test]
20348 fn test_spheroid_725() {
20349 assert!(DynOrigin::Perdita.try_polar_radius().is_err());
20350 assert!(DynOrigin::Perdita.try_equatorial_radius().is_err());
20351 }
20352 #[test]
20353 fn test_origin_726() {
20354 assert_eq!(Mab.id().0, 726i32);
20355 assert_eq!(Mab.to_string(), "Mab");
20356 assert_eq!(DynOrigin::from(Mab), DynOrigin::Mab);
20357 }
20358 #[test]
20359 fn test_point_mass_726() {
20360 assert!(DynOrigin::Mab.try_gravitational_parameter().is_err());
20361 }
20362 #[test]
20363 fn test_mean_radius_726() {
20364 assert!(DynOrigin::Mab.try_mean_radius().is_err());
20365 }
20366 #[test]
20367 fn test_tri_axial_726() {
20368 assert!(DynOrigin::Mab.try_radii().is_err());
20369 }
20370 #[test]
20371 fn test_spheroid_726() {
20372 assert!(DynOrigin::Mab.try_polar_radius().is_err());
20373 assert!(DynOrigin::Mab.try_equatorial_radius().is_err());
20374 }
20375 #[test]
20376 fn test_origin_727() {
20377 assert_eq!(Cupid.id().0, 727i32);
20378 assert_eq!(Cupid.to_string(), "Cupid");
20379 assert_eq!(DynOrigin::from(Cupid), DynOrigin::Cupid);
20380 }
20381 #[test]
20382 fn test_point_mass_727() {
20383 assert!(DynOrigin::Cupid.try_gravitational_parameter().is_err());
20384 }
20385 #[test]
20386 fn test_mean_radius_727() {
20387 assert!(DynOrigin::Cupid.try_mean_radius().is_err());
20388 }
20389 #[test]
20390 fn test_tri_axial_727() {
20391 assert!(DynOrigin::Cupid.try_radii().is_err());
20392 }
20393 #[test]
20394 fn test_spheroid_727() {
20395 assert!(DynOrigin::Cupid.try_polar_radius().is_err());
20396 assert!(DynOrigin::Cupid.try_equatorial_radius().is_err());
20397 }
20398 #[test]
20399 fn test_origin_801() {
20400 assert_eq!(Triton.id().0, 801i32);
20401 assert_eq!(Triton.to_string(), "Triton");
20402 assert_eq!(DynOrigin::from(Triton), DynOrigin::Triton);
20403 }
20404 #[test]
20405 fn test_point_mass_801() {
20406 assert_eq!(
20407 Triton.gravitational_parameter(),
20408 GravitationalParameter::km3_per_s2(1428.495462910464f64)
20409 );
20410 assert_eq!(
20411 DynOrigin::Triton.try_gravitational_parameter(),
20412 Ok(GravitationalParameter::km3_per_s2(1428.495462910464f64))
20413 );
20414 }
20415 #[test]
20416 fn test_mean_radius_801() {
20417 assert_eq!(Triton.mean_radius(), Distance::kilometers(1352.6f64));
20418 assert_eq!(
20419 DynOrigin::Triton.try_mean_radius(),
20420 Ok(Distance::kilometers(1352.6f64))
20421 );
20422 }
20423 #[test]
20424 fn test_spheroid_801() {
20425 assert_eq!(Triton.polar_radius(), Distance::kilometers(1352.6f64));
20426 assert_eq!(
20427 DynOrigin::Triton.try_polar_radius(),
20428 Ok(Distance::kilometers(1352.6f64))
20429 );
20430 assert_eq!(Triton.equatorial_radius(), Distance::kilometers(1352.6f64));
20431 assert_eq!(
20432 DynOrigin::Triton.try_equatorial_radius(),
20433 Ok(Distance::kilometers(1352.6f64))
20434 );
20435 }
20436 #[test]
20437 fn test_tri_axial_801() {
20438 assert_eq!(
20439 Triton.radii(),
20440 (
20441 Distance::kilometers(1352.6f64),
20442 Distance::kilometers(1352.6f64),
20443 Distance::kilometers(1352.6f64)
20444 )
20445 );
20446 assert_eq!(
20447 DynOrigin::Triton.try_radii(),
20448 Ok((
20449 Distance::kilometers(1352.6f64),
20450 Distance::kilometers(1352.6f64),
20451 Distance::kilometers(1352.6f64)
20452 ))
20453 );
20454 }
20455 #[test]
20456 fn test_origin_802() {
20457 assert_eq!(Nereid.id().0, 802i32);
20458 assert_eq!(Nereid.to_string(), "Nereid");
20459 assert_eq!(DynOrigin::from(Nereid), DynOrigin::Nereid);
20460 }
20461 #[test]
20462 fn test_point_mass_802() {
20463 assert!(DynOrigin::Nereid.try_gravitational_parameter().is_err());
20464 }
20465 #[test]
20466 fn test_mean_radius_802() {
20467 assert_eq!(Nereid.mean_radius(), Distance::kilometers(170f64));
20468 assert_eq!(
20469 DynOrigin::Nereid.try_mean_radius(),
20470 Ok(Distance::kilometers(170f64))
20471 );
20472 }
20473 #[test]
20474 fn test_spheroid_802() {
20475 assert_eq!(Nereid.polar_radius(), Distance::kilometers(170f64));
20476 assert_eq!(
20477 DynOrigin::Nereid.try_polar_radius(),
20478 Ok(Distance::kilometers(170f64))
20479 );
20480 assert_eq!(Nereid.equatorial_radius(), Distance::kilometers(170f64));
20481 assert_eq!(
20482 DynOrigin::Nereid.try_equatorial_radius(),
20483 Ok(Distance::kilometers(170f64))
20484 );
20485 }
20486 #[test]
20487 fn test_tri_axial_802() {
20488 assert_eq!(
20489 Nereid.radii(),
20490 (
20491 Distance::kilometers(170f64),
20492 Distance::kilometers(170f64),
20493 Distance::kilometers(170f64)
20494 )
20495 );
20496 assert_eq!(
20497 DynOrigin::Nereid.try_radii(),
20498 Ok((
20499 Distance::kilometers(170f64),
20500 Distance::kilometers(170f64),
20501 Distance::kilometers(170f64)
20502 ))
20503 );
20504 }
20505 #[test]
20506 fn test_origin_803() {
20507 assert_eq!(Naiad.id().0, 803i32);
20508 assert_eq!(Naiad.to_string(), "Naiad");
20509 assert_eq!(DynOrigin::from(Naiad), DynOrigin::Naiad);
20510 }
20511 #[test]
20512 fn test_point_mass_803() {
20513 assert_eq!(
20514 Naiad.gravitational_parameter(),
20515 GravitationalParameter::km3_per_s2(0.008530281246540886f64)
20516 );
20517 assert_eq!(
20518 DynOrigin::Naiad.try_gravitational_parameter(),
20519 Ok(GravitationalParameter::km3_per_s2(0.008530281246540886f64))
20520 );
20521 }
20522 #[test]
20523 fn test_mean_radius_803() {
20524 assert_eq!(Naiad.mean_radius(), Distance::kilometers(29f64));
20525 assert_eq!(
20526 DynOrigin::Naiad.try_mean_radius(),
20527 Ok(Distance::kilometers(29f64))
20528 );
20529 }
20530 #[test]
20531 fn test_spheroid_803() {
20532 assert_eq!(Naiad.polar_radius(), Distance::kilometers(29f64));
20533 assert_eq!(
20534 DynOrigin::Naiad.try_polar_radius(),
20535 Ok(Distance::kilometers(29f64))
20536 );
20537 assert_eq!(Naiad.equatorial_radius(), Distance::kilometers(29f64));
20538 assert_eq!(
20539 DynOrigin::Naiad.try_equatorial_radius(),
20540 Ok(Distance::kilometers(29f64))
20541 );
20542 }
20543 #[test]
20544 fn test_tri_axial_803() {
20545 assert_eq!(
20546 Naiad.radii(),
20547 (
20548 Distance::kilometers(29f64),
20549 Distance::kilometers(29f64),
20550 Distance::kilometers(29f64)
20551 )
20552 );
20553 assert_eq!(
20554 DynOrigin::Naiad.try_radii(),
20555 Ok((
20556 Distance::kilometers(29f64),
20557 Distance::kilometers(29f64),
20558 Distance::kilometers(29f64)
20559 ))
20560 );
20561 }
20562 #[test]
20563 fn test_origin_804() {
20564 assert_eq!(Thalassa.id().0, 804i32);
20565 assert_eq!(Thalassa.to_string(), "Thalassa");
20566 assert_eq!(DynOrigin::from(Thalassa), DynOrigin::Thalassa);
20567 }
20568 #[test]
20569 fn test_point_mass_804() {
20570 assert_eq!(
20571 Thalassa.gravitational_parameter(),
20572 GravitationalParameter::km3_per_s2(0.0235887319799217f64)
20573 );
20574 assert_eq!(
20575 DynOrigin::Thalassa.try_gravitational_parameter(),
20576 Ok(GravitationalParameter::km3_per_s2(0.0235887319799217f64))
20577 );
20578 }
20579 #[test]
20580 fn test_mean_radius_804() {
20581 assert_eq!(Thalassa.mean_radius(), Distance::kilometers(40f64));
20582 assert_eq!(
20583 DynOrigin::Thalassa.try_mean_radius(),
20584 Ok(Distance::kilometers(40f64))
20585 );
20586 }
20587 #[test]
20588 fn test_spheroid_804() {
20589 assert_eq!(Thalassa.polar_radius(), Distance::kilometers(40f64));
20590 assert_eq!(
20591 DynOrigin::Thalassa.try_polar_radius(),
20592 Ok(Distance::kilometers(40f64))
20593 );
20594 assert_eq!(Thalassa.equatorial_radius(), Distance::kilometers(40f64));
20595 assert_eq!(
20596 DynOrigin::Thalassa.try_equatorial_radius(),
20597 Ok(Distance::kilometers(40f64))
20598 );
20599 }
20600 #[test]
20601 fn test_tri_axial_804() {
20602 assert_eq!(
20603 Thalassa.radii(),
20604 (
20605 Distance::kilometers(40f64),
20606 Distance::kilometers(40f64),
20607 Distance::kilometers(40f64)
20608 )
20609 );
20610 assert_eq!(
20611 DynOrigin::Thalassa.try_radii(),
20612 Ok((
20613 Distance::kilometers(40f64),
20614 Distance::kilometers(40f64),
20615 Distance::kilometers(40f64)
20616 ))
20617 );
20618 }
20619 #[test]
20620 fn test_origin_805() {
20621 assert_eq!(Despina.id().0, 805i32);
20622 assert_eq!(Despina.to_string(), "Despina");
20623 assert_eq!(DynOrigin::from(Despina), DynOrigin::Despina);
20624 }
20625 #[test]
20626 fn test_point_mass_805() {
20627 assert_eq!(
20628 Despina.gravitational_parameter(),
20629 GravitationalParameter::km3_per_s2(0.1167318403814998f64)
20630 );
20631 assert_eq!(
20632 DynOrigin::Despina.try_gravitational_parameter(),
20633 Ok(GravitationalParameter::km3_per_s2(0.1167318403814998f64))
20634 );
20635 }
20636 #[test]
20637 fn test_mean_radius_805() {
20638 assert_eq!(Despina.mean_radius(), Distance::kilometers(74f64));
20639 assert_eq!(
20640 DynOrigin::Despina.try_mean_radius(),
20641 Ok(Distance::kilometers(74f64))
20642 );
20643 }
20644 #[test]
20645 fn test_spheroid_805() {
20646 assert_eq!(Despina.polar_radius(), Distance::kilometers(74f64));
20647 assert_eq!(
20648 DynOrigin::Despina.try_polar_radius(),
20649 Ok(Distance::kilometers(74f64))
20650 );
20651 assert_eq!(Despina.equatorial_radius(), Distance::kilometers(74f64));
20652 assert_eq!(
20653 DynOrigin::Despina.try_equatorial_radius(),
20654 Ok(Distance::kilometers(74f64))
20655 );
20656 }
20657 #[test]
20658 fn test_tri_axial_805() {
20659 assert_eq!(
20660 Despina.radii(),
20661 (
20662 Distance::kilometers(74f64),
20663 Distance::kilometers(74f64),
20664 Distance::kilometers(74f64)
20665 )
20666 );
20667 assert_eq!(
20668 DynOrigin::Despina.try_radii(),
20669 Ok((
20670 Distance::kilometers(74f64),
20671 Distance::kilometers(74f64),
20672 Distance::kilometers(74f64)
20673 ))
20674 );
20675 }
20676 #[test]
20677 fn test_origin_806() {
20678 assert_eq!(Galatea.id().0, 806i32);
20679 assert_eq!(Galatea.to_string(), "Galatea");
20680 assert_eq!(DynOrigin::from(Galatea), DynOrigin::Galatea);
20681 }
20682 #[test]
20683 fn test_point_mass_806() {
20684 assert_eq!(
20685 Galatea.gravitational_parameter(),
20686 GravitationalParameter::km3_per_s2(0.189898503906069f64)
20687 );
20688 assert_eq!(
20689 DynOrigin::Galatea.try_gravitational_parameter(),
20690 Ok(GravitationalParameter::km3_per_s2(0.189898503906069f64))
20691 );
20692 }
20693 #[test]
20694 fn test_mean_radius_806() {
20695 assert_eq!(Galatea.mean_radius(), Distance::kilometers(79f64));
20696 assert_eq!(
20697 DynOrigin::Galatea.try_mean_radius(),
20698 Ok(Distance::kilometers(79f64))
20699 );
20700 }
20701 #[test]
20702 fn test_spheroid_806() {
20703 assert_eq!(Galatea.polar_radius(), Distance::kilometers(79f64));
20704 assert_eq!(
20705 DynOrigin::Galatea.try_polar_radius(),
20706 Ok(Distance::kilometers(79f64))
20707 );
20708 assert_eq!(Galatea.equatorial_radius(), Distance::kilometers(79f64));
20709 assert_eq!(
20710 DynOrigin::Galatea.try_equatorial_radius(),
20711 Ok(Distance::kilometers(79f64))
20712 );
20713 }
20714 #[test]
20715 fn test_tri_axial_806() {
20716 assert_eq!(
20717 Galatea.radii(),
20718 (
20719 Distance::kilometers(79f64),
20720 Distance::kilometers(79f64),
20721 Distance::kilometers(79f64)
20722 )
20723 );
20724 assert_eq!(
20725 DynOrigin::Galatea.try_radii(),
20726 Ok((
20727 Distance::kilometers(79f64),
20728 Distance::kilometers(79f64),
20729 Distance::kilometers(79f64)
20730 ))
20731 );
20732 }
20733 #[test]
20734 fn test_origin_807() {
20735 assert_eq!(Larissa.id().0, 807i32);
20736 assert_eq!(Larissa.to_string(), "Larissa");
20737 assert_eq!(DynOrigin::from(Larissa), DynOrigin::Larissa);
20738 }
20739 #[test]
20740 fn test_point_mass_807() {
20741 assert_eq!(
20742 Larissa.gravitational_parameter(),
20743 GravitationalParameter::km3_per_s2(0.2548437405693583f64)
20744 );
20745 assert_eq!(
20746 DynOrigin::Larissa.try_gravitational_parameter(),
20747 Ok(GravitationalParameter::km3_per_s2(0.2548437405693583f64))
20748 );
20749 }
20750 #[test]
20751 fn test_mean_radius_807() {
20752 assert_eq!(Larissa.mean_radius(), Distance::kilometers(96f64));
20753 assert_eq!(
20754 DynOrigin::Larissa.try_mean_radius(),
20755 Ok(Distance::kilometers(96f64))
20756 );
20757 }
20758 #[test]
20759 fn test_spheroid_807() {
20760 assert_eq!(Larissa.polar_radius(), Distance::kilometers(96f64));
20761 assert_eq!(
20762 DynOrigin::Larissa.try_polar_radius(),
20763 Ok(Distance::kilometers(96f64))
20764 );
20765 assert_eq!(Larissa.equatorial_radius(), Distance::kilometers(96f64));
20766 assert_eq!(
20767 DynOrigin::Larissa.try_equatorial_radius(),
20768 Ok(Distance::kilometers(96f64))
20769 );
20770 }
20771 #[test]
20772 fn test_tri_axial_807() {
20773 assert_eq!(
20774 Larissa.radii(),
20775 (
20776 Distance::kilometers(96f64),
20777 Distance::kilometers(96f64),
20778 Distance::kilometers(96f64)
20779 )
20780 );
20781 assert_eq!(
20782 DynOrigin::Larissa.try_radii(),
20783 Ok((
20784 Distance::kilometers(96f64),
20785 Distance::kilometers(96f64),
20786 Distance::kilometers(96f64)
20787 ))
20788 );
20789 }
20790 #[test]
20791 fn test_origin_808() {
20792 assert_eq!(Proteus.id().0, 808i32);
20793 assert_eq!(Proteus.to_string(), "Proteus");
20794 assert_eq!(DynOrigin::from(Proteus), DynOrigin::Proteus);
20795 }
20796 #[test]
20797 fn test_point_mass_808() {
20798 assert_eq!(
20799 Proteus.gravitational_parameter(),
20800 GravitationalParameter::km3_per_s2(2.583422379120727f64)
20801 );
20802 assert_eq!(
20803 DynOrigin::Proteus.try_gravitational_parameter(),
20804 Ok(GravitationalParameter::km3_per_s2(2.583422379120727f64))
20805 );
20806 }
20807 #[test]
20808 fn test_mean_radius_808() {
20809 assert_eq!(Proteus.mean_radius(), Distance::kilometers(208f64));
20810 assert_eq!(
20811 DynOrigin::Proteus.try_mean_radius(),
20812 Ok(Distance::kilometers(208f64))
20813 );
20814 }
20815 #[test]
20816 fn test_spheroid_808() {
20817 assert!(DynOrigin::Proteus.try_polar_radius().is_err());
20818 assert!(DynOrigin::Proteus.try_equatorial_radius().is_err());
20819 }
20820 #[test]
20821 fn test_tri_axial_808() {
20822 assert_eq!(
20823 Proteus.radii(),
20824 (
20825 Distance::kilometers(218f64),
20826 Distance::kilometers(208f64),
20827 Distance::kilometers(201f64)
20828 )
20829 );
20830 assert_eq!(
20831 DynOrigin::Proteus.try_radii(),
20832 Ok((
20833 Distance::kilometers(218f64),
20834 Distance::kilometers(208f64),
20835 Distance::kilometers(201f64)
20836 ))
20837 );
20838 }
20839 #[test]
20840 fn test_origin_809() {
20841 assert_eq!(Halimede.id().0, 809i32);
20842 assert_eq!(Halimede.to_string(), "Halimede");
20843 assert_eq!(DynOrigin::from(Halimede), DynOrigin::Halimede);
20844 }
20845 #[test]
20846 fn test_point_mass_809() {
20847 assert!(DynOrigin::Halimede.try_gravitational_parameter().is_err());
20848 }
20849 #[test]
20850 fn test_mean_radius_809() {
20851 assert!(DynOrigin::Halimede.try_mean_radius().is_err());
20852 }
20853 #[test]
20854 fn test_tri_axial_809() {
20855 assert!(DynOrigin::Halimede.try_radii().is_err());
20856 }
20857 #[test]
20858 fn test_spheroid_809() {
20859 assert!(DynOrigin::Halimede.try_polar_radius().is_err());
20860 assert!(DynOrigin::Halimede.try_equatorial_radius().is_err());
20861 }
20862 #[test]
20863 fn test_origin_810() {
20864 assert_eq!(Psamathe.id().0, 810i32);
20865 assert_eq!(Psamathe.to_string(), "Psamathe");
20866 assert_eq!(DynOrigin::from(Psamathe), DynOrigin::Psamathe);
20867 }
20868 #[test]
20869 fn test_point_mass_810() {
20870 assert!(DynOrigin::Psamathe.try_gravitational_parameter().is_err());
20871 }
20872 #[test]
20873 fn test_mean_radius_810() {
20874 assert!(DynOrigin::Psamathe.try_mean_radius().is_err());
20875 }
20876 #[test]
20877 fn test_tri_axial_810() {
20878 assert!(DynOrigin::Psamathe.try_radii().is_err());
20879 }
20880 #[test]
20881 fn test_spheroid_810() {
20882 assert!(DynOrigin::Psamathe.try_polar_radius().is_err());
20883 assert!(DynOrigin::Psamathe.try_equatorial_radius().is_err());
20884 }
20885 #[test]
20886 fn test_origin_811() {
20887 assert_eq!(Sao.id().0, 811i32);
20888 assert_eq!(Sao.to_string(), "Sao");
20889 assert_eq!(DynOrigin::from(Sao), DynOrigin::Sao);
20890 }
20891 #[test]
20892 fn test_point_mass_811() {
20893 assert!(DynOrigin::Sao.try_gravitational_parameter().is_err());
20894 }
20895 #[test]
20896 fn test_mean_radius_811() {
20897 assert!(DynOrigin::Sao.try_mean_radius().is_err());
20898 }
20899 #[test]
20900 fn test_tri_axial_811() {
20901 assert!(DynOrigin::Sao.try_radii().is_err());
20902 }
20903 #[test]
20904 fn test_spheroid_811() {
20905 assert!(DynOrigin::Sao.try_polar_radius().is_err());
20906 assert!(DynOrigin::Sao.try_equatorial_radius().is_err());
20907 }
20908 #[test]
20909 fn test_origin_812() {
20910 assert_eq!(Laomedeia.id().0, 812i32);
20911 assert_eq!(Laomedeia.to_string(), "Laomedeia");
20912 assert_eq!(DynOrigin::from(Laomedeia), DynOrigin::Laomedeia);
20913 }
20914 #[test]
20915 fn test_point_mass_812() {
20916 assert!(DynOrigin::Laomedeia.try_gravitational_parameter().is_err());
20917 }
20918 #[test]
20919 fn test_mean_radius_812() {
20920 assert!(DynOrigin::Laomedeia.try_mean_radius().is_err());
20921 }
20922 #[test]
20923 fn test_tri_axial_812() {
20924 assert!(DynOrigin::Laomedeia.try_radii().is_err());
20925 }
20926 #[test]
20927 fn test_spheroid_812() {
20928 assert!(DynOrigin::Laomedeia.try_polar_radius().is_err());
20929 assert!(DynOrigin::Laomedeia.try_equatorial_radius().is_err());
20930 }
20931 #[test]
20932 fn test_origin_813() {
20933 assert_eq!(Neso.id().0, 813i32);
20934 assert_eq!(Neso.to_string(), "Neso");
20935 assert_eq!(DynOrigin::from(Neso), DynOrigin::Neso);
20936 }
20937 #[test]
20938 fn test_point_mass_813() {
20939 assert!(DynOrigin::Neso.try_gravitational_parameter().is_err());
20940 }
20941 #[test]
20942 fn test_mean_radius_813() {
20943 assert!(DynOrigin::Neso.try_mean_radius().is_err());
20944 }
20945 #[test]
20946 fn test_tri_axial_813() {
20947 assert!(DynOrigin::Neso.try_radii().is_err());
20948 }
20949 #[test]
20950 fn test_spheroid_813() {
20951 assert!(DynOrigin::Neso.try_polar_radius().is_err());
20952 assert!(DynOrigin::Neso.try_equatorial_radius().is_err());
20953 }
20954 #[test]
20955 fn test_origin_901() {
20956 assert_eq!(Charon.id().0, 901i32);
20957 assert_eq!(Charon.to_string(), "Charon");
20958 assert_eq!(DynOrigin::from(Charon), DynOrigin::Charon);
20959 }
20960 #[test]
20961 fn test_point_mass_901() {
20962 assert_eq!(
20963 Charon.gravitational_parameter(),
20964 GravitationalParameter::km3_per_s2(105.8799888601881f64)
20965 );
20966 assert_eq!(
20967 DynOrigin::Charon.try_gravitational_parameter(),
20968 Ok(GravitationalParameter::km3_per_s2(105.8799888601881f64))
20969 );
20970 }
20971 #[test]
20972 fn test_mean_radius_901() {
20973 assert_eq!(Charon.mean_radius(), Distance::kilometers(606f64));
20974 assert_eq!(
20975 DynOrigin::Charon.try_mean_radius(),
20976 Ok(Distance::kilometers(606f64))
20977 );
20978 }
20979 #[test]
20980 fn test_spheroid_901() {
20981 assert_eq!(Charon.polar_radius(), Distance::kilometers(606f64));
20982 assert_eq!(
20983 DynOrigin::Charon.try_polar_radius(),
20984 Ok(Distance::kilometers(606f64))
20985 );
20986 assert_eq!(Charon.equatorial_radius(), Distance::kilometers(606f64));
20987 assert_eq!(
20988 DynOrigin::Charon.try_equatorial_radius(),
20989 Ok(Distance::kilometers(606f64))
20990 );
20991 }
20992 #[test]
20993 fn test_tri_axial_901() {
20994 assert_eq!(
20995 Charon.radii(),
20996 (
20997 Distance::kilometers(606f64),
20998 Distance::kilometers(606f64),
20999 Distance::kilometers(606f64)
21000 )
21001 );
21002 assert_eq!(
21003 DynOrigin::Charon.try_radii(),
21004 Ok((
21005 Distance::kilometers(606f64),
21006 Distance::kilometers(606f64),
21007 Distance::kilometers(606f64)
21008 ))
21009 );
21010 }
21011 #[test]
21012 fn test_origin_902() {
21013 assert_eq!(Nix.id().0, 902i32);
21014 assert_eq!(Nix.to_string(), "Nix");
21015 assert_eq!(DynOrigin::from(Nix), DynOrigin::Nix);
21016 }
21017 #[test]
21018 fn test_point_mass_902() {
21019 assert_eq!(
21020 Nix.gravitational_parameter(),
21021 GravitationalParameter::km3_per_s2(0.00304817564816976f64)
21022 );
21023 assert_eq!(
21024 DynOrigin::Nix.try_gravitational_parameter(),
21025 Ok(GravitationalParameter::km3_per_s2(0.00304817564816976f64))
21026 );
21027 }
21028 #[test]
21029 fn test_mean_radius_902() {
21030 assert!(DynOrigin::Nix.try_mean_radius().is_err());
21031 }
21032 #[test]
21033 fn test_tri_axial_902() {
21034 assert!(DynOrigin::Nix.try_radii().is_err());
21035 }
21036 #[test]
21037 fn test_spheroid_902() {
21038 assert!(DynOrigin::Nix.try_polar_radius().is_err());
21039 assert!(DynOrigin::Nix.try_equatorial_radius().is_err());
21040 }
21041 #[test]
21042 fn test_origin_903() {
21043 assert_eq!(Hydra.id().0, 903i32);
21044 assert_eq!(Hydra.to_string(), "Hydra");
21045 assert_eq!(DynOrigin::from(Hydra), DynOrigin::Hydra);
21046 }
21047 #[test]
21048 fn test_point_mass_903() {
21049 assert_eq!(
21050 Hydra.gravitational_parameter(),
21051 GravitationalParameter::km3_per_s2(0.003211039206155255f64)
21052 );
21053 assert_eq!(
21054 DynOrigin::Hydra.try_gravitational_parameter(),
21055 Ok(GravitationalParameter::km3_per_s2(0.003211039206155255f64))
21056 );
21057 }
21058 #[test]
21059 fn test_mean_radius_903() {
21060 assert!(DynOrigin::Hydra.try_mean_radius().is_err());
21061 }
21062 #[test]
21063 fn test_tri_axial_903() {
21064 assert!(DynOrigin::Hydra.try_radii().is_err());
21065 }
21066 #[test]
21067 fn test_spheroid_903() {
21068 assert!(DynOrigin::Hydra.try_polar_radius().is_err());
21069 assert!(DynOrigin::Hydra.try_equatorial_radius().is_err());
21070 }
21071 #[test]
21072 fn test_origin_904() {
21073 assert_eq!(Kerberos.id().0, 904i32);
21074 assert_eq!(Kerberos.to_string(), "Kerberos");
21075 assert_eq!(DynOrigin::from(Kerberos), DynOrigin::Kerberos);
21076 }
21077 #[test]
21078 fn test_point_mass_904() {
21079 assert_eq!(
21080 Kerberos.gravitational_parameter(),
21081 GravitationalParameter::km3_per_s2(0.001110040850536676f64)
21082 );
21083 assert_eq!(
21084 DynOrigin::Kerberos.try_gravitational_parameter(),
21085 Ok(GravitationalParameter::km3_per_s2(0.001110040850536676f64))
21086 );
21087 }
21088 #[test]
21089 fn test_mean_radius_904() {
21090 assert!(DynOrigin::Kerberos.try_mean_radius().is_err());
21091 }
21092 #[test]
21093 fn test_tri_axial_904() {
21094 assert!(DynOrigin::Kerberos.try_radii().is_err());
21095 }
21096 #[test]
21097 fn test_spheroid_904() {
21098 assert!(DynOrigin::Kerberos.try_polar_radius().is_err());
21099 assert!(DynOrigin::Kerberos.try_equatorial_radius().is_err());
21100 }
21101 #[test]
21102 fn test_origin_905() {
21103 assert_eq!(Styx.id().0, 905i32);
21104 assert_eq!(Styx.to_string(), "Styx");
21105 assert_eq!(DynOrigin::from(Styx), DynOrigin::Styx);
21106 }
21107 #[test]
21108 fn test_point_mass_905() {
21109 assert_eq!(
21110 Styx.gravitational_parameter(),
21111 GravitationalParameter::km3_per_s2(0f64)
21112 );
21113 assert_eq!(
21114 DynOrigin::Styx.try_gravitational_parameter(),
21115 Ok(GravitationalParameter::km3_per_s2(0f64))
21116 );
21117 }
21118 #[test]
21119 fn test_mean_radius_905() {
21120 assert!(DynOrigin::Styx.try_mean_radius().is_err());
21121 }
21122 #[test]
21123 fn test_tri_axial_905() {
21124 assert!(DynOrigin::Styx.try_radii().is_err());
21125 }
21126 #[test]
21127 fn test_spheroid_905() {
21128 assert!(DynOrigin::Styx.try_polar_radius().is_err());
21129 assert!(DynOrigin::Styx.try_equatorial_radius().is_err());
21130 }
21131 #[test]
21132 fn test_origin_9511010() {
21133 assert_eq!(Gaspra.id().0, 9511010i32);
21134 assert_eq!(Gaspra.to_string(), "Gaspra");
21135 assert_eq!(DynOrigin::from(Gaspra), DynOrigin::Gaspra);
21136 }
21137 #[test]
21138 fn test_point_mass_9511010() {
21139 assert!(DynOrigin::Gaspra.try_gravitational_parameter().is_err());
21140 }
21141 #[test]
21142 fn test_mean_radius_9511010() {
21143 assert_eq!(Gaspra.mean_radius(), Distance::kilometers(6.1f64));
21144 assert_eq!(
21145 DynOrigin::Gaspra.try_mean_radius(),
21146 Ok(Distance::kilometers(6.1f64))
21147 );
21148 }
21149 #[test]
21150 fn test_spheroid_9511010() {
21151 assert!(DynOrigin::Gaspra.try_polar_radius().is_err());
21152 assert!(DynOrigin::Gaspra.try_equatorial_radius().is_err());
21153 }
21154 #[test]
21155 fn test_tri_axial_9511010() {
21156 assert_eq!(
21157 Gaspra.radii(),
21158 (
21159 Distance::kilometers(9.1f64),
21160 Distance::kilometers(5.2f64),
21161 Distance::kilometers(4.4f64)
21162 )
21163 );
21164 assert_eq!(
21165 DynOrigin::Gaspra.try_radii(),
21166 Ok((
21167 Distance::kilometers(9.1f64),
21168 Distance::kilometers(5.2f64),
21169 Distance::kilometers(4.4f64)
21170 ))
21171 );
21172 }
21173 #[test]
21174 fn test_origin_2431010() {
21175 assert_eq!(Ida.id().0, 2431010i32);
21176 assert_eq!(Ida.to_string(), "Ida");
21177 assert_eq!(DynOrigin::from(Ida), DynOrigin::Ida);
21178 }
21179 #[test]
21180 fn test_point_mass_2431010() {
21181 assert!(DynOrigin::Ida.try_gravitational_parameter().is_err());
21182 }
21183 #[test]
21184 fn test_mean_radius_2431010() {
21185 assert_eq!(Ida.mean_radius(), Distance::kilometers(15.65f64));
21186 assert_eq!(
21187 DynOrigin::Ida.try_mean_radius(),
21188 Ok(Distance::kilometers(15.65f64))
21189 );
21190 }
21191 #[test]
21192 fn test_spheroid_2431010() {
21193 assert!(DynOrigin::Ida.try_polar_radius().is_err());
21194 assert!(DynOrigin::Ida.try_equatorial_radius().is_err());
21195 }
21196 #[test]
21197 fn test_tri_axial_2431010() {
21198 assert_eq!(
21199 Ida.radii(),
21200 (
21201 Distance::kilometers(26.8f64),
21202 Distance::kilometers(12f64),
21203 Distance::kilometers(7.6f64)
21204 )
21205 );
21206 assert_eq!(
21207 DynOrigin::Ida.try_radii(),
21208 Ok((
21209 Distance::kilometers(26.8f64),
21210 Distance::kilometers(12f64),
21211 Distance::kilometers(7.6f64)
21212 ))
21213 );
21214 }
21215 #[test]
21216 fn test_origin_2431011() {
21217 assert_eq!(Dactyl.id().0, 2431011i32);
21218 assert_eq!(Dactyl.to_string(), "Dactyl");
21219 assert_eq!(DynOrigin::from(Dactyl), DynOrigin::Dactyl);
21220 }
21221 #[test]
21222 fn test_point_mass_2431011() {
21223 assert!(DynOrigin::Dactyl.try_gravitational_parameter().is_err());
21224 }
21225 #[test]
21226 fn test_mean_radius_2431011() {
21227 assert!(DynOrigin::Dactyl.try_mean_radius().is_err());
21228 }
21229 #[test]
21230 fn test_tri_axial_2431011() {
21231 assert!(DynOrigin::Dactyl.try_radii().is_err());
21232 }
21233 #[test]
21234 fn test_spheroid_2431011() {
21235 assert!(DynOrigin::Dactyl.try_polar_radius().is_err());
21236 assert!(DynOrigin::Dactyl.try_equatorial_radius().is_err());
21237 }
21238 #[test]
21239 fn test_origin_2000001() {
21240 assert_eq!(Ceres.id().0, 2000001i32);
21241 assert_eq!(Ceres.to_string(), "Ceres");
21242 assert_eq!(DynOrigin::from(Ceres), DynOrigin::Ceres);
21243 }
21244 #[test]
21245 fn test_point_mass_2000001() {
21246 assert_eq!(
21247 Ceres.gravitational_parameter(),
21248 GravitationalParameter::km3_per_s2(62.62888864440993f64)
21249 );
21250 assert_eq!(
21251 DynOrigin::Ceres.try_gravitational_parameter(),
21252 Ok(GravitationalParameter::km3_per_s2(62.62888864440993f64))
21253 );
21254 }
21255 #[test]
21256 fn test_mean_radius_2000001() {
21257 assert_eq!(Ceres.mean_radius(), Distance::kilometers(470f64));
21258 assert_eq!(
21259 DynOrigin::Ceres.try_mean_radius(),
21260 Ok(Distance::kilometers(470f64))
21261 );
21262 }
21263 #[test]
21264 fn test_spheroid_2000001() {
21265 assert_eq!(Ceres.polar_radius(), Distance::kilometers(446f64));
21266 assert_eq!(
21267 DynOrigin::Ceres.try_polar_radius(),
21268 Ok(Distance::kilometers(446f64))
21269 );
21270 assert_eq!(Ceres.equatorial_radius(), Distance::kilometers(487.3f64));
21271 assert_eq!(
21272 DynOrigin::Ceres.try_equatorial_radius(),
21273 Ok(Distance::kilometers(487.3f64))
21274 );
21275 }
21276 #[test]
21277 fn test_tri_axial_2000001() {
21278 assert_eq!(
21279 Ceres.radii(),
21280 (
21281 Distance::kilometers(487.3f64),
21282 Distance::kilometers(487.3f64),
21283 Distance::kilometers(446f64)
21284 )
21285 );
21286 assert_eq!(
21287 DynOrigin::Ceres.try_radii(),
21288 Ok((
21289 Distance::kilometers(487.3f64),
21290 Distance::kilometers(487.3f64),
21291 Distance::kilometers(446f64)
21292 ))
21293 );
21294 }
21295 #[test]
21296 fn test_origin_2000002() {
21297 assert_eq!(Pallas.id().0, 2000002i32);
21298 assert_eq!(Pallas.to_string(), "Pallas");
21299 assert_eq!(DynOrigin::from(Pallas), DynOrigin::Pallas);
21300 }
21301 #[test]
21302 fn test_point_mass_2000002() {
21303 assert_eq!(
21304 Pallas.gravitational_parameter(),
21305 GravitationalParameter::km3_per_s2(13.665878145967422f64)
21306 );
21307 assert_eq!(
21308 DynOrigin::Pallas.try_gravitational_parameter(),
21309 Ok(GravitationalParameter::km3_per_s2(13.665878145967422f64))
21310 );
21311 }
21312 #[test]
21313 fn test_mean_radius_2000002() {
21314 assert!(DynOrigin::Pallas.try_mean_radius().is_err());
21315 }
21316 #[test]
21317 fn test_tri_axial_2000002() {
21318 assert!(DynOrigin::Pallas.try_radii().is_err());
21319 }
21320 #[test]
21321 fn test_spheroid_2000002() {
21322 assert!(DynOrigin::Pallas.try_polar_radius().is_err());
21323 assert!(DynOrigin::Pallas.try_equatorial_radius().is_err());
21324 }
21325 #[test]
21326 fn test_origin_2000004() {
21327 assert_eq!(Vesta.id().0, 2000004i32);
21328 assert_eq!(Vesta.to_string(), "Vesta");
21329 assert_eq!(DynOrigin::from(Vesta), DynOrigin::Vesta);
21330 }
21331 #[test]
21332 fn test_point_mass_2000004() {
21333 assert_eq!(
21334 Vesta.gravitational_parameter(),
21335 GravitationalParameter::km3_per_s2(17.288232879171513f64)
21336 );
21337 assert_eq!(
21338 DynOrigin::Vesta.try_gravitational_parameter(),
21339 Ok(GravitationalParameter::km3_per_s2(17.288232879171513f64))
21340 );
21341 }
21342 #[test]
21343 fn test_mean_radius_2000004() {
21344 assert!(DynOrigin::Vesta.try_mean_radius().is_err());
21345 }
21346 #[test]
21347 fn test_spheroid_2000004() {
21348 assert!(DynOrigin::Vesta.try_polar_radius().is_err());
21349 assert!(DynOrigin::Vesta.try_equatorial_radius().is_err());
21350 }
21351 #[test]
21352 fn test_tri_axial_2000004() {
21353 assert_eq!(
21354 Vesta.radii(),
21355 (
21356 Distance::kilometers(289f64),
21357 Distance::kilometers(280f64),
21358 Distance::kilometers(229f64)
21359 )
21360 );
21361 assert_eq!(
21362 DynOrigin::Vesta.try_radii(),
21363 Ok((
21364 Distance::kilometers(289f64),
21365 Distance::kilometers(280f64),
21366 Distance::kilometers(229f64)
21367 ))
21368 );
21369 }
21370 #[test]
21371 fn test_origin_2000016() {
21372 assert_eq!(Psyche.id().0, 2000016i32);
21373 assert_eq!(Psyche.to_string(), "Psyche");
21374 assert_eq!(DynOrigin::from(Psyche), DynOrigin::Psyche);
21375 }
21376 #[test]
21377 fn test_point_mass_2000016() {
21378 assert_eq!(
21379 Psyche.gravitational_parameter(),
21380 GravitationalParameter::km3_per_s2(1.5896582441709424f64)
21381 );
21382 assert_eq!(
21383 DynOrigin::Psyche.try_gravitational_parameter(),
21384 Ok(GravitationalParameter::km3_per_s2(1.5896582441709424f64))
21385 );
21386 }
21387 #[test]
21388 fn test_mean_radius_2000016() {
21389 assert_eq!(Psyche.mean_radius(), Distance::kilometers(113f64));
21390 assert_eq!(
21391 DynOrigin::Psyche.try_mean_radius(),
21392 Ok(Distance::kilometers(113f64))
21393 );
21394 }
21395 #[test]
21396 fn test_spheroid_2000016() {
21397 assert!(DynOrigin::Psyche.try_polar_radius().is_err());
21398 assert!(DynOrigin::Psyche.try_equatorial_radius().is_err());
21399 }
21400 #[test]
21401 fn test_tri_axial_2000016() {
21402 assert_eq!(
21403 Psyche.radii(),
21404 (
21405 Distance::kilometers(139.5f64),
21406 Distance::kilometers(116f64),
21407 Distance::kilometers(94.5f64)
21408 )
21409 );
21410 assert_eq!(
21411 DynOrigin::Psyche.try_radii(),
21412 Ok((
21413 Distance::kilometers(139.5f64),
21414 Distance::kilometers(116f64),
21415 Distance::kilometers(94.5f64)
21416 ))
21417 );
21418 }
21419 #[test]
21420 fn test_origin_2000021() {
21421 assert_eq!(Lutetia.id().0, 2000021i32);
21422 assert_eq!(Lutetia.to_string(), "Lutetia");
21423 assert_eq!(DynOrigin::from(Lutetia), DynOrigin::Lutetia);
21424 }
21425 #[test]
21426 fn test_point_mass_2000021() {
21427 assert!(DynOrigin::Lutetia.try_gravitational_parameter().is_err());
21428 }
21429 #[test]
21430 fn test_mean_radius_2000021() {
21431 assert_eq!(Lutetia.mean_radius(), Distance::kilometers(52.5f64));
21432 assert_eq!(
21433 DynOrigin::Lutetia.try_mean_radius(),
21434 Ok(Distance::kilometers(52.5f64))
21435 );
21436 }
21437 #[test]
21438 fn test_spheroid_2000021() {
21439 assert!(DynOrigin::Lutetia.try_polar_radius().is_err());
21440 assert!(DynOrigin::Lutetia.try_equatorial_radius().is_err());
21441 }
21442 #[test]
21443 fn test_tri_axial_2000021() {
21444 assert_eq!(
21445 Lutetia.radii(),
21446 (
21447 Distance::kilometers(62f64),
21448 Distance::kilometers(50.5f64),
21449 Distance::kilometers(46.5f64)
21450 )
21451 );
21452 assert_eq!(
21453 DynOrigin::Lutetia.try_radii(),
21454 Ok((
21455 Distance::kilometers(62f64),
21456 Distance::kilometers(50.5f64),
21457 Distance::kilometers(46.5f64)
21458 ))
21459 );
21460 }
21461 #[test]
21462 fn test_origin_2000216() {
21463 assert_eq!(Kleopatra.id().0, 2000216i32);
21464 assert_eq!(Kleopatra.to_string(), "Kleopatra");
21465 assert_eq!(DynOrigin::from(Kleopatra), DynOrigin::Kleopatra);
21466 }
21467 #[test]
21468 fn test_point_mass_2000216() {
21469 assert!(DynOrigin::Kleopatra.try_gravitational_parameter().is_err());
21470 }
21471 #[test]
21472 fn test_mean_radius_2000216() {
21473 assert!(DynOrigin::Kleopatra.try_mean_radius().is_err());
21474 }
21475 #[test]
21476 fn test_tri_axial_2000216() {
21477 assert!(DynOrigin::Kleopatra.try_radii().is_err());
21478 }
21479 #[test]
21480 fn test_spheroid_2000216() {
21481 assert!(DynOrigin::Kleopatra.try_polar_radius().is_err());
21482 assert!(DynOrigin::Kleopatra.try_equatorial_radius().is_err());
21483 }
21484 #[test]
21485 fn test_origin_2000433() {
21486 assert_eq!(Eros.id().0, 2000433i32);
21487 assert_eq!(Eros.to_string(), "Eros");
21488 assert_eq!(DynOrigin::from(Eros), DynOrigin::Eros);
21489 }
21490 #[test]
21491 fn test_point_mass_2000433() {
21492 assert_eq!(
21493 Eros.gravitational_parameter(),
21494 GravitationalParameter::km3_per_s2(0.0004463f64)
21495 );
21496 assert_eq!(
21497 DynOrigin::Eros.try_gravitational_parameter(),
21498 Ok(GravitationalParameter::km3_per_s2(0.0004463f64))
21499 );
21500 }
21501 #[test]
21502 fn test_mean_radius_2000433() {
21503 assert_eq!(Eros.mean_radius(), Distance::kilometers(8.45f64));
21504 assert_eq!(
21505 DynOrigin::Eros.try_mean_radius(),
21506 Ok(Distance::kilometers(8.45f64))
21507 );
21508 }
21509 #[test]
21510 fn test_spheroid_2000433() {
21511 assert!(DynOrigin::Eros.try_polar_radius().is_err());
21512 assert!(DynOrigin::Eros.try_equatorial_radius().is_err());
21513 }
21514 #[test]
21515 fn test_tri_axial_2000433() {
21516 assert_eq!(
21517 Eros.radii(),
21518 (
21519 Distance::kilometers(17f64),
21520 Distance::kilometers(5.5f64),
21521 Distance::kilometers(5.5f64)
21522 )
21523 );
21524 assert_eq!(
21525 DynOrigin::Eros.try_radii(),
21526 Ok((
21527 Distance::kilometers(17f64),
21528 Distance::kilometers(5.5f64),
21529 Distance::kilometers(5.5f64)
21530 ))
21531 );
21532 }
21533 #[test]
21534 fn test_origin_2000511() {
21535 assert_eq!(Davida.id().0, 2000511i32);
21536 assert_eq!(Davida.to_string(), "Davida");
21537 assert_eq!(DynOrigin::from(Davida), DynOrigin::Davida);
21538 }
21539 #[test]
21540 fn test_point_mass_2000511() {
21541 assert_eq!(
21542 Davida.gravitational_parameter(),
21543 GravitationalParameter::km3_per_s2(3.8944831481705644f64)
21544 );
21545 assert_eq!(
21546 DynOrigin::Davida.try_gravitational_parameter(),
21547 Ok(GravitationalParameter::km3_per_s2(3.8944831481705644f64))
21548 );
21549 }
21550 #[test]
21551 fn test_mean_radius_2000511() {
21552 assert_eq!(Davida.mean_radius(), Distance::kilometers(150f64));
21553 assert_eq!(
21554 DynOrigin::Davida.try_mean_radius(),
21555 Ok(Distance::kilometers(150f64))
21556 );
21557 }
21558 #[test]
21559 fn test_spheroid_2000511() {
21560 assert!(DynOrigin::Davida.try_polar_radius().is_err());
21561 assert!(DynOrigin::Davida.try_equatorial_radius().is_err());
21562 }
21563 #[test]
21564 fn test_tri_axial_2000511() {
21565 assert_eq!(
21566 Davida.radii(),
21567 (
21568 Distance::kilometers(180f64),
21569 Distance::kilometers(147f64),
21570 Distance::kilometers(127f64)
21571 )
21572 );
21573 assert_eq!(
21574 DynOrigin::Davida.try_radii(),
21575 Ok((
21576 Distance::kilometers(180f64),
21577 Distance::kilometers(147f64),
21578 Distance::kilometers(127f64)
21579 ))
21580 );
21581 }
21582 #[test]
21583 fn test_origin_2000253() {
21584 assert_eq!(Mathilde.id().0, 2000253i32);
21585 assert_eq!(Mathilde.to_string(), "Mathilde");
21586 assert_eq!(DynOrigin::from(Mathilde), DynOrigin::Mathilde);
21587 }
21588 #[test]
21589 fn test_point_mass_2000253() {
21590 assert!(DynOrigin::Mathilde.try_gravitational_parameter().is_err());
21591 }
21592 #[test]
21593 fn test_mean_radius_2000253() {
21594 assert_eq!(Mathilde.mean_radius(), Distance::kilometers(26.5f64));
21595 assert_eq!(
21596 DynOrigin::Mathilde.try_mean_radius(),
21597 Ok(Distance::kilometers(26.5f64))
21598 );
21599 }
21600 #[test]
21601 fn test_spheroid_2000253() {
21602 assert!(DynOrigin::Mathilde.try_polar_radius().is_err());
21603 assert!(DynOrigin::Mathilde.try_equatorial_radius().is_err());
21604 }
21605 #[test]
21606 fn test_tri_axial_2000253() {
21607 assert_eq!(
21608 Mathilde.radii(),
21609 (
21610 Distance::kilometers(33f64),
21611 Distance::kilometers(24f64),
21612 Distance::kilometers(23f64)
21613 )
21614 );
21615 assert_eq!(
21616 DynOrigin::Mathilde.try_radii(),
21617 Ok((
21618 Distance::kilometers(33f64),
21619 Distance::kilometers(24f64),
21620 Distance::kilometers(23f64)
21621 ))
21622 );
21623 }
21624 #[test]
21625 fn test_origin_2002867() {
21626 assert_eq!(Steins.id().0, 2002867i32);
21627 assert_eq!(Steins.to_string(), "Steins");
21628 assert_eq!(DynOrigin::from(Steins), DynOrigin::Steins);
21629 }
21630 #[test]
21631 fn test_point_mass_2002867() {
21632 assert!(DynOrigin::Steins.try_gravitational_parameter().is_err());
21633 }
21634 #[test]
21635 fn test_mean_radius_2002867() {
21636 assert_eq!(Steins.mean_radius(), Distance::kilometers(2.7f64));
21637 assert_eq!(
21638 DynOrigin::Steins.try_mean_radius(),
21639 Ok(Distance::kilometers(2.7f64))
21640 );
21641 }
21642 #[test]
21643 fn test_spheroid_2002867() {
21644 assert!(DynOrigin::Steins.try_polar_radius().is_err());
21645 assert!(DynOrigin::Steins.try_equatorial_radius().is_err());
21646 }
21647 #[test]
21648 fn test_tri_axial_2002867() {
21649 assert_eq!(
21650 Steins.radii(),
21651 (
21652 Distance::kilometers(3.24f64),
21653 Distance::kilometers(2.73f64),
21654 Distance::kilometers(2.04f64)
21655 )
21656 );
21657 assert_eq!(
21658 DynOrigin::Steins.try_radii(),
21659 Ok((
21660 Distance::kilometers(3.24f64),
21661 Distance::kilometers(2.73f64),
21662 Distance::kilometers(2.04f64)
21663 ))
21664 );
21665 }
21666 #[test]
21667 fn test_origin_2009969() {
21668 assert_eq!(Braille.id().0, 2009969i32);
21669 assert_eq!(Braille.to_string(), "Braille");
21670 assert_eq!(DynOrigin::from(Braille), DynOrigin::Braille);
21671 }
21672 #[test]
21673 fn test_point_mass_2009969() {
21674 assert!(DynOrigin::Braille.try_gravitational_parameter().is_err());
21675 }
21676 #[test]
21677 fn test_mean_radius_2009969() {
21678 assert!(DynOrigin::Braille.try_mean_radius().is_err());
21679 }
21680 #[test]
21681 fn test_tri_axial_2009969() {
21682 assert!(DynOrigin::Braille.try_radii().is_err());
21683 }
21684 #[test]
21685 fn test_spheroid_2009969() {
21686 assert!(DynOrigin::Braille.try_polar_radius().is_err());
21687 assert!(DynOrigin::Braille.try_equatorial_radius().is_err());
21688 }
21689 #[test]
21690 fn test_origin_2004015() {
21691 assert_eq!(WilsonHarrington.id().0, 2004015i32);
21692 assert_eq!(WilsonHarrington.to_string(), "Wilson-Harrington");
21693 assert_eq!(
21694 DynOrigin::from(WilsonHarrington),
21695 DynOrigin::WilsonHarrington
21696 );
21697 }
21698 #[test]
21699 fn test_point_mass_2004015() {
21700 assert!(
21701 DynOrigin::WilsonHarrington
21702 .try_gravitational_parameter()
21703 .is_err()
21704 );
21705 }
21706 #[test]
21707 fn test_mean_radius_2004015() {
21708 assert!(DynOrigin::WilsonHarrington.try_mean_radius().is_err());
21709 }
21710 #[test]
21711 fn test_tri_axial_2004015() {
21712 assert!(DynOrigin::WilsonHarrington.try_radii().is_err());
21713 }
21714 #[test]
21715 fn test_spheroid_2004015() {
21716 assert!(DynOrigin::WilsonHarrington.try_polar_radius().is_err());
21717 assert!(DynOrigin::WilsonHarrington.try_equatorial_radius().is_err());
21718 }
21719 #[test]
21720 fn test_origin_2004179() {
21721 assert_eq!(Toutatis.id().0, 2004179i32);
21722 assert_eq!(Toutatis.to_string(), "Toutatis");
21723 assert_eq!(DynOrigin::from(Toutatis), DynOrigin::Toutatis);
21724 }
21725 #[test]
21726 fn test_point_mass_2004179() {
21727 assert!(DynOrigin::Toutatis.try_gravitational_parameter().is_err());
21728 }
21729 #[test]
21730 fn test_mean_radius_2004179() {
21731 assert!(DynOrigin::Toutatis.try_mean_radius().is_err());
21732 }
21733 #[test]
21734 fn test_spheroid_2004179() {
21735 assert!(DynOrigin::Toutatis.try_polar_radius().is_err());
21736 assert!(DynOrigin::Toutatis.try_equatorial_radius().is_err());
21737 }
21738 #[test]
21739 fn test_tri_axial_2004179() {
21740 assert_eq!(
21741 Toutatis.radii(),
21742 (
21743 Distance::kilometers(2.13f64),
21744 Distance::kilometers(1.015f64),
21745 Distance::kilometers(0.85f64)
21746 )
21747 );
21748 assert_eq!(
21749 DynOrigin::Toutatis.try_radii(),
21750 Ok((
21751 Distance::kilometers(2.13f64),
21752 Distance::kilometers(1.015f64),
21753 Distance::kilometers(0.85f64)
21754 ))
21755 );
21756 }
21757 #[test]
21758 fn test_origin_2025143() {
21759 assert_eq!(Itokawa.id().0, 2025143i32);
21760 assert_eq!(Itokawa.to_string(), "Itokawa");
21761 assert_eq!(DynOrigin::from(Itokawa), DynOrigin::Itokawa);
21762 }
21763 #[test]
21764 fn test_point_mass_2025143() {
21765 assert!(DynOrigin::Itokawa.try_gravitational_parameter().is_err());
21766 }
21767 #[test]
21768 fn test_mean_radius_2025143() {
21769 assert!(DynOrigin::Itokawa.try_mean_radius().is_err());
21770 }
21771 #[test]
21772 fn test_spheroid_2025143() {
21773 assert!(DynOrigin::Itokawa.try_polar_radius().is_err());
21774 assert!(DynOrigin::Itokawa.try_equatorial_radius().is_err());
21775 }
21776 #[test]
21777 fn test_tri_axial_2025143() {
21778 assert_eq!(
21779 Itokawa.radii(),
21780 (
21781 Distance::kilometers(0.268f64),
21782 Distance::kilometers(0.147f64),
21783 Distance::kilometers(0.104f64)
21784 )
21785 );
21786 assert_eq!(
21787 DynOrigin::Itokawa.try_radii(),
21788 Ok((
21789 Distance::kilometers(0.268f64),
21790 Distance::kilometers(0.147f64),
21791 Distance::kilometers(0.104f64)
21792 ))
21793 );
21794 }
21795 #[test]
21796 fn test_origin_2101955() {
21797 assert_eq!(Bennu.id().0, 2101955i32);
21798 assert_eq!(Bennu.to_string(), "Bennu");
21799 assert_eq!(DynOrigin::from(Bennu), DynOrigin::Bennu);
21800 }
21801 #[test]
21802 fn test_point_mass_2101955() {
21803 assert!(DynOrigin::Bennu.try_gravitational_parameter().is_err());
21804 }
21805 #[test]
21806 fn test_mean_radius_2101955() {
21807 assert!(DynOrigin::Bennu.try_mean_radius().is_err());
21808 }
21809 #[test]
21810 fn test_tri_axial_2101955() {
21811 assert!(DynOrigin::Bennu.try_radii().is_err());
21812 }
21813 #[test]
21814 fn test_spheroid_2101955() {
21815 assert!(DynOrigin::Bennu.try_polar_radius().is_err());
21816 assert!(DynOrigin::Bennu.try_equatorial_radius().is_err());
21817 }
21818}