From c6612deb0a177c132a0888d80a38946f4a17012e Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Wed, 29 May 2024 15:15:49 -0600 Subject: [PATCH] Update codebase walkthrough for OpenRocket core --- .../datafiles/openrocket-database | 2 +- .../source/dev_guide/codebase_walkthrough.rst | 145 +++++++++--------- 2 files changed, 73 insertions(+), 74 deletions(-) diff --git a/core/resources-src/datafiles/openrocket-database b/core/resources-src/datafiles/openrocket-database index 48eb2172d..93054dc2b 160000 --- a/core/resources-src/datafiles/openrocket-database +++ b/core/resources-src/datafiles/openrocket-database @@ -1 +1 @@ -Subproject commit 48eb2172d58c0db6042bd847a782835df056b287 +Subproject commit 93054dc2b40d5196433b1d91c636cee2e9dda424 diff --git a/docs/source/dev_guide/codebase_walkthrough.rst b/docs/source/dev_guide/codebase_walkthrough.rst index 0bef9e8fa..86c6a3b85 100644 --- a/docs/source/dev_guide/codebase_walkthrough.rst +++ b/docs/source/dev_guide/codebase_walkthrough.rst @@ -44,82 +44,81 @@ The following is an overview of the packages in the ``info.openrocket.core`` mod .. code-block:: none - ├── aerodynamics # Calculation of aerodynamic properties (e.g. drag) - │ └── barrowman # Barrowman method for calculating coefficient of drag (CD) - ├── appearance # Appearance of components (e.g. color, texture) - │ └── defaults # Default appearance settings - ├── arch # Get info on the system architecture (macOS, Windows, Linux) - ├── communication # Communication with external sites/programs (e.g. retrieve the latest version of OpenRocket from GitHub) - ├── database # Database handling (component database, motor database) - │ └── motor # Thrust curve database - ├── document # OpenRocket document and simulation handling - │ ├── attachments # Attachments to OpenRocket documents - │ └── events # OpenRocket events (e.g. document changed, simulation changed) - ├── file # File handling - │ ├── configuration - │ ├── iterator # Iterate files in e.g. a directory or a zip file - │ ├── motor # Motor files handling - │ ├── openrocket # OpenRocket file handling - │ │ ├── importt # Import OpenRocket files - │ │ └── savers # Save OpenRocket files - │ ├── rasaero # RASAero II file handling - │ │ ├── export # Export OpenRocket files to RASAero II - │ │ └── importt # Import RASAero II files to OpenRocket - │ ├── rocksim # RockSim file handling - │ │ ├── export # Export OpenRocket files to RockSim - │ │ └── importt # Import RockSim files to OpenRocket - │ ├── simplesax # XML file handling - │ ├── svg # SVG file handling - │ │ └── export # SVG export - │ └── wavefrontobj # Wavefront OBJ file handling - │ └── export # Export OpenRocket components to Wavefront OBJ + ├── aerodynamics # Calculation of aerodynamic properties (e.g. aerodynamic forces, CD) + │ └── barrowman # Barrowman method for calculating aerodynamic properties + ├── appearance # Appearance of components (e.g. color, texture) + │ └── defaults # Default appearance settings + ├── arch # Get info on the system architecture (macOS, Windows, Linux) + ├── communication # Communication with external sites/programs (e.g. retrieve the latest version of OpenRocket from GitHub) + ├── database # Database handling (component database, motor database) + │ └── motor # Thrust curve (i.e. motor) database + ├── document # OpenRocket document and simulation handling + │ ├── attachments # Attachments to OpenRocket documents + │ └── events # OpenRocket events (i.e. document changed, simulation changed) + ├── file # File handling + │ ├── iterator # Iterate files in e.g. a directory or a zip file + │ ├── motor # Motor files handling + │ ├── openrocket # OpenRocket file handling + │ │ ├── importt # Import OpenRocket files + │ │ └── savers # Save OpenRocket files + │ ├── rasaero # RASAero II file handling + │ │ ├── export # Export OpenRocket files to RASAero II + │ │ └── importt # Import RASAero II files to OpenRocket + │ ├── rocksim # RockSim file handling + │ │ ├── export # Export OpenRocket files to RockSim + │ │ └── importt # Import RockSim files to OpenRocket + │ ├── simplesax # XML file handling + │ ├── svg # SVG file handling + │ │ └── export # SVG export + │ └── wavefrontobj # Wavefront OBJ file handling + │ └── export # Export OpenRocket components to Wavefront OBJ │ ├── components # Export OpenRocket components │ └── shapes # Export general geometry shapes - ├── formatting # Formatting of e.g. motor config names + ├── formatting # Formatting of e.g. motor config names ├── gui - │ └── util - ├── l10n # Translation of OpenRocket - ├── logging # Logging and message handling (e.g. error and warning messages) - ├── masscalc # Calculation of mass properties (weight and center of gravity) - ├── material # Material properties (physical properties of materials) - ├── models # Physical models (e.g. atmosphere, gravity, wind) - │ ├── atmosphere # Atmosphere models - │ ├── gravity # Gravity models - │ └── wind # Wind models - ├── motor - ├── optimization # Optimization algorithms - │ ├── general - │ │ ├── multidim - │ │ └── onedim - │ ├── rocketoptimization - │ │ ├── domains - │ │ ├── goals - │ │ ├── modifiers - │ │ └── parameters - │ └── services - ├── plugin - ├── preset - │ ├── loader - │ └── xml - ├── rocketcomponent # Rocket components (e.g. fins, nose cone, tube) - │ └── position # Position of rocket components - ├── rocketvisitors - ├── scripting - ├── simulation - │ ├── customexpression - │ ├── exception - │ ├── extension - │ │ ├── example - │ │ └── impl - │ └── listeners - │ ├── example - │ └── system - ├── startup - ├── thrustcurve - ├── unit - ├── util - │ └── enums - └── utils + │ └── util # Filename filter + ├── l10n # Localization (translation of OpenRocket into languages other than English) + ├── logging # Errors, warnings, and aborts + ├── masscalc # Mass property (e.g. mass, CG, moments of inertia) calculation drivers. Actual component mass calculations are in the components themselves + ├── material # Material properties (physical properties of materials) + ├── models # Physical models (e.g. atmosphere, gravity, wind) + │ ├── atmosphere # Atmosphere models + │ ├── gravity # Gravity models + │ └── wind # Wind models + ├── motor # Motor configuration, ID, and thrustcurves + ├── optimization # Optimization algorithms + │ ├── general # Parameter search space algorithms + │ │ ├── multidim # Multidimensional parallel search optimization + │ │ └── onedim # One dimensional golden-section search optimization + │ ├── rocketoptimization # Optimization of rocket parameters for specified goal functions + │ │ ├── domains # Limits on optimization parameters + │ │ ├── goals # Max, min, and specific value optimization goals + │ │ ├── modifiers # Modify rocket parameters + │ │ └── parameters # Simulation results that can be optimized + │ └── services # Provide parameters etc to optimizer + ├── plugin # Plugin interface (more general but less developed than extension interface) + ├── preset # Component presets + │ ├── loader # Component database file loader + │ └── xml # Component database file writer + ├── rocketcomponent # Rocket components (e.g. fins, nose cone, tube) + │ └── position # Position of rocket components + ├── rocketvisitors # Create lists of components and motors + ├── scripting # Javascript scripting of OR functionality + ├── simulation # Flight simulation code + │ ├── customexpression # User defined custom expression handling + │ ├── exception # Exceptions occurring during simulation + │ ├── extension # User defined simulation extensions + │ │ ├── example # Examples of simulation extensions + │ │ └── impl # Helper methods for implementing extensions + │ └── listeners # Code "listening" to simulation to implement functionality + │ ├── example # Example user listeners + │ └── system # Listeners used by OpenRocket itself + ├── startup # Root Application and related classes + ├── thrustcurve # Thrustcurve file and thrustcurve.org API + ├── unit # Definitions of units and unit conversions + ├── util # Miscellaneous utility methods + │ └── enums # Conversion of enums to names + └── utils # More utility methods Swing Module