You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.4 KiB
C

#pragma once
#ifndef GLOBAL_H
#define GLOBAL_H
// !GLOBAL_H
#include <vector>
#include <QColor>
//<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
static int MAX_EXTEND_NUM = 1000;
static double JUDGE_DECIMAL = 0.0001;
static double DIE_SCALE = 100;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>С
static double FEATURE_POINT_SIZE = 10;
static QColor FEATURE_POINT_COLOR = QColor::fromRgb(0,0,200);
static int FEATURE_POINT_LINE_WIDTH = 2;
static double PI_2 = 3.1415926;
static double H_ANGLE = 180.00;
static int SELECT_WIDTH = 8;
//<2F><><EFBFBD><EFBFBD>mappingͼ<67><CDBC>ɫ
static QColor BASE_POINT_COLOR = Qt::red;
static QColor MARK_POINT_COLOR = QColor::fromRgb(77, 225, 72);
static QColor RECT_COLOR = QColor::fromRgb(200, 200, 200);
static QColor CUR_SELECT_DIE = QColor::fromRgb(255, 0, 0);
static QColor AREA_LINE_COLOR = QColor::fromRgb(255, 242, 0);
//<2F><>һ<EFBFBD><D2BB><EFBFBD>֣<EFBFBD><D6A3><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ṩmappingͼ<67><CDBC><EFBFBD><EFBFBD>
//wafer mapͷ<70>
typedef struct _tagMapHeadData
{
_tagMapHeadData()
: iBinCodeType(0)
, dDieWidth(0)
, dDieHight(0)
, dWaferSize(0)
, iRows(0)
, iCols(0)
, iAngle(0)
{}
int iBinCodeType; //bincode<64><65><EFBFBD><EFBFBD>
double dDieWidth; //die<69><65> <20><>λmm
double dDieHight; //die<69><65> <20><>λmm
double dWaferSize; //Wafer<65><72>С <20><>λmm
int iRows; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int iCols; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int iAngle; //<2F><>ʼ<EFBFBD>Ƕ<EFBFBD>:0,90,180,270
}MapHeadData;
//wafer die<69><65><EFBFBD><EFBFBD>
typedef struct _tagDieData
{
_tagDieData()
: iRow(0)
, iCol(0)
, bValid(false)
, iMark(0)
, sBinCode("")
{}
_tagDieData(int row, int col, bool valid, int mark, std::string bincode)
: iRow(row)
, iCol(col)
, bValid(valid)
, iMark(mark)
, sBinCode(bincode)
{}
int iRow; //die<69><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int iCol; //die<69><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bValid; //die<69>Ƿ<EFBFBD><C7B7><EFBFBD>Ч:false-<2D><>Ч true-<2D><>Ч
int iMark; //die mark<72><6B>Ϣ:0-<2D><><EFBFBD><EFBFBD>mark 1-mark1 2-mark2
std::string sBinCode; //die bincode
}DieData;
typedef std::vector<DieData> vtDieData;
//wafer map<61><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct _tagMapData
{
MapHeadData headData; //mapͼͷ<CDBC><CDB7>Ϣ
vtDieData vDies; //die<69><65><EFBFBD><EFBFBD>
}MapData;
//<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD>ԭʼ<D4AD>ľ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ݽ<EFBFBD><DDBD>в<EFBFBD><D0B2><EFBFBD>
typedef struct _tagMaferRecipe {
double m_waferDia; //<2F><>Բֱ<D4B2><D6B1>
double m_dieWidth; //die<69><65>
double m_dieHeight; //die<69><65>
double m_baseDiePosX; //<2F><>׼<EFBFBD><D7BC>X
double m_baseDiePosY; //<2F><>׼<EFBFBD><D7BC>Y
double m_markPoint1X; //mark1<6B><31>X
double m_markPoint1Y; //mark1<6B><31>Y
double m_markPoint2X; //mark2<6B><32>X
double m_markPoint2Y; //mark2<6B><32>Y
int areaXDirectionNum; //<2F><><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
int areaYDirectionNum; //<2F><><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
}MaferRecipe;
#endif