KrisLibrary  1.0.0
Fitting.h
1 #ifndef GEOMETRY_FITTING_H
2 #define GEOMETRY_FITTING_H
3 
5 #include <vector>
6 
7 namespace Math3D
8 {
9  struct Line2D;
10  struct Line3D;
11  struct Plane3D;
12  struct Circle2D;
13 } //namespace Math3D
14 
15 
16 namespace Geometry {
17 
18 using namespace Math3D;
19 
20 Vector2 GetMean(const std::vector<Vector2>& pts);
21 Vector3 GetMean(const std::vector<Vector3>& pts);
22 void GetCovariance(const std::vector<Vector2>& pts,Matrix2& C);
23 void GetCovariance(const std::vector<Vector3>& pts,Matrix3& C);
24 
25 bool FitGaussian(const std::vector<Vector2>& pts,Vector2& center,Matrix2& R,Vector2& axes);
26 bool FitGaussian(const std::vector<Vector3>& pts,Vector3& center,Matrix3& R,Vector3& axes);
27 
28 bool FitLine(const std::vector<Vector2>& pts,Line2D& l);
29 bool FitLine(const std::vector<Vector3>& pts,Line3D& l);
30 bool FitPlane(const std::vector<Vector3>& pts,Plane3D& p);
31 
32 bool FitCircle(const std::vector<Vector2>& pts,Circle2D& c);
33 //bool FitEllipse(const std::vector<Vector2>& pts,Ellipse2D& c);
34 
35 } //namespace Geometry
36 
37 #endif
A 2x2 matrix class.
Definition: math3d/primitives.h:333
A 3D plane classRepresents plane with a normal and offset such that x on the plane satisfy dot(normal...
Definition: Plane3D.h:19
A 2D circle class.
Definition: Circle2D.h:16
A 3D vector class.
Definition: math3d/primitives.h:136
A 2D line class.
Definition: Line2D.h:19
Class declarations for useful 3D math types.
Contains all the definitions in the Math3D package.
Definition: AnyGeometry.h:12
A 3x3 matrix class.
Definition: math3d/primitives.h:469
A 3D line class.
Definition: Line3D.h:18
A 2D vector class.
Definition: math3d/primitives.h:41
Contains all definitions in the Geometry package.
Definition: AnyGeometry.h:11