#pragma once
#include "Gate.h"
#include <vector>

using namespace std;

class CTag : public CGate
{
public:
	CTag(CPoint TopLeftOrigin, CString strName, CStringA strOrigin, GraphicsPath *gp, 
				  vector<CPoint> pntIn, vector<CPoint> pntOut, vector<bool> bInvIn, vector<bool> bInvOut, vector<int> dirIn, vector<int> dirOut);
	CTag(int nIn, int nOut, CPoint TopLeftOrigin, CString strName, CStringA strOrigin, GraphicsPath *gp, CPoint *pntIn, CPoint *pntOut, bool *bInvIn, bool*bInvOut, int *dirIn, int *dirOut);
//	~CTag();

	void OutScreen(Graphics &g);
	void OutXml(stringstream &ss);
	void SetRotation(int nRotation);
/*	bool HitTest(CPoint point);*/
	CCommonObject* Clone(CPoint TopLeftOrigin, CString strNewName, int nRotation);
/*	CString GetObjectName(){return m_strUniqueName;}
	void SetConnection(bool bIn, int nPos, CCommonObject* pConnectTo);
	void DisconnectCObject(CCommonObject *pObject);
	void Disconnect();
	void SetRotation(int nRotation);
	Rect* GetBounds();
	
	void SetParentMove(bool bParentMove) {m_bParentMove = bParentMove;}
	void SwapTag();
*/
protected:
	/*void TransformCObject(Matrix* pMat);*/
	void CreateTextGPath(CString strTag);

	void Init();
public:
	int m_nTagType;	// 1-InTag; 2-OutTag

private:
	Brush *m_pTextBrush;
/*	bool m_bParentMove;
	*/
};
