#include "transmission.h" void Transmission::set_gear(int gear) { if (gear >= 0 && gear <= kNumGears) { m_gear = gear; } } int Transmission::gear() const { return m_gear; } double Transmission::ratio() const { return kGearRatios[m_gear] * kFinalDrive; } double Transmission::output_torque_nm(double engine_torque_nm) const { if (m_gear == 0) return 0.0; // neutral: nothing reaches the wheels return engine_torque_nm * ratio(); } double Transmission::reflected_engine_rpm(double wheel_rpm) const { if (m_gear == 0) return 0.0; // decoupled in neutral return wheel_rpm * ratio(); }