// FilterLightness.h: interface for the CFilterLightness class.
//
//////////////////////////////////////////////////////////////////////

/** \file FilterLightness.h
	\brief Rozhraní pro třídu CFilterLightness
*/

#if !defined(_FILTERLIGHTNESS_H_)
#define _FILTERLIGHTNESS_H_

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

#include <iostream>
using namespace std;
#include "FilterBase.h"
#include "PixelArray.h"

/** Třída reprezentující zkreslení typu \b viňetace
*/
class CFilterLightness : public CFilterBase  
{
private:
	float m_paramLightness; ///< parametr zklreslení
	int m_type;				///< ID filtru
public:

	/** Parametrický konstruktor
		Inicializuje filtr na základě parametů
		@param param - parametr zkreslení

		Zbylé parametry jsou předány konstruktoru základní třdíy.
		@see CFilterBase parametrický konstruktor
	*/
	CFilterLightness(float CameraFocus = 0, float DistanceToCamera = 0, const char* name = "Untitled", double param = 0);
	virtual ~CFilterLightness(); ///< Destruktor

	double GetParam() const {return m_paramLightness;}
	CStructures::iPoint GetNextSize() const;
	int GetType() {return m_type;}

	void Transform(CPixelArray* pSource, CPixelArray* pTarget);

	void Show();

//dumping objektu
#ifdef _DEBUG
	void Dump(CDumpContext& dc) const;
#endif //_DEBUG

};

#endif // !defined(_FILTERLIGHTNESS_H_)
