Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MPU6050_alter HMC5883L
Vector/Vector.h@2:e6496a794bde, 2019-05-24 (annotated)
- Committer:
- Joeatsumi
- Date:
- Fri May 24 05:57:12 2019 +0000
- Revision:
- 2:e6496a794bde
mpu6050 and GHC5883L for atitude estimation for UAV.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Joeatsumi | 2:e6496a794bde | 1 | #pragma once |
| Joeatsumi | 2:e6496a794bde | 2 | #include "mbed.h" |
| Joeatsumi | 2:e6496a794bde | 3 | |
| Joeatsumi | 2:e6496a794bde | 4 | class Matrix; |
| Joeatsumi | 2:e6496a794bde | 5 | |
| Joeatsumi | 2:e6496a794bde | 6 | class Vector { |
| Joeatsumi | 2:e6496a794bde | 7 | public: |
| Joeatsumi | 2:e6496a794bde | 8 | Vector(int dim); |
| Joeatsumi | 2:e6496a794bde | 9 | ~Vector(); |
| Joeatsumi | 2:e6496a794bde | 10 | Vector(const Vector& v); |
| Joeatsumi | 2:e6496a794bde | 11 | |
| Joeatsumi | 2:e6496a794bde | 12 | Vector& operator=(const Vector& v); |
| Joeatsumi | 2:e6496a794bde | 13 | Vector operator+(); |
| Joeatsumi | 2:e6496a794bde | 14 | Vector operator-(); |
| Joeatsumi | 2:e6496a794bde | 15 | Vector& operator*=(float c); |
| Joeatsumi | 2:e6496a794bde | 16 | Vector& operator/=(float c); |
| Joeatsumi | 2:e6496a794bde | 17 | Vector& operator+=(const Vector& v); |
| Joeatsumi | 2:e6496a794bde | 18 | Vector& operator-=(const Vector& v); |
| Joeatsumi | 2:e6496a794bde | 19 | |
| Joeatsumi | 2:e6496a794bde | 20 | void SetComp(int dimNo, float val); |
| Joeatsumi | 2:e6496a794bde | 21 | void SetComps(float* vals); |
| Joeatsumi | 2:e6496a794bde | 22 | float GetNorm() const; |
| Joeatsumi | 2:e6496a794bde | 23 | Vector Normalize() const; |
| Joeatsumi | 2:e6496a794bde | 24 | Vector GetParaCompTo(Vector v); |
| Joeatsumi | 2:e6496a794bde | 25 | Vector GetPerpCompTo(Vector v); |
| Joeatsumi | 2:e6496a794bde | 26 | |
| Joeatsumi | 2:e6496a794bde | 27 | inline int GetDim() const { |
| Joeatsumi | 2:e6496a794bde | 28 | return dim; |
| Joeatsumi | 2:e6496a794bde | 29 | } |
| Joeatsumi | 2:e6496a794bde | 30 | |
| Joeatsumi | 2:e6496a794bde | 31 | inline const float* GetpComponents() const { |
| Joeatsumi | 2:e6496a794bde | 32 | return (const float*)components; |
| Joeatsumi | 2:e6496a794bde | 33 | } |
| Joeatsumi | 2:e6496a794bde | 34 | |
| Joeatsumi | 2:e6496a794bde | 35 | inline float GetComp(int dimNo) const { |
| Joeatsumi | 2:e6496a794bde | 36 | if (dimNo > dim) error("Index Out of Bounds Error !!"); |
| Joeatsumi | 2:e6496a794bde | 37 | return components[dimNo-1]; |
| Joeatsumi | 2:e6496a794bde | 38 | } |
| Joeatsumi | 2:e6496a794bde | 39 | |
| Joeatsumi | 2:e6496a794bde | 40 | void CleanUp(); |
| Joeatsumi | 2:e6496a794bde | 41 | |
| Joeatsumi | 2:e6496a794bde | 42 | private: |
| Joeatsumi | 2:e6496a794bde | 43 | int dim; |
| Joeatsumi | 2:e6496a794bde | 44 | float* components; |
| Joeatsumi | 2:e6496a794bde | 45 | |
| Joeatsumi | 2:e6496a794bde | 46 | Vector& operator*=(const Matrix& m); |
| Joeatsumi | 2:e6496a794bde | 47 | Vector& operator*=(const Vector& m); |
| Joeatsumi | 2:e6496a794bde | 48 | }; |
| Joeatsumi | 2:e6496a794bde | 49 | |
| Joeatsumi | 2:e6496a794bde | 50 | Vector operator+(const Vector& lhv, const Vector& rhv); |
| Joeatsumi | 2:e6496a794bde | 51 | Vector operator-(const Vector& lhv, const Vector& rhv); |
| Joeatsumi | 2:e6496a794bde | 52 | Vector Cross(const Vector& lhv, const Vector& rhv); |
| Joeatsumi | 2:e6496a794bde | 53 | Vector operator*(const float c, const Vector& rhv); |
| Joeatsumi | 2:e6496a794bde | 54 | Vector operator*(const Vector& lhv, const float c); |
| Joeatsumi | 2:e6496a794bde | 55 | float operator*(const Vector& lhv, const Vector& rhv); |
| Joeatsumi | 2:e6496a794bde | 56 |