Split RobotDrive class into a class for each drive type (#552)

DiffDrive.CurvatureDrive (aka CheesyDrive) and KilloughDrive were also added.
This reorganization paves the way for SwerveDrive.
This commit is contained in:
Tyler Veness
2017-09-28 23:30:00 -07:00
committed by Peter Johnson
parent abb66d3e4b
commit 19addb04cf
18 changed files with 1790 additions and 1 deletions

View File

@@ -0,0 +1,28 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2017 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#pragma once
namespace frc {
/**
* This is a 2D vector struct that supports basic vector operations.
*/
struct Vector2d {
Vector2d() = default;
Vector2d(double x, double y);
void Rotate(double angle);
double Dot(const Vector2d& vec) const;
double Magnitude() const;
double ScalarProject(const Vector2d& vec) const;
double x = 0.0;
double y = 0.0;
};
} // namespace frc