- Add Mat3 struct documentation
- Update OrbitalElements note: 3D now fully implemented
- Document matrix operations in Physics module section
- Update OrbitTracker with new orbital element fields
- Remove deferred status from Orbital Mechanics documentation
- Molniya position tests now pass with 3D rotation implementation
- Generic inclined orbit test passes with proper argument_of_periapsis
- Only orbital period test still fails (orbit tracker needs 3D fix)
- Add plan document for fixing update_orbit_tracker()
- Remove altitude convenience parameter from body and spacecraft config parsing
- Update test configs to use explicit semi_major_axis instead of altitude
- Remove buggy post-processing loop that added parent radius to all spacecraft
- Result: Semi-major axis now used as-is (correct behavior)
- Test results: Molniya position tests now pass (was failing by 1-11M meters)
- Documentation: Remove altitude references from technical reference
- Planning: Document bug fix decision and implementation details
Changes:
- src/config_loader.cpp: Remove altitude parsing and post-processing
- tests/test_maneuver_planning.toml: Use semi_major_axis = 6.771e6
- tests/test_maneuvers.toml: Use semi_major_axis = 6.771e6
- tests/test_orbit_rendering.toml: Use semi_major_axis = 6.771e6
- docs/technical_reference.md: Remove altitude documentation
- docs/planning/molniya-orbit-test-plan.md: Document bug fix approach
- Create test configuration for Molniya orbits with Earth as root body
- Implement test suite for highly inclined orbits:
* Position verification at multiple true anomalies
* Orbital period verification
* Generic inclined orbit test
* Inclination parameter preservation
- Document critical bug in spacecraft initialization:
* Config loader incorrectly adds parent radius to semi_major_axis
* Affects all spacecraft using semi_major_axis directly
* Causes significant position errors (1-11M meters)
* Molniya tests fail due to this bug, not test code
- Changed scale_radius() from linear to logarithmic: scale * log10(radius)
- Adjusted size_scale from 1e-9 to 0.02 for better visual hierarchy
- Lowered min_radius from 0.5f to 0.01f for fine-grained visibility
- Updated rendering documentation with new scaling values
This handles extreme radius ranges (1.5M to 700M meters) while maintaining
visible size differences between Sun, planets, and moons.
- Correct OrbitalElements struct to match orbital_mechanics.h
- Update CelestialBody and Spacecraft structs to show OrbitalElements field
- Update Config Loader section with orbital elements format
- Add new Config Validator module section with all validation functions
- Update Initialization Sequence to include run_all_config_validations()
- Update config examples to use orbit table instead of state vectors
- Implemented union in OrbitalElements (semi_major_axis | semi_latus_rectum)
- Updated config_loader to validate parabolic vs elliptical/hyperbolic orbits
- Fixed orbital_mechanics.cpp parabolic case to use semi_latus_rectum
- Updated parabolic_comet.toml to use correct orbital parameters
- Updated validation logic for both bodies and spacecraft
- Created docs/parabolic_union_implementation.md with full implementation plan
- Updated docs/unified_orbital_elements_plan.md to mark phases 7-9 complete
Note: Parabolic orbit test velocity tolerance check fails due to test expecting
velocity at 1 AU, but config has comet at perihelion (0.5 AU).
Position and velocity are mathematically correct, energy is ~0.
- Added orbital_mechanics module with orbital_elements_to_cartesian()
- Updated initialize_orbital_objects() to use orbital mechanics
- Added validate_initial_positions() for post-initialization checking
- Fixed test files to use global_position/global_velocity
- Updated config loader to support spacecraft altitude parameter
- Fixed orbital_mechanics.cpp velocity calculation bug (removed duplicate scaling)
- Updated Makefile to include orbital_mechanics.o in test build
- Renamed simulation.h OrbitalMetrics to OrbitalAnalysis to avoid conflict
- Added docs/parabolic_union_implementation.md for parabolic orbit support plan
Note: Test configs still need manual fix for orbit table TOML syntax