#pragma once #include "Propulsion.h" #include "Thing.h" #include "Vector3.h" namespace Passer { namespace RoboidControl { /// @brief Support for Quadcopter as a propulsion method class Quadcopter : public Propulsion { public: /// @brief Default constuctor Quadcopter(); virtual void SetTwistSpeed(float forward, float yaw = 0.0F) override; virtual void SetTwistSpeed(Vector2 linear, float yaw = 0.0F) override; virtual void SetTwistSpeed(Vector3 linear, float yaw = 0.0F, float pitch = 0.0F, float roll = 0.0F) override; Vector3 GetTargetVelocity(); float GetYawSpeed(); float GetPitchSpeed(); float GetRollSpeed(); protected: Vector3 velocity = Vector3::zero; float pitchSpeed = 0.0F; float yawSpeed = 0.0F; float rollSpeed = 0.0F; }; } // namespace RoboidControl } // namespace Passer using namespace Passer::RoboidControl;