Refactor redesign sat class architecture#13
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Completely redesigned the architecture of the orbital classes. Both Satellite and Orbit now take the dynamical state as arguments, with Orbit having an optional constructor from elements to be used when updating from the GUI.
All orbit-mechanical calculations have been moved to separate helper function files (with unit tests written) that are called lazily when accessing satellite or orbit attributes. All previous tests have been refactored to align with this new design pattern.
The attributes being referenced in each class are different now as well. The Orbit class has orbital invariants as attributes, while the Satellite class has the dynamical state (essentially anything that depends on the true anomaly for a fixed orbit, with the notable exception of specific angular momentum, which is invariant across a given orbit). The GUI has been changed to reflect this change, and the Satellite portion of the Properties frame is now titled "Current satellite state".