CMatrixCommon.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include "dt.h"
  3. #include <map>
  4. #include "CManageDB.h"
  5. #ifdef CMATRIX_EXPORTS
  6. #define CMATRIX_DLL_API __declspec(dllexport)
  7. #else
  8. #define CMATRIX_DLL_API //__declspec(dllimport)
  9. #endif
  10. using namespace ns_db;
  11. namespace ns_mat
  12. {
  13. #define MAT_COMM_PI 3.1415926
  14. #define NONE_POINT_INDEX 0
  15. #define FIRST_POINT_INDEX 1
  16. enum MATRIX_SEARCH_DIR {
  17. DIR_S = 0X0,/*弓字型*/
  18. DIR_Z = 0X1,/*之字型*/
  19. };
  20. enum PICK_DIE_STATUS {
  21. DIE_EXIST,/*原来的*/
  22. PICK_ING,/*正在取*/
  23. NO_EXIST,/*已取走*/
  24. EDGE_DIE,
  25. SKIP_DIE,
  26. //NO_EXIST,/*跳过的点*/
  27. };
  28. class CMATRIX_DLL_API CMatrixCommon
  29. {
  30. public:
  31. //计算两点的角度
  32. static double TwoPointCalculateAngle(XY_DOUBLE_STRUCT p, XY_DOUBLE_STRUCT ori);
  33. //计算某点旋转一定角度后的位置
  34. static void CalRotationPoint(XY_DOUBLE_STRUCT prePoint, double angle, XY_DOUBLE_STRUCT& pointResult);
  35. static bool IsNoBondPoint(vector<XY_LONG_STRUCT> vecNoBondPt, UINT iRow, UINT iCol);
  36. static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_DIE_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
  37. static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_WAFFLE_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
  38. static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_HEAD_TABLE_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
  39. static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_POINT_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
  40. static XY_DOUBLE_STRUCT CalculatePosition(PROGRAM_BOND_MATRIX_STRUCT stMatrix, UINT iRow, UINT iCol);
  41. static XY_DOUBLE_STRUCT CalculatePosition(OneDimMatrixInfo stMatrix, int iRow, int iCol);
  42. };
  43. }