Blob Blame Raw


// BlurMatrix.h: interface for the CBlurMatrix class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BLURMATRIX_H__8298C171_0035_11D6_B94F_0040F674BE6A__INCLUDED_)
#define AFX_BLURMATRIX_H__8298C171_0035_11D6_B94F_0040F674BE6A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <vector>

#include "SError.h"
#include "SDef.h"

#define NBRS 10 //  Number of Random Samples
typedef std::vector<SXYD> BLURSECTION;

class CBlurMatrix
{
public:
	bool m_isSAC; // Stop At Contour
	bool m_isRS;  // Random Sampling
	std::vector<BLURSECTION> m_m[NBRS];

	CBlurMatrix() : m_isSAC(false), m_isRS(false){};
	CBlurMatrix(const CBlurMatrix &m); //throw(SBlurMatrixError);
	CBlurMatrix(const double d, const int nb, const bool isSAC, const bool isRS);
	//	throw(SBlurMatrixError) ;
	virtual ~CBlurMatrix();

	void createRandom(const double d, const int nb); // throw(SBlurMatrixError);
	void createEqual(const double d, const int nb);  // throw(SBlurMatrixError);
	void addPath(std::vector<BLURSECTION>::iterator pBS); // throw(exception);
	void addPath();									 // throw(SBlurMatrixError);
	void print() const;
	bool isIn(const std::vector<BLURSECTION> &m, const SXYD &xyd) const;
};

#endif // !defined(AFX_BLURMATRIX_H__8298C171_0035_11D6_B94F_0040F674BE6A__INCLUDED_)