bkloppenborg / simtoi

The SImulation and Modeling Tool for Optical Interferometry
GNU General Public License v3.0
7 stars 6 forks source link

Add support for binaries #149

Open bkloppenborg opened 8 years ago

bkloppenborg commented 8 years ago

We need to add support for binaries and/or other hierarchical orbital models.

At present simply adding a binary orbit position object to SIMTOI would be exceedingly difficult as we would need to associate one position object with multiple models (easy via. shared pointers) and determine their (x,y,z) location based upon the calling object (not easy). Instead, I propose we swap the role of models and positions such that positions now serve as a container object for one or more models. Doing this will require a substantial overhaul of SIMTOI including:

  1. CModel
    • Remove Position Object
    • Insert datamember for (x,y,z) position
    • Add public function to set/get position.
    • Make CModel base class be full class (i.e. remove abstract class)
  2. CPosition
    • Base class will need to contain a model list (perhaps of fixed size)
    • Add get/add/remove model functions.
  3. CModelList
    • Convert to a simple container?
  4. Create CPositionList?
    • We need a high-level container for interfacing from the CWorkerThread
  5. Rewrite UI elements
    • ModelEditor
    • ParameterEditor