Program Listing for File ephemeris_app.h

Return to documentation for file (applications/ephemeris/ephemeris_app.h)

#pragma once

#include "lupnt/applications/application.h"
#include "lupnt/core/config.h"
#include "lupnt/simulations/ephemeris/ephemeris_simulation.h"

namespace lupnt {

  EphemerisSimulationConfig ConfigToEphemerisConfig(Config& config);

  class EphemerisApp : public Application {
  public:
    EphemerisApp() = default;
    explicit EphemerisApp(Config& config);
    explicit EphemerisApp(EphemerisSimulationConfig config);

    void Setup() override;

    void Step(Real t) override;

    void Log(Real /*t*/) override {}

    const EphemerisSimulationConfig& GetConfig() const { return cfg_; }
    const EphemerisResults& GetResults() const { return results_; }

  private:
    void Initialize();

    EphemerisSimulationConfig cfg_;
    EphemerisResults results_;
    bool initialized_ = false;
  };

}  // namespace lupnt