// This code is in the public domain -- icastano@gmail.com #ifndef NV_MATH_FITTING_H #define NV_MATH_FITTING_H #include #include #include namespace nv { namespace Fit { Vector3 computeCentroid(int n, const Vector3 * points); Vector3 computeCentroid(int n, const Vector3 * points, const float * weights, Vector3::Arg metric); Vector3 computeCovariance(int n, const Vector3 * points, float * covariance); Vector3 computeCovariance(int n, const Vector3 * points, const float * weights, Vector3::Arg metric, float * covariance); Vector3 computePrincipalComponent(int n, const Vector3 * points); Vector3 computePrincipalComponent(int n, const Vector3 * points, const float * weights, Vector3::Arg metric); Plane bestPlane(int n, const Vector3 * points); // Returns number of clusters [1-4]. int compute4Means(int n, const Vector3 * points, const float * weights, Vector3::Arg metric, Vector3 * cluster); } } // nv namespace #endif // NV_MATH_FITTING_H