#pragma once #include "dt.h" #include <map> #include "CMatrixCommon.h" #include "CManageDB.h" #ifdef HEAD_TABLE_MATRIX_EXPORTS #define HEAD_TABLE_CMATRIX_DLL_API __declspec(dllexport) #else #define HEAD_TABLE_CMATRIX_DLL_API //__declspec(dllimport) #endif using namespace ns_db; namespace ns_mat { typedef struct { UINT iHeadIndex; //���ڵ�ID bool bDisable; //�����õ� XY_DOUBLE_STRUCT stPosition; //�������õ�λ�� } HEAD_TABLE_MATRIX_POINT_INFO_STRUCT; class HEAD_TABLE_CMATRIX_DLL_API CHeadTableMatrix { public: CHeadTableMatrix(INT iModuleType, string strModuleName); LONG LoadMatrix(); //����λ�ú�index UINT GetCurrentIndex(); //��ȡ��ǰindex LONG SetCurrentIndex(UINT nIndex); //���õ�ǰindex UINT GetIndexPosition(UINT nIndex, XY_DOUBLE_STRUCT& stPos); //��ȡIndex���Ӧλ�� UINT GetAmount(); //��ȡ���� //��ȡָ����Բ��λ����Ϣ LONG GetPintInfoByIndex(UINT nPtIndex, HEAD_TABLE_MATRIX_POINT_INFO_STRUCT& stPointInfo); private: static std::mutex m_MatrixMutex; bool bIsInitSuccess; int m_nModuleType; string m_strModuleName; //��ǰ�� UINT m_iCurrentHeadIndex; //�������� UINT m_iHeadAmount; CProduct* m_pCProduct = nullptr; //vector<PROGRAM_DIE_MATRIX_STRUCT> m_vetDieMatrix; PROGRAM_HEAD_TABLE_MATRIX_STRUCT m_vetHeadTableMatrix; map<int, HEAD_TABLE_MATRIX_POINT_INFO_STRUCT> m_mapHeadTableMatrixInfo; private: void SortDir_Z(); }; }