12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #pragma once
- #include "dt.h"
- #include <map>
- #include "CManageDB.h"
- #ifdef CMATRIX_EXPORTS
- #define CMATRIX_DLL_API __declspec(dllexport)
- #else
- #define CMATRIX_DLL_API //__declspec(dllimport)
- #endif
- using namespace ns_db;
- namespace ns_mat
- {
- #define MAT_COMM_PI 3.1415926
- #define NONE_POINT_INDEX 0
- #define FIRST_POINT_INDEX 1
- enum MATRIX_SEARCH_DIR {
- DIR_S = 0X0,/*弓字型*/
- DIR_Z = 0X1,/*之字型*/
- };
- enum PICK_DIE_STATUS {
- DIE_EXIST,/*原来的*/
- PICK_ING,/*正在取*/
- NO_EXIST,/*已取走*/
- EDGE_DIE,
- SKIP_DIE,
- //NO_EXIST,/*跳过的点*/
- };
- class CMATRIX_DLL_API CMatrixCommon
- {
- public:
- //计算两点的角度
- static double TwoPointCalculateAngle(XY_DOUBLE_STRUCT p, XY_DOUBLE_STRUCT ori);
- //计算某点旋转一定角度后的位置
- static void CalRotationPoint(XY_DOUBLE_STRUCT prePoint, double angle, XY_DOUBLE_STRUCT& pointResult);
- static bool IsNoBondPoint(vector<XY_LONG_STRUCT> vecNoBondPt, UINT iRow, UINT iCol);
- static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_DIE_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
- static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_WAFFLE_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
- static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_HEAD_TABLE_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
- static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_POINT_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
- static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_BOND_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
- static XY_DOUBLE_STRUCT CalculatePosition(OneDimMatrixInfo stMatrix, int iRow, int iCol);
- };
- }
|