#if !defined(GRAPHFLOW##CLASSNAMEUPPER##)
#define GRAPHFLOW##CLASSNAMEUPPER##

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

#include "GraphNode.h"

class CGraph##CLASSNAME## : public CGraphNode  
{
public:
	CGraph##CLASSNAME##();
	virtual ~CGraph##CLASSNAME##();
	virtual void InitNode();

##TWOINPUT##>>
	virtual BOOL ProcessImage(CQuickBitmap *pInput1,CQuickBitmap* pInput2);
<<##TWOINPUT##	
##ONEINPUT##>>
	virtual BOOL ProcessImage(CQuickBitmap *pInput);
<<##ONEINPUT##
	virtual void Draw(CDC *pDC, int nOffsetX, int nOffsetY, int nHighlightedID,float scale);
##INPUTSPLICE##>>
	virtual BOOL InputSlice(int nOrigW, int nOrigH, int nW, int nH, double dX1, double dY1, double dX2, double dY2, double dZoom);
<<##INPUTSPLICE##
##INTERACTIVE##>>
// Interactive Functions
	virtual BOOL RespondToDoubleClick(CPoint point);
	virtual BOOL RespondToButtonDown(CPoint point);
	virtual BOOL RespondToButtonUp(CPoint point);
	virtual BOOL RespondToMouseMove(CPoint point);
	virtual BOOL RespondToMouseWheel(CPoint point,short zDelta);
<<##INTERACTIVE##
##PUSHBUTTONS##>>
	virtual BOOL UIButtonPushed(int nParam, int nSubButton);
<<##PUSHBUTTONS##
	virtual BOOL UIDataChanged(int nParam);

protected:
##INTERACTIVE##>>
	// Local Members
	int m_nClickedX;
	int m_nClickedY;
	BOOL m_bClicked;
	BOOL m_bMinimized;
<<##INTERACTIVE##
##INPUTSPLICE##>>
	double m_dZoom;
	double m_dX1;
	double m_dY1;
	double m_dX2;
	double m_dY2;
	int m_nFullW;
	int m_nFullH;
<<##INPUTSPLICE##
	// Local Member Functions
	void ResetParams();


};

#endif // !defined(GRAPHFLOW##CLASSNAMEUPPER##)
