Program Listing for File spacecraft.h¶
↰ Return to documentation for file (agents/spacecraft.h)
#pragma once
#include "lupnt/agents/agent.h"
#include "lupnt/dynamics/joint_orbit_clock_dynamics.h"
namespace lupnt {
class Spacecraft : public Agent {
public:
Spacecraft() = default;
explicit Spacecraft(Config& config);
void Setup() override { Agent::Setup(); }
void Step(Real t) override;
State GetTruthStateAt(Real t) const;
const State& GetTruthState() const { return truth_; }
Real GetTruthTime() const { return truth_time_; }
JointOrbitClockDynamics* GetTruthDynamics() const { return truth_dyn_.get(); }
Cart6 GetStateAt(Real t) const override;
protected:
void ConfigureTruth(Config& config);
State truth_;
Real truth_time_ = 0.0;
Ptr<JointOrbitClockDynamics> truth_dyn_;
};
} // namespace lupnt