1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! Bevy `System`s that delegate per-body work to `astrodyn` per-body
//! orchestration functions. Each system queries the relevant components,
//! calls into `astrodyn`, and writes the result back. No physics
//! algorithms live here.
//!
//! Frame-tree state lives entirely on Bevy entities: every source /
//! body has a [`crate::components::FrameEntityC`] handle pointing at
//! its frame entity, which carries
//! [`crate::components::FrameTransC`] / [`crate::components::FrameRotC`] /
//! [`crate::components::FrameAngVelC`]. Cross-frame queries flow
//! through [`crate::frame_param::RelativeFrameState`] and
//! [`crate::frame_param::FrameOrigin`].
//!
//! # Submodule layout
//!
//! Per-stage modules host the [`AstrodynSet`](crate::AstrodynSet) pipeline
//! systems; the `glue` submodule hosts ECS plumbing systems
//! (frame-tree registration, joint kinematics, mass-point sync,
//! despawn observers, mass recompute) that wire alongside the
//! pipeline rather than living on a single set.
//!
//! - `time_update`
//! - `ephemeris_update`
//! - `environment`
//! - `interaction`
//! - `force_collection`
//! - `integration`
//! - `derived_state`
//! - `glue`
//!
//! Submodules are private to keep the per-stage names from colliding
//! with the same names in [`crate::components`] under
//! `pub use components::*` / `pub use systems::*` glob exports.
//! All public items from each submodule are re-exported here so
//! external `astrodyn_bevy::systems::<name>` paths continue to resolve.
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;