Sphere Fitting program
Dependents: NineIMUAttitude_MadgwickFilter
SphereFitting.hpp@1:05e1d9336ca8, 2020-12-26 (annotated)
- Committer:
- aktk
- Date:
- Sat Dec 26 14:20:24 2020 +0000
- Revision:
- 1:05e1d9336ca8
- Parent:
- 0:bdae9d79b923
Add Comment;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aktk | 0:bdae9d79b923 | 1 | #ifndef SPHEREFITTING_H |
aktk | 0:bdae9d79b923 | 2 | #define SPHEREFITTING_H |
aktk | 0:bdae9d79b923 | 3 | |
aktk | 0:bdae9d79b923 | 4 | #include <stdio.h> |
aktk | 0:bdae9d79b923 | 5 | #include <math.h> |
aktk | 0:bdae9d79b923 | 6 | #include <time.h> |
aktk | 0:bdae9d79b923 | 7 | #include <stdlib.h> |
aktk | 0:bdae9d79b923 | 8 | |
aktk | 0:bdae9d79b923 | 9 | template<typename T> |
aktk | 0:bdae9d79b923 | 10 | struct Sphere { |
aktk | 0:bdae9d79b923 | 11 | public: |
aktk | 0:bdae9d79b923 | 12 | Sphere(T cx = 0, T cy = 0, T cz = 0); |
aktk | 0:bdae9d79b923 | 13 | T cx, cy, cz, r; |
aktk | 0:bdae9d79b923 | 14 | }; |
aktk | 0:bdae9d79b923 | 15 | |
aktk | 0:bdae9d79b923 | 16 | |
aktk | 0:bdae9d79b923 | 17 | template<typename T> |
aktk | 0:bdae9d79b923 | 18 | class SphereFitting |
aktk | 0:bdae9d79b923 | 19 | { |
aktk | 0:bdae9d79b923 | 20 | public: |
aktk | 0:bdae9d79b923 | 21 | SphereFitting(T cx = 0, T cy = 0, T cz = 0); |
aktk | 0:bdae9d79b923 | 22 | ~SphereFitting(); |
aktk | 0:bdae9d79b923 | 23 | void solve(); |
aktk | 0:bdae9d79b923 | 24 | void addsample(T, T, T); |
aktk | 0:bdae9d79b923 | 25 | void copy_param_to(T*, T*, T*, T*); |
aktk | 0:bdae9d79b923 | 26 | private: |
aktk | 0:bdae9d79b923 | 27 | Sphere<T>* P; |
aktk | 0:bdae9d79b923 | 28 | T X[4][4]; |
aktk | 0:bdae9d79b923 | 29 | T Y[4]; |
aktk | 0:bdae9d79b923 | 30 | }; |
aktk | 0:bdae9d79b923 | 31 | template class SphereFitting<short>; |
aktk | 0:bdae9d79b923 | 32 | template class SphereFitting<int>; |
aktk | 0:bdae9d79b923 | 33 | template class SphereFitting<float>; |
aktk | 0:bdae9d79b923 | 34 | #endif |