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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#ifndef GLOBAL_H
#define GLOBAL_H
// !GLOBAL_H
#include <vector>
#include <QColor>
//相关全局定义
static int MAX_EXTEND_NUM = 1000;
static double JUDGE_DECIMAL = 0.0001;
static double DIE_SCALE = 100;
//特征矩形点大小
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;
//定义mapping图颜色
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);
//第一部分晶圆厂提供mapping图定义
//wafer map头结构
typedef struct _tagMapHeadData
{
_tagMapHeadData()
: iBinCodeType(0)
, dDieWidth(0)
, dDieHight(0)
, dWaferSize(0)
, iRows(0)
, iCols(0)
, iAngle(0)
{}
int iBinCodeType; //bincode类型
double dDieWidth; //die宽 单位mm
double dDieHight; //die高 单位mm
double dWaferSize; //Wafer大小 单位mm
int iRows; //总行数
int iCols; //总列数
int iAngle; //起始角度:0,90,180,270
}MapHeadData;
//wafer die数据
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所在行
int iCol; //die所在列
bool bValid; //die是否有效:false-无效 true-有效
int iMark; //die mark信息:0-不是mark 1-mark1 2-mark2
std::string sBinCode; //die bincode
}DieData;
typedef std::vector<DieData> vtDieData;
//wafer map数据信息
typedef struct _tagMapData
{
MapHeadData headData; //map图头信息
vtDieData vDies; //die数组
}MapData;
//第二部分:根据原始的晶圆数据进行布局
typedef struct _tagMaferRecipe {
double m_waferDia; //晶圆直接
double m_dieWidth; //die宽
double m_dieHeight; //die高
double m_baseDiePosX; //基准点X
double m_baseDiePosY; //基准点Y
double m_markPoint1X; //mark1点X
double m_markPoint1Y; //mark1点Y
double m_markPoint2X; //mark2点X
double m_markPoint2Y; //mark2点Y
int areaXDirectionNum; //区域X方向的个数
int areaYDirectionNum; //区域Y方向的个数
}MaferRecipe;
#endif