ART v1.0-alpha
A Robot Template that raises the floor for VRC teams
Loading...
Searching...
No Matches
Units.h
Go to the documentation of this file.
1
16#pragma once
17#include <cmath>
18
19namespace art
20{
36 class Length
37 {
38 public:
45 friend Length Pixels(double pixels);
52 friend Length Inches(double inches);
59 friend Length Feet(double feet);
66 friend Length Meters(double meters);
73 friend Length Centimeters(double centimeters);
80 friend Length Millimeters(double millimeters);
87 friend Length Tiles(double tiles);
88
94 double pixels();
100 double inches();
106 double feet();
112 double meters();
118 double centimeters();
124 double millimeters();
130 double tiles();
131
137 Length();
152 Length(double f);
153
177 Length operator=(double const &f);
178
197 operator double();
198
199 private:
207 double m_value{0.0};
208 };
209
216 Length Pixels(double pixels);
223 Length Inches(double inches);
230 Length Feet(double feet);
237 Length Meters(double meters);
244 Length Centimeters(double centimeters);
251 Length Millimeters(double millimeters);
258 Length Tiles(double tiles);
259
274 class Angle
275 {
276 public:
283 friend Angle Degrees(double degrees);
290 friend Angle Radians(double radians);
297 friend Angle Revolutions(double revolutions);
298
304 double degrees();
310 double radians();
316 double revolutions();
317
323 Angle();
338 Angle(double f);
339
351 void constrain();
352
376 Angle operator=(double const &f);
395 operator double();
396
397 private:
405 double m_value{0.0};
406 };
407
414 Angle Degrees(double degrees);
421 Angle Radians(double radians);
428 Angle Revolutions(double revolutions);
429
436 Angle shortestTurnPath(const Angle target);
437
438} // namespace art
A Utility Unit class for Angles.
Definition Units.h:275
double revolutions()
Returns the Angle in revolutions.
Definition Units.cpp:182
double m_value
The underlying value of the Angle.
Definition Units.h:405
Angle()
Construct a new Angle object.
Definition Units.cpp:141
friend Angle Revolutions(double revolutions)
Constructs an Angle from Revolutions.
Definition Units.cpp:134
double radians()
Returns the Angle in radians.
Definition Units.cpp:176
friend Angle Degrees(double degrees)
Constructs an Angle from Degrees.
Definition Units.cpp:120
void constrain()
Constrains the Angle to the -180 to 180 range.
Definition Units.cpp:145
Angle operator=(double const &f)
Assign a value to the Angle object.
Definition Units.cpp:157
double degrees()
Returns the Angle in degrees.
Definition Units.cpp:170
friend Angle Radians(double radians)
Constructs an Angle from Radians.
Definition Units.cpp:127
A Utility Unit class for Length.
Definition Units.h:37
friend Length Centimeters(double centimeters)
Constructs a Length from Centimeters.
Definition Units.cpp:99
double centimeters()
Returns the Length in centimeters.
Definition Units.cpp:40
double meters()
Returns the Length in meters.
Definition Units.cpp:35
friend Length Meters(double meters)
Constructs a Length from Meters.
Definition Units.cpp:92
friend Length Inches(double inches)
Constructs a Length from Inches.
Definition Units.cpp:78
double m_value
The underlying value of Length.
Definition Units.h:207
double feet()
Returns the Length in feet.
Definition Units.cpp:30
double millimeters()
Returns the Length in millimeters.
Definition Units.cpp:45
Length()
Construct a new Length object.
Definition Units.cpp:67
friend Length Feet(double feet)
Constructs a Length from Feet.
Definition Units.cpp:85
double inches()
Returns the Length in inches.
Definition Units.cpp:25
Length operator=(double const &f)
Assign a value to the Length object.
Definition Units.cpp:55
double pixels()
Returns the Length in pixels.
Definition Units.cpp:20
friend Length Pixels(double pixels)
Constructs a Length from Pixels.
Definition Units.cpp:71
friend Length Millimeters(double millimeters)
Constructs a Length from Millimeters.
Definition Units.cpp:106
friend Length Tiles(double tiles)
Constructs a Length from Tiles.
Definition Units.cpp:113
double tiles()
Returns the Length in tiles.
Definition Units.cpp:50
Definition PID.h:20
Length Meters(double meters)
Constructs a Length from Meters.
Definition Units.cpp:92
Angle Degrees(double degrees)
Constructs an Angle from Degrees.
Definition Units.cpp:120
Length Centimeters(double centimeters)
Constructs a Length from Centimeters.
Definition Units.cpp:99
Length Inches(double inches)
Constructs a Length from Inches.
Definition Units.cpp:78
Length Tiles(double tiles)
Constructs a Length from Tiles.
Definition Units.cpp:113
Angle shortestTurnPath(const Angle target)
Returns the shortest turn path to reach the target angle.
Definition Units.cpp:188
Angle Radians(double radians)
Constructs an Angle from Radians.
Definition Units.cpp:127
Length Feet(double feet)
Constructs a Length from Feet.
Definition Units.cpp:85
Length Millimeters(double millimeters)
Constructs a Length from Millimeters.
Definition Units.cpp:106
Angle Revolutions(double revolutions)
Constructs an Angle from Revolutions.
Definition Units.cpp:134
Length Pixels(double pixels)
Constructs a Length from Pixels.
Definition Units.cpp:71