DynamicGravitySystems / DGP

Dynamic Gravity Processor
http://dgp.readthedocs.io/en/develop/
Apache License 2.0
7 stars 4 forks source link

Feature/project structure #69

Closed bradyzp closed 6 years ago

bradyzp commented 6 years ago

Merge feature/project-structure into develop.

The project-structure branch is a major re-write of the previous gravity project hierarchy code. It became apparent working with the transform functionality that the first iteration code was far too tightly coupled with the UI code, and dependent on Python's builtin pickle functionality for loading/saving project state - which had its own issues, making it particularly difficult to introduce new attributes to any of the project objects.

This feature branch has re-written and decoupled the project models (containing only state data for Flights, DataSets etc.) and their respective controllers - which provide the public interface and GUI presentation layer.

As a consequence of this, it was possible to change the serialization method from relying on Python's pickle, to using a custom JSON Encoder/Decoder. Using JSON is preferable to pickle as the JSON file stores only the actual data associated with the project state - pickle often caused interesting errors or incompatibilities when project code was changed and an old project file was loaded - as pickle actually serializes entire Python objects (logic and all).

GUI Improvements

Build Improvements

Transform Graph Integration

This was the secondary goal of this branch, though re-working of the project-structure took precedence, and much work is still to be done on the transformation interface (see the TransformTab within a Flight).

The state of the Transform Tab Interface is essentially a preview currently, some basic functionality is available:

Documentation Updates

ToDo

Some features have been broken or not yet fully re-implemented but this branch was getting large enough as it was - I'll tackle some of these individually after the merge.

Sorry for the massive PR here, things have a way of running away from themselves.