.. _program_listing_file_states_params.h: Program Listing for File params.h ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``states/params.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "lupnt/states/state.h" namespace lupnt { class ParamState : public State { public: ParamState() : State() { SetType(TYPE); SetFrame(Frame::MOON_CI); } ParamState(int n) : State(n) { SetType(TYPE); SetFrame(Frame::MOON_CI); } ParamState(const VecX& x, std::vector names) : State(x) { SetType(TYPE); SetNames(names); SetUnits(GetParamUnits(names)); SetFrame(Frame::MOON_CI); } ParamState(const VecX& x, std::vector names, std::vector units) : State(x) { SetType(TYPE); SetNames(names); SetUnits(units); SetFrame(Frame::MOON_CI); } static constexpr StateType TYPE = "Params"; private: std::vector GetParamUnits(const std::vector& names) { if (names.empty()) { return {"-"}; } std::vector units; for (const auto& name : names) { if (name == "bcoeff_drag" || name == "bcoeff_srp") { units.push_back("m^2/kg"); } else if (name == "IntegerAmbiguity") { units.push_back("-"); } else { units.push_back("-"); } } return units; } }; } // namespace lupnt