void PointCloud::computeCovarianceMatrix() {
	double means[3] = {0, 0, 0};
	for (int i = 0; i < points.size(); i++)
		means[0] += points[i].x,
		means[1] += points[i].y,
		means[2] += points[i].z;
	means[0] /= points.size(), means[1] /= points.size(), means[2] /= points.size();
	
	for (int i = 0; i < 3; i++)
		for (int j = 0; j < 3; j++) {
			covarianceMatrix[i][j] = 0.0;
			for (int k = 0; k < points.size(); k++)
				covarianceMatrix[i][j] += (means[i] - points[k].coord(i)) *
                                                          (means[j] - points[k].coord(j));
			covarianceMatrix[i][j] /= points.size() - 1;
		}	
}