YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
FlyWheelConfig.hpp
Go to the documentation of this file.
1// Copyright (c) 2026 Yet Another Software Suite
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#pragma once
5
6#include <optional>
7#include <string>
8#include <wpi/units/length.hpp>
9#include <wpi/util/Color.hpp>
10#include <wpi/util/Color8Bit.hpp>
11
13
15
22 public:
23 FlyWheelConfig() = default;
24
25 // ---- Builder methods -------------------------------------------------------
26
33 FlyWheelConfig& WithTelemetryName(const std::string& name);
34
44 FlyWheelConfig& WithRollerDiameter(wpi::units::meter_t diameter);
45
47 FlyWheelConfig& WithSimColor(const wpi::util::Color8Bit& color);
48
57 m_mechanismPositionConfig = mechanismPositionConfig;
58 return *this;
59 }
60
61 // ---- Getters ---------------------------------------------------------------
62
64 std::string GetTelemetryName() const;
65
67 std::optional<wpi::units::meter_t> GetRollerDiameter() const;
68
70 wpi::util::Color8Bit GetSimColor() const;
71
73 const MechanismPositionConfig& GetMechanismPositionConfig() const { return m_mechanismPositionConfig; }
74
75 private:
76 std::string m_telemetryName;
77 std::optional<wpi::units::meter_t> m_rollerDiameter;
78 wpi::util::Color8Bit m_simColor{wpi::util::Color::ORANGE};
79 MechanismPositionConfig m_mechanismPositionConfig;
80};
81
82} // namespace yams::mechanisms::config
Definition FlyWheelConfig.hpp:21
const MechanismPositionConfig & GetMechanismPositionConfig() const
Definition FlyWheelConfig.hpp:73
wpi::util::Color8Bit GetSimColor() const
FlyWheelConfig & WithTelemetryName(const std::string &name)
FlyWheelConfig & WithMechanismPositionConfig(const MechanismPositionConfig &mechanismPositionConfig)
Definition FlyWheelConfig.hpp:56
std::optional< wpi::units::meter_t > GetRollerDiameter() const
FlyWheelConfig & WithRollerDiameter(wpi::units::meter_t diameter)
FlyWheelConfig & WithSimColor(const wpi::util::Color8Bit &color)
Definition MechanismPositionConfig.hpp:31
Definition ArmConfig.hpp:17