#pragma once #include "sample.hpp" #include "../rod.hpp" namespace sim::reactor::fuel { class fuel_rod : public sim::reactor::rod { sample s; virtual double get_k(val_t type) const { return 0.5; } virtual void display(std::ostream& o) const; virtual bool has_sensors(val_t t) const { return true; } virtual const char* get_name() const { return "Fuel"; } virtual int get_id() const { return 1; } virtual double get_energy_output() const; virtual glm::vec4 get_colour() const; public: fuel_rod(double fuel); fuel_rod(const Json::Value& node); virtual Json::Value serialize() const; virtual std::unique_ptr clone() const { return std::make_unique(*this); } virtual bool should_display() const { return true; } virtual void update(double secs); }; }