#ifndef MEANCO3D_HH #define MEANCO3D_HH //////////////////////////////////////////////////////////////////////// //! file="amma/Geometry/MeanCov/MeanCo3d.hh" //! lib=MeanCov //! userlevel=Normal //! author="Radek Marik" //! date="01.04.1993" //! docentry="Statistics.3-D.Geometry.3-D" //! rcsid="$Id: MeanCo3d.hh,v 1.8 1999/10/11 12:22:05 ees1cg Exp $" #include "amma/Point3d.hh" #include "amma/Matrix3d.hh" #include "amma/Mean3d.hh" class SumNXX2d3C; class PlanePVV3dC; class istream; class ostream; //===================================================================== //========= MeanCovariance3dC ========================================= //===================================================================== //: Mean and covariance together in 3D space. // The class MeanCovariance3dC serves for computation of mean and // covariance matrix for data in 3D space. The class contains also // function for combining of such objects. class MeanCovariance3dC: private Mean3dC, private Matrix3d3C { public: // Constructors. // ------------- MeanCovariance3dC(); MeanCovariance3dC(const Point3dC & point); MeanCovariance3dC(const Mean3dC & mean); MeanCovariance3dC(LongIntT n, const Point3dC & mean, const Matrix3d3C & cov); MeanCovariance3dC(const SumNXX2d3C & sums); MeanCovariance3dC(const MeanCovariance3dC & meanCov); // Access to the members of the object. // ------------------------------------ LongIntT Number() const; const Point3dC & Mean() const; const Mean3dC & Mean3d() const; const Matrix3d3C & Covariance() const; const MeanCovariance3dC & MeanCovariance3d() const; MeanCovariance3dC & MeanCovariance3d(); const MeanCovariance3dC & SetZero(); const MeanCovariance3dC & operator=(const MeanCovariance3dC & meanCov); const MeanCovariance3dC & operator+=(const Point3dC & point); const MeanCovariance3dC & operator+=(const Mean3dC & mean); const MeanCovariance3dC & operator+=(const MeanCovariance3dC & meanCov); const MeanCovariance3dC & operator-=(const Point3dC & point); const MeanCovariance3dC & operator-=(const Mean3dC & mean); const MeanCovariance3dC & operator-=(const MeanCovariance3dC & meanCov); const MeanCovariance3dC & Add(const Mean3dC & mean, const Matrix3d3C noiseCov); // add a set of points with an estimated noise covariance matrix const MeanCovariance3dC & Remove(const Mean3dC & mean, const Matrix3d3C noiseCov); // remove a set of points with an estimated noise covariance matrix MeanCovariance3dC operator+(const MeanCovariance3dC & meanCov) const; MeanCovariance3dC operator-(const MeanCovariance3dC & meanCov) const; const MeanCovariance3dC & SetSum(const MeanCovariance3dC & meanCov1, const MeanCovariance3dC & meanCov2); PlanePVV3dC Plane01() const; // Returns the plane determined by the mean and the eigenvectors // of two biggest eigenvalues of the covariance matrix. friend istream & operator>>(istream & inS, MeanCovariance3dC & meanCov); }; ostream & operator<<(ostream & outS, const MeanCovariance3dC & meanCov); istream & operator>>(istream & inS, MeanCovariance3dC & meanCov); #endif // End of include file MeanCo3d.hh