diff --git a/Propulsion.cpp b/Propulsion.cpp index 64b75a2..7485dfa 100644 --- a/Propulsion.cpp +++ b/Propulsion.cpp @@ -102,3 +102,7 @@ void Propulsion::SetTwistVelocity(float forwardVelocity, float turningVelocity) float rightVelocity = Float::Clamp(forwardVelocity + turningVelocity, -1, 1); SetDiffDriveVelocities(leftVelocity, rightVelocity); } + +Quadcopter* Propulsion::GetQuadcopter() { + return quadcopter; +} \ No newline at end of file diff --git a/Propulsion.h b/Propulsion.h index b8c6d48..b05cbca 100644 --- a/Propulsion.h +++ b/Propulsion.h @@ -1,5 +1,6 @@ #pragma once +#include "Quadcopter.h" #include "ControlledMotor.h" #include "Placement.h" #include "Vector2.h" @@ -33,6 +34,7 @@ class Propulsion { void SetTwistVelocity(float forward, float yaw); // Think: drones + Quadcopter* GetQuadcopter(); void SetLinearSpeed(Vector3 direction); protected: @@ -40,4 +42,6 @@ class Propulsion { //MotorPlacement* motors = nullptr; Placement* placement = nullptr; unsigned int motorCount = 0; + + Quadcopter* quadcopter = nullptr; }; diff --git a/Quadcopter.cpp b/Quadcopter.cpp new file mode 100644 index 0000000..1bb7b04 --- /dev/null +++ b/Quadcopter.cpp @@ -0,0 +1,9 @@ +#include "Quadcopter.h" + +Quadcopter::Quadcopter() { +} + +void Quadcopter::LinearMotion(Vector3 velocity, float yawRate) { + this->velocity = velocity; + this->yawRate = yawRate; +} \ No newline at end of file diff --git a/Quadcopter.h b/Quadcopter.h new file mode 100644 index 0000000..8b71e23 --- /dev/null +++ b/Quadcopter.h @@ -0,0 +1,14 @@ +#pragma once + +#include "Thing.h" +#include "Vector3.h" + +class Quadcopter : public Thing { +public: + Quadcopter(); + + void LinearMotion(Vector3 velocity, float yawRate = 0.0F); +protected: + Vector3 velocity = Vector3::zero; + float yawRate = 0.0F; +}; \ No newline at end of file diff --git a/Sensing.h b/Sensing.h index e676152..10d48d1 100644 --- a/Sensing.h +++ b/Sensing.h @@ -1,5 +1,6 @@ #pragma once +#include "Sensor.h" #include "Placement.h" #include