diff --git a/docs/technical_reference.md b/docs/technical_reference.md index d8c8aab..ef0dea6 100644 --- a/docs/technical_reference.md +++ b/docs/technical_reference.md @@ -111,6 +111,7 @@ struct OrbitalElements { double argument_of_periapsis; }; ``` +**Note:** 3D orientation using `inclination`, `longitude_of_ascending_node`, and `argument_of_periapsis` is defined but not yet applied to orbital calculations (deferred implementation). ### Spacecraft (spacecraft.h) ```cpp @@ -195,6 +196,21 @@ Vector math and gravity calculations. RK4 (Runge-Kutta 4th order) integration wi - `rk4_step(Vec3* position, Vec3* velocity, double dt, double body_mass, double parent_mass)` - RK4 integration using position/velocity pointers - `evaluate_acceleration(Vec3 relative_pos, double body_mass, double parent_mass)` - computes gravitational acceleration from parent +### Orbital Mechanics (orbital_mechanics.cpp/h) +Keplerian orbital elements to Cartesian coordinate conversion. Supports all orbit types with planar orbits (3D orientation deferred). + +**Key functions:** +- `orbital_elements_to_cartesian(OrbitalElements elements, double parent_mass, Vec3* out_position, Vec3* out_velocity)` - converts Keplerian elements to local position/velocity + +**Implementation:** +- Circular orbits (e=0): Position on circle, velocity from vis-viva equation +- Elliptical orbits (01): Same as elliptical with negative semi_major_axis +- All elements use SI units (meters, radians) +- `true_anomaly = 0` is at periapsis (closest approach) +- 3D orientation (inclination, RAAN, argument of periapsis) defined but not yet applied (deferred) + ### Simulation (simulation.cpp/h) Simulation state management and updates. SOI detection using Hill sphere: `r_soi = a * (m/M)^(2/5)`. @@ -299,6 +315,7 @@ orbit = { ``` - Uses `orbit` table for orbital elements (same as bodies) - Altitude can be used instead of `semi_major_axis` for non-parabolic orbits (convenience feature, added to parent radius) +- Optional 3D orbital elements (inclination, longitude_of_ascending_node, argument_of_periapsis) are defined but not yet applied (deferred) **Config format (TOML) - Maneuvers:** ```toml